设为首页 加入收藏

TOP

mysql数据库总结。(一)
2019-09-17 15:40:59 】 浏览:35
Tags:mysql 数据库 总结

mysql

MySQL语法
MySQL采用结构化查询语言SQL (Structured Query Language)语言来操作数据库
SQL语句必须以 ; 结束
SQL语句分类
DDL(数据定义语言): create、drop、alter、truncate
DQL(数据查询语言): select、show
DML(数据操作语言): insert、update、delete
DCL (数据控制语言): grant、revoke、begin transaction、commit、roolback

MySQL存储引擎
MySQL数据表类型由存储引擎来决定,主要有6种类型:InnoDB 、BDB、MyISAM、ISAM、、Heap、Merge
InnoDB
支持事务
支持外键
不支持数据压缩
写速度较慢
MySQL5.5开始支持全文索引
占用更多的内存和磁盘空间来保留数据和索引

MyISAM
不支持事务
不支持外键
访问速度快
支持全文索引


数据库的备份还原
#方法一
mysqldump -h服务器 -P端口 -u用户名 -p密码 数据库名称 > 备份文件路径
source 备份文件路径

#方法二
直接备份数据库文件(注意:这种方法不适用于InnoDB存储引擎的表,而对于MyISAM存储引擎的表很方便。同时,还原时MySQL的版本最好相同)

#方法三
使用第三方工具 例如:Navicat for MySQL

命令行链接数据库
mysql -u root -p

数据库操作
#添加数据库
create database [if not exists] 库名 [[default] character set 编码方式]

#查看数据库
show databases 查看MySQL下有哪些数据库
show create database 库名 查看某个数据库的详细信息

#修改数据库
alter database 库名 [default] character set 编码方式

#删除数据库
drop database [if exists] 库名


数据表操作
#打开数据表所在的数据库
use 库名

#添加数据表
create table [if not exists] 表名(
字段名 数据类型 [约束],
字段名 数据类型 [约束],
......
字段名 数据类型 [约束]
)[ENGINE=MyISAM DEFAULT CHARSET=utf8 collate utf8_general_ci] ;

#查看数据表
show tables 查看当前数据下有哪此数据表
show create talbe 表名 查看建表信息
desc 表名 查看表结构

#修改数据表
#增加字段
alter table 表名 add [colum] 字段名 数据类型 [约束]

#修改字段名
alter table 表名 change 字段名 新字段名 数据类型 [约束]

#删除字段
alter table 表名 drop [colum] 字段名

#更改表名
alter table 表名 rename [to] 新表名

#删除数据表
drop table 表名

#清空数据表
truncate table 表名

 

数据库的增删改查
#插入记录
#插入一条新的记录
INSERT INTO 表名 [(字段名1,字段名2,…字段名n)] VALUES(‘值1’,‘值2’,…,’值n’);
#插入多条记录
INSERT INTO 表名 [(字段名1,字段名2,…字段名n)]
VALUES(‘值1’,‘值2’,…,‘值n’),
(‘值1’,‘值2’,…,‘值n’),
......
(‘值1’,‘值2’,…,’值n’);

#删除记录
#根据条件删除记录
delete from 表名 [where 条件子句] [order by 字段 asc|desc ] [limit 条数]
#在WHERE子句中,条件可以由一个或多个逻辑表达式组成,
#在WHERE子句中,可以通过逻辑操作符和比较操作符指定基本的表达式条件
#删除全部记录
truncate table 表名

#更新记录
update 表名 set 字段名=新值,字段名=新值,....... [where 条件子句] [order by 字段 asc|desc ] [limit 条数]

#查询记录
select 字段1,字段2,...... from 表名 [where 条件子句] [group by 字段][haveing 条件子句][order by 字段] [limit [起始值] 条数]

 

Alias 别名
#通过使用 SQL,可以为字段名称和表名称指定别名
SELECT 字段名 AS 别名 FROM 表名
SELECT * FROM 表名 AS 表别名

 

distinct 去重复
#关键词 DISTINCT 用于返回唯一不同的值
SELECT DISTINCT 字段名称 FROM 表名称


聚合函数
avg() 平均值
count() 总记录数,不包括null
max() 最大值
min() 最小值
sum() 求和


时期函数
now()
curdate()
curtime()
unix_timestamp()
from_unixtime()

 

 

数学函数
ABS()绝对值
ceil() 向上取整
floor 向下取整
round() 四舍五入
rand() 随机数
mod() 取余


字符串函数
concat() 连接字符串
replace() 替换
ucase() 大写
lcase() 小写
ltrim() 去左侧空格
rtrim() 去右侧空格
trim() 去两边空格

 

 


加密函数
password()
md5()


信息函数
database() 当前数据库
user() 当前用户
version 当前mysql版本
last_insert_id() 最后一条插入记录的主键id


多表插入
#将查询到的记录插入到已存在的表中
insert 表名(字段列表) select 语句
insert brand(brand_name) select brand_name from goods group by brand_name;

#创建新表并将查询到的记录插入到新表中
create 表名[(
字段名 数据类型 [约束],
............
)] select 语句 ;

create table category(
cid smallint unsigned key auto_increment
)
select cate_name from goods group by cate_name;

 

多表查询
select 字段列表 from 表1 [[as] 别名] 连接类型 表2 [[as] 别名] on 连接条件 where ......

连接类型
内连接 inner join
外联接
左外连接 left [outer] join
右外连接 right [outer] join

#内连接:显示左表及右表中符合连接条件的记录
#左外连接:显示左表全部记录及右表中符合连接条件的记录
#右外连接:显示右表全部记录及左表中符合连接条件的记录


类似于内连接的多表查询
select 字段列表 from 表1,表2,表3...... where 连接条件1 and 连接条件2 .......

select id,goods_name,cate_name,brand_name,price from goods as g,brand as b,category as c where g.brand_id=b.bid and g.cate_id=c.cid;


比较操作符

 

like模糊查询通配符
% 通配0个或多个字符 %李%
_ 通配一个字符
[abcdef] 通配字符列中的任何单一字符
[^abcdef] 通配不在字符列中的任何单一字符

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle 12C Win 10 安装 应用 总结 下一篇Kafka单线程Consumer及参数详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目