*运算符
基本的加减乘除取余都在sql语句里面都好用
*使用as关键字给列或表改名
例:
select salary%2 as result, salary from employee;
*比较运算符
=,>,<,>=,<=
不等于 != <>
例:
select * from employee where salary<> 6000;
*判断是否为空
is null
is nut null
例:
select *from Employee where depart is null ;
select 60*60*24*365;
*判断两个值是否相等 <=>,=
<=>和=区别就是他可以判断两个空值相等
例:
select null <=>null ;
*beyween ....and ..... 判断是否在某个区间内
例:
select *from Employee where salary between 6000 and 12000;
*IN和Not in
例:
select *from Employee where depart in ('市场部','销售部');
select *from Employee where aga not in (22,32);
*like 模糊查询
%写在字符串中,代表任意长度的任意字符
_代表单个字符
例:
select *from Employee where name like '张%';
select *from Employee where name like '张_';
*逻辑运算符
and &&
of ||
not !
xor 异或
异或:两个一样就是假,两个不一样才是真
例:
select 1 xor 1, 0 xor 1,0 xor 0;
*位运算符
位于&
位或 |
位异或 ^
位左移<<
位右移>>
位取反 -
*CONCAT字符串拼接函数
例:
select CONCAT('我是',name) from Employee;
*LOWER 大写拼接函数
例:
select LOWER('AWEWEJKW');
*UPPER 小写拼接函数
例:
SELECT UPPER('kdsjfklsdif');
*字符串替换
INSERT 在第3个之后插入试试
例:
select INSERT('这是一个字符串',3,5,'试试');
SUBSTRING 从第3个字后开始往后走5个字
例:
select SUBSTRING('这是一个字符串',3,5);
*数学相关的函数
向上取整
例:
select CEIL(3.3);
向下取整
例:
select FLOOR(3.3);
随机数
例:
select rand();
*常用的聚合函数
取平均值
select AVG(salary)from Employee;
求和
select SUM(salary) from Employee;
求最大值
select MAX(salary)from Employee;
求最小值
select MIN(salary )from Employee;
求数量
select salary,COUNT(*)from Employee where aga>30;
*子查询
例:
求所有年龄比张三小的人
select aga from Employee where name='张三';
select *from Employee where aga<(select aga from Employee
where name='张三');
求年龄比平均年龄小的人
select *from Employee where aga<(select AVG(aga) from Employee);
求平均薪资
select AVG(salary)from Employee;
*group by 子句
分组 ,group by 列名
只有跟在group by 后面的列才能写到select 后面
例;
求每个部门的平均薪资
select depart ,AVG(salary)from Employee group by depart;
求每个部门相同年龄的工资平均值
select depart,aga ,AVG(salary)from Employee group by depart,aga;
*having子句 ,只用来过滤分组情况
一般来说只会跟聚合函数相关的判断
例:
求最大薪资大于7000的部门的平均薪资
select depart, AVG(salary)from Employee group by depart
having max(salary)>7000;
*时间和日期函数
获取当前的日期
SELECT curdate();
获取当前的时间
SELECT curtime();
获取当前的时间和日期
SELECT now();
获取当前的年
SELECT year('2018-9-29');
一年中的第几周
SELECT week(now());
SELECT hour(now());
SELECT minute(now());
算两个日期之间间隔的天数
SELECT datediff(now(), '2020-12-3');
计算xx天后的日期和时间
SELECT adddate(NOW(), 10);