1.DDL-数据库操作
show databases;
create database 数据库名;
use 数据库名;
select database();
drop database 数据库名;
2.DDL-表操作
show tables;
create table 表名(字段 字段类型,
字段 字段类型,
字段 字段类型
);
desc 表名;
show create table 表名;
alter table 表名 add/modify/change/drop/rename to...; /*change修改的是字段和字段类型*/
/*modify修改的是字段*/
drop table 表名;
3.DML-表操作
1.添加数据
insert into 表名(字段1,字段2,...)values (值1, 值2,...)[,(值1, 值2,...)...];
2.修改数据
update 表名 set 字段1 = 值1, 字段2 = 值2 [where 条件];
3.删除数据
delete from 表名[where 条件];
4.DQL语句
select
字段列表 字段名 as 别名
from
表名
where > >= < <= <> like between A and B in and or /*like后面跟 %,_*/
条件列表
group by
分组字段列表 分组之前过滤
having
分组后条件列表 分组之后过滤
order by
排序字段列表 升序ASC,降序DESC
limit
分页参数 起始索引(从0开始),每页展示记录数
/*不是从0开始的页数,(页数-1)*每页展示记录数*/
5.DCL语句
1.用户管理
create user '用户名'@'主机名' identified by '密码';
alter user '用户名'@'主机名' identified with mysql_native_password by '密码';
drop user '用户名'@'主机名';
2.权限控制
grant 权限列表 on 数据库名.表名 to ‘用户名’@'主机名';
revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;
show grants for '用户名'@'主机名';
6.函数
1.字符串函数
concat, lower, upper, lpad, rpad, trim, substring
/*
lpad(字符串, 字符串长度, 填充内容)
rpad(字符串,字符串长度,填充内容)
trim(str) 去掉字符串头部和尾部的空格
substring(字符串, 开始的地方从1开始,截取字符串的长度)
*/
2.数值函数
ceil, floor, mod, rand, round
/*
round(x, 保留几位小数)
*/
3.日期函数
curdate, curtime, now, year, month, day, date_add, datediff
/*
date_add(date, 加上一个时间间隔)
datediff(date1, date2)从date1开始到date2结束。date1 - date2
*/
4.流程函数
if,ifnull, case[...] when ... then... else...end
7.约束
1.非空约束:not null
2.唯一约束:unique
3.主键约束:primary key(自增:auto_increment)
4.默认约束:default /*后面加默认值*/
5.检查约束:check /*后面加约束条件()*/
6.外键约束:foreign key /*在后面可以加cascade级联 set null设置为空 on update/delete cascade */
8.多表关系
一对多:在多的一方设置外键,关联一的一方的主键
多对多:建立中间表,中间表包含两个外键,关联两张表的主键
一对一:用于表结构拆分,在其中任何一方设置外键(UNIQUE),关联另一方的主键
9.多表查询:
内连接
隐式:select..from 表A, 表B where 条件...
显式:select...from 表A inner join 表B on 条件...
外连接
左外:select...from 表A left join 表B on 条件...
右外:select...from 表A right join 表B on 条件...
自连接:
select...from 表A 别名1, 表A 别名2 where 条件...
子查询:
标量子查询、 列子查询、行子查询、表子查询
10.事务
事务是一组操作的集合,这组操作,要么全部执行成功,要么全部执行失败。
1.事务操作
第一种
查看/设置事务提交方式:
select @@autocommit;
set @@autocommit = 0; /*开启手动提交事务 值为1时开始自动提交*/
2.提交事务
commit;
3.回滚事务
rollback;
第二种
开启事务
start transaction 或者 begin;
提交事务
commit;
回滚事务
rollback;
11.事务四大特性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
12.并发事务问题
赃读、不可重复读、幻读
13.事务隔离级别