sql中的查询(模糊查询,子查询,联表查询)
关键字的执行优先级
from -->on -->join -->where -->group by -->having -->select -->distinct -->union -->order by
模糊查询
like关键字:select * from table where u_name like ’中国‘
_:表示单个字符,匹配任意字符,比如:
select * from user where U_name like ’_ 三 _‘;只找出“唐三藏”这样的u_name三个字的,且第二个字是三的
[ ]:表示括号内所列字符中 的一个(类似正则表达式)。指定一个字符,字符串或范围,要求所匹配对象为他们中的任何一个。
比如:select * from user where u_name like ‘[张李王]三’ 将找出张三,李三,王三,(而不是“张李王三”)
[^]:表示不在括号所列之内的单个字符
子查询—(where中的子查询)
子查询:子查询就是指在一个完整的查询语句中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,
子查询可以返回的数据类型一共分为四种
单行单列:返回的是一个具体的内容,可以理解为一个单值数据
单行多列:返回一行数据中多个列的内容
多行多列:返回多行记录之中同一列的内容,相当于给出了一个操作范围
多行多列:查询返回的结果是一张临时表
在where子句中处理单行单列子查询,多行多列子查询,单行多列子查询
单行单列子查询:
1、查询公司之中工资最低的雇员的完整信息
select * from emp e where e.sal=(select min(sal) from emp);
2、查询出基本工资比allen低的全部雇员的信息
select * from emp e where e.sal <(select sal from emp where ename='allen')
3、查询出基本工资高于公司平均薪金的全部雇员信息