目录
一、DDL
1、注释
- (1) “--单行注释 ”
- (2) “ /* 多行注释 */ ”
-
2、创建数据库:
- create database [if not exists] 数据库名;
3、使用数据库:
use 数据库名;
4、查询当前所处的数据库
select database();
5、删除数据库:
drop database [if exists] 数据库名;
6、查询所有的数据库
show databases;
7、约束类型:
(1)主键约束(Primary Key ),自增长(Auto)
(2)非空约束(Not null)
(3)唯一约束(Unique)
(4)默认值约束(Default)
(5)外键约束(Foreign key)
8、数据类型:
(1)数值类型:
int 4字节 整数
float 8字节 小数
double 8字节 小数
(2)字符串类型
char 0-255 定长字符串 长度固定
varchar 变长字符串 长度可变
blob 存二进制数
(3)日期和时间
date YYYY-MM-DD 日期值
time HH:MM:SS 时间值
datetime YYYY-MM-DD HH:MM:SS 混合日期和时间值
9、创建表
create table 表名(
字段1 数据类型(长度) 约束,
字段2 数据类型(长度) 约束,
.....
字段n 数据类型(长度) 约束
);
(1)主键约束:primary key
①单字段主键:直接在主键字段后加primary key或用primary key(主键字段名) 的函数
②多字段主键:用primary key(字段1,字段2..)函数
(2)非空约束:not null
(3)唯一约束:unique
(4)默认值约束:default 值
(5)外键约束:foreign key
(6)自增长:auto_increment
(7)注释:comment'值'
10、使用show关键字查看表
语法:show create table 表名;
11、使用describe关键字查看表
语法:describe 表名; 或 desc 表名;
12、修改表名
语法:alter table 旧表名 rename [to] 新表名;
13、修改字段名
语法:alter table 表名 change 旧字段 新字段 数据类型(大小);
14、修改字段的数据类型
语法:alter table 表名 modify 字段名 新数据类型(大小);
15、添加字段
语法:alter table 表名 add 字段名 数据类型(大小) 约束 [first|after 已有字段名];
16、删除字段
语法:alter table 表名 drop 字段名;
17、删除表
语法:drop table 表名;
二、DML
1、运算符:
(1)算术运算符:+ - * / %
(2)赋值运算符:= age=18
(3)逻辑运算符:and与 or或 not非
(4)比较运算符:> < >= <= =等于 <>不等于
2、添加数据:insert
insert into 表名[(字段列表)] values(字段对应的值)[,(字段对应的值)];
3、修改数据:update
update 表名 set 字段=值 where 条件;
4、删除数据:delete
语法:delete from 表名 where 条件;
5、使用truncate删除表数据:删表后自动重构表结构
语法:truncate table 表名;
三、DQL
1、查询
select [distinct] *|字段名|表达式|函数
from 表名
where 条件
group by 分组字段
having 筛选条件
order by 排序字段 asc|desc
limit offset,总行数;
2、聚合函数:
(1)sum():用来求和
语法:select sum(字段名) from 表名;
(2)avg():求平均值
语法:select avg(字段名) from 表名;
(3)max():求最大值
语法:select max(字段名) from 表名;
(4)min():求最小值
语法:select min(字段名) from 表名;
(5)count():用来计算数量
语法:select count(字段名|*) from 表名;
3、模糊查询
(1)like关键字
语法:select * from 表名 where 字段名 [not] like '匹配字符串';
% :表示匹配任意长度的字符串
_ :表示匹配任意单个字符
(2)in关键字
语法:select * from 表名 where 字段名 [not] in(值1,值2....);
(3)between and关键字
语法:select * from 表名 where 字段名 [not] between 值1 and 值2;
(4)空值查询
select * from 表名 where 字段 is [not] null;
4、连接查询
(1)交叉连接:cross join,笛卡尔积
语法:select * from 表1 cross join 表2 on 连接条件;
(2)内连接:inner join,等值连接
语法:select * from 表1 [inner] join 表2 on 连接条件;
(3)外连接
①左外连接:left outer join
语法:select * from 表1 left [outer] join 表2 on 连接条件;
②右外连接:right outer join
语法:select * from 表1 right [outer] join 表2 on 连接条件;
5、子查询
in、any、all、exists、运算符
四、DCL
1、备份数据库(dos窗口运行)
mysqldump -u 用户名 -p密码 [--databases] 数据库名 [--table] 表名 >保存路径
2、还原数据库
ysql -u 用户名 -p密码 数据库名 < 路径
3、创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
4、授予权限
grant 权限列名 on 数据库名.表名 to '用户名'@'主机名' identified by '密码';
5、回收权限
revoke 权限列名 on 数据库名.表名 from '用户名'@'主机名';