CRUD等操作(DDL、DML、DQL)
权限操作:
create user 用户名@"localhost或%" identified by '密码' show grants for 用户名@主机名 grant 权限列表(all/insert/delete/select等) on 库名(*).表名(*) to 用户名@主机名 remove 与授予一样
函数:
内置(后面加as 可以使函数别名):
字符串:concat拼接 substring截取 lower/upper大小写 l/r pad用某个字符填充 trim去头尾空格
数值:ceil / floor向上/下取整 round四舍五入 mod rand 0~1随机数
日期:curdate/curtime 当前日期/时间 now year/month/day date_add在指定时间加指定时间 datediff日期相差天数
流程:if ifnull返回不为空的值 case when [val] then [res] ... else [default] end 如果val为true,返回res,否则default(when...then可以多个)
约束:
非空not null、唯一unique、主键primary key、默认default、检查check(满足某个条件)、外键foreign key、自增auto_increment
添加外键:alter table 表名 add constraint 外键名称(如fk_表名_列名) foreign key (列)references 主表(列) [添加行为 on update/on delete 有no action/restrict/cascade/set null/set default]
删除外键:alter table 表名 drop foreign key 外键名称
多表:一对多是通过多表做外键、多对多是建立中间表做外键、一对一是单表拆分后在其中一张表中创建外键联系另一张
内连接(交集):隐式select 字段 from 表1, 表2 where ... 显示select 字段 from 表1 [inner]join 表2 on 条件
左/右外连接:select 字段 from 表1 left/right [outer] join 表2 on 条件
联合union和or的区别:用union在通常情况下比用or的效率要高的多,因为where里面用or会引起全表扫描,也有特殊情况
子查询 = > <等 in,not in,all,any等
事务:
select @@autocommit;查询事务 set @@autocommit;设置当前窗口的sql语句手动提交 commit;提交事务 rollback;回滚事务
标签:...,2022,default,2023,外键,表名,key,mysql,select From: https://www.cnblogs.com/weakxy-home/p/17408625.html