将一个查询结果插入到另一张表中
举例(下面查询的都是在这张表的基础上):where 条件
举例:
为什么要分组,分组是为了统计,例如统计男性有几个,女性有几个
数据准备:
案例:
将一条语句的结果作为另一条语句的条件或者是数据来源
当我们一次性查不到想要的数据时就需要使用子查询
当内层查询(括号内的)结果会有多个结果时,不能使用=必须使用in,另外in查询只能包含一个字段,也就是一列数据
需求:找出平均年龄大于25的部门名称
准备数据:
本质上就是笛卡尔积查询
举例:
左边的表无论是否能够匹配都要完整显示,右边的仅展示匹配上的记录
右边的表无论是否能够匹配都要完整显示,左边的仅展示匹配上的记录
无论是否匹配成功,两边表的数据都要全部显示
总结:外连接查询,查到的是没有对应关系的记录,但是这样的数据原本就是有问题的,所以最常用的还是内连接查询
内连接表示 只显示匹配成功的记录
外连接表示 没有匹配成功的也要显示
在查询数据中,应该将上述知识合并使用,特别是子查询和内连接查询,如果面临多表联合查询,应该先理清楚步骤,一步一步实现,可以将一部分的查询结果搭建成一个临时表,再联合其他表进行查询.
条件使用where子句对表中的数据筛选,结果为true的行会出现在结果集中
语法如下:
select * from 表名 where 条件
例:
select * from students where id=1
1
2
3
where后面支持多种运算符,进行条件的处理
比较运算符
逻辑运算符
模糊查询
范围查询
空判断
比较运算符
等于: =
大于: >
大于等于: >=
小于: <
小于等于: <=
不等于: != 或 <>
例1:查询编号大于3的学生
select * from students where id >3
例:查询编号不大于4的学生
select * from students where id <= 4
1
2
3
4
5
6
逻辑运算符
and
or
not
例:查询编号大于3的女同学
select * from students where id >3 and gender=0
1
2
3
模糊查询
like
%表示任意多个任意字符
_表示一个任意字符
例:查询姓黄的学生
select * from students where name like '黄%'
1
2
3
范围查询
in表示在一个非连续的范围内
空判断
注意:null与’'是不同的
判空is null
例:查询没有填写身高的学生
select * from students where height is null
判非空is not null
1
2
3
4
优先级
优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
and比or先运算,如果同时出现并希望先算or,需要结合()使用
————————————————
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)