2019.3.25 SQL语句(进阶篇1)
运算符
基本的加减乘除取余都可以在SQL中使用
新建Employee1表并添加数据
create table Employee1
(eid int primary key auto_increment,
name varchar(20),
age int,
salary int,
depart varchar(50),
workage int);
insert into employee1
values (null,'张三',30,10000,'研发部',3),
(null,'李四',22,5000,'市场部',2),
(null,'王五',29,6000,'营销部',3),
(null,'赵六',28,4000,'营销部',3),
(null,'钱七',26,12000,'研发部',4),
(null,'张四',32,9000,'人事部',4),
(null,'张五',22,4500,'策划部',1),
(null,'张六',23,5000,'市场部',2),
(null,'李三',19,3000,'研发部',1),
(null,'李五',26,6000,'人事部',2),
(null,'王三',42,18000,'研发部',20),
(null,'王四',31,13000,'人事部',9),
(null,'王六',27,7000,'人事部',5),
(null,'赵三',23,3500,'市场部',2),
(null,'赵四',36,11000,'策划部',11),
(null,'赵五',25,4000,'人事部',2),
(null,'钱三',24,6000,'研发部',2),
(null,'钱四',44,14000,'策划部',4),
(null,'钱五',32,9000,'市场部',8),
(null,'钱六',50,2000,'研发部',30);
as:修改列名/表名(可隐藏)
select salary/2 as result, salary s
from Employee1;
图太长了截一半了
比较运算符:= > < >= <=
is null/is not nul :l判断是否为空
select *
from Employee1
where depart is not null;
=/<=>:判断两个值是否相等
<=>可以判断两个空值相等
select null <=> null ;
between...and....:在...之间
select *
from Employee1
where salary between 6000 and 12000;
in/not in:是否存在
select *
from Employee1
where depart in ('市场部','人事部');
like:模糊查询
select *
from Employee1
where name like '张%'; //%后面只是占位 不算位数 代表一串字符
select *
from Employee1
where name like '张_'; //_代表一个字符
因为我的表里只有两个字的名字 所以_和%查出的东西是一样的
逻辑运算符
and &&
or ||
not !
xor 异或
& 位与
| 位或
^ 位异或
<< 位左移
位右移
-位取反
函数
常用函数
CONCAT(): 字符串拼接
select CONCAT('我是',name,depart)
from Employee1;
LOWER/UPPER(): 大小写改变
select LOWER('ASERDFTY');
select UPPER('qwertyyu');
INSERT():字符串替换
select INSERT('这是一个字符串',3,5,'试试'); //从第3个开始截5个
SUBSTRING(): 截取子字符串
select SUBSTRING('这是一个字符串',3,5);
CEIL():向上取整
select CEIL(3.3);
FLOOR():向下取整
select FLOOR(3.3);
rand():生成随机数
select rand();
聚合函数
AVG():取平均值
select AVG(salary)
from Employee1;
SUM():求和
select SUM(salary)
from Employee1;
MAX()/MIN():求最大值最小值
select MAX(salary)
from employee1;
select MIN(salary)
from employee1;
COUNT():求数量
select salary,COUNT(*)
from Employee1;