1.更新一下之前的内容,完整的运算顺序: (), from,on, join, where,group by,having, select, distinct, union, order by,limit。
2.增删改查
注意:同一数据库系统数据库必须唯一,同一数据库中表名必须唯一,同一表中字段名必须唯一。
show databases; create databases 数据库名称; drop database 数据库名称;use 数据库名称; show tables; desc 表名; select * from 表名…; drop table 表名
insert into 表名(字段名...) values(字段值…)
改表名:alter table 原表名 rename 新表名
改字段名:alter table 表名 change 原字段名 新字段名 数据类型
改数据类:alter table 表名 modify 字段名 数据类型
改位置:alter table 表名 modify 列名 数据类型 first/after 字段名
删除列:alter table 表名 drop 字段名
给字段赋值:(前提是先对数据库设置批量操作权限: set sql_safe_updates=0; )update 表名 字段名=… (可以同时给两个字段赋值)eg.update t11 set t1=5,v11=t1+10;
3.公式:
手机脱敏公式:select replace('13512345678',mid('13512345678',4,4),repeat('*',4));
日期公式:datediff(终止日期,起始日期)天数差;adddate/subdate 时间的增加和减少,参数为:'日期',interval 1 day/month/year
如果为空显示公式:ifnull(字段名,0)
分组聚合函数很重要:可非重复,排序,用什么分隔。eg. group_concat(distinct ename order by sal desc separator '/')
逻辑表达式 case when ...then... else ... End。Eg. select *,case when sal>=3000 then '高'when sal>=1500 then'中' else '低' end 工资等级 from emp; 注意嵌套用when继续。
开窗函数
over语句一般跟在select 后的聚合函数后,可以包含以什么分区,以什么排序,指定滑动窗口,也可以都不包含。
eg. select *, avg(sal) over(partition by deptno order by hiredate rows between 1 preceding and 1 following) 移动平均 from emp;rows 记得加s。
所有的聚合函数都是动态函数,不指定默认静态窗口值,即分区内所有行。
以下为支持的指定滑动窗口的写法

只能是静态的常用的序号函数:row_number()排名结果不重复不间断;dense_rank()排名结果重复不间断;rank()排名结果重复间断 ;都是无参,记得加括号。








暂无数据