尚硅谷029-027 基础查询
- 运算:
- +号:在sql中,加号仅用于运算符
- 字段运算:可以用:表名+*/数值的形式,如:month_salary * 12 as 'anual salary'
- 显示字段详细信息:
- desc 表名;
- ifnull函数:
- select ifnull(字段名,返回值) 如:select ifnull(departments,0)
尚硅谷028-036 条件查询
- 简单条件运算符:< > = <> !=
- 逻辑运算符:
- && and 两个条件如果都为true,结果为true
- || or 两个条件有一个为true,结果为true
- ! not 条件为false
- 模糊运算符:between and, like, in
- 安全等于:
- <=> 即可以判断null值,也可以判断普通数值
- is null 仅仅可以判断空值
MySQL入门经典 基础知识 2021.11.18
- 查询
1.any和all
any表示有任何一个满足就返回true,all表示全部都满足才返回true
比如
select * from student where 班级=’01’ and age > all (select age from student where 班级=’02’);
就是说,查询出01班中,年龄大于 02班所有人的同学
相当于
select * from student where 班级=’01’ and age > (select max(age) from student where 班级=’02’);
而
select * from student where 班级=’01’ and age > any (select age from student where 班级=’02’);
就是说,查询出01班中,年龄大于 02班任意一个 的 同学
相当于
select * from student where 班级=’01’ and age > (select min(age) from student where 班级=’02’);
————————————————
版权声明:本文为CSDN博主「xianglingchuan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xianglingchuan/article/details/51737330
2.exist的用法
select * from emp where deptno in (select deptno from dept where deptno <30);
select * from emp e where exists (
select * from dept d where deptno <30 and d.deptno = e.deptno)
————————————————
版权声明:本文为CSDN博主「做猪呢,最重要的是开森啦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43901882/article/details/89467490
3.正则表达式中*和+的区别
1)*有无均可
select *
from vendors
where vendor_state regexp 'M*A'
可以返回MA\CA\FA等的记录
2)+必须有
select *
from vendors
where vendor_state regexp 'M+A'
只能返回至少有一个M的记录,如MA\CMA等
4.正则表达式不区分大小写,除非用BINARY(regexp binary 'xx')
- 函数
5.数学函数
truancate(保留小数函数)和round(四舍五入函数)的相似用法:
select truncate(3.14926535,3),round(3.14926535,3) :3.149
如果round(3.1499,3) 应该四舍五入,即3.150
如果round(3.14) 结果为四舍五入后的整数:3
round函数和format函数(格式化函数)用法相同
6.字符串函数
field()函数(按字段排序函数)
field(字段名,str1,str2,str3……)
order by field(name,'seiki','iris','xut')
不在str1,str2,str3中的内容,放在最前面返回,str值相同按照主键的顺序
locate(substr,str)定位函数
locate('me','you love me') 输出10
7.日期和时间函数
datediff(d1,d2)函数(时间段计算函数)和subdate(d,n)函数
datediff计算d1和d2之间的时间,即d1-d2
subdate计算时间d减去n天的时间
8.条件判断函数
1)if(expr,v1,v2)
如果表达式expr成立,则执行v1,否则执行v2
2)case when exp1 then v1 [when expr2 then v2……][else vn] END
如:select id,grade,
case when grade>10000 then 'very good'
when grade<10000 and grade > 1000 then 'popularly'
else 'not good' end level(给这一列取名为level)
from tb_bccd
9.加密函数
1)password(str)
2)MD5(str)
10.随机数的应用:
floor(x)函数:返回小于或等于x的最大整数
ceilin(x)函数:返回等于或大于x的最小整数
rand()函数:用于返回0-1的完全随机数
例题:生成三个1-100之间的随机整数
select round(rand()*100),floor(rand()*100),ceilin(rand()*100)
10.join的模糊查询?
select myv2.'avg',g.grade_level
from myv2
join job_grades g
on myv2.'ag' between g.'lowest_sal' and g.'highest_sal';
输出结果: