sql数据库高级复杂查询
第一个表的结构图
1:查找
(一:简单查询)
SELECT *
FROM peopel #*就是全部 from(来自) 表名
(二:按照条件查询)
SELECT NAME
FROM peopel #查询所有名字
(三:按照条件查询某某)
SELECT *
FROM peopel
WHERE NAME='zhangsan'
(四:按照条件查找大于某数小于某数的语句)
<,>,=,!=,>=,<=,in(),between and 属于比较运算符
- in(A,B):表示包含A和B的结果
between 1 and 5 :会查出在1和5之间的值包括1和
SELECT *
FROM peopel
WHERE age>19 AND age<21
结果:
(五:模糊查询like_%)
select * from people where pnubm like '86%' #查询出people表中为86开头的用户
select * from people where phone like '86_' #查询除people表中86开头后只有一位的数字
select * from user where phone like '%86%' # 查询出people表中含有86的用户
select * from user where phone like '%86' #查询出people表中为86结尾的用户
(六:sum求和等操作)
SELECT SUM(age)
FROM peopel
其中where和having的区别:
where 和 having 都是做条件判断,在介绍having前我们看下where 和 having的区别
where的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚合函数,使用where条件显示特定的行。
having的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚合函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
例如:我们要查询people表中年龄总和大于10000的部门编号,语句如下:
SELECT deptno,
SUM(sal)FROM emp GROUP BY deptno HAVING SUM(sal)>10000;
)——目前没有好的例子等待抽空 去找几套面试题目 续更。(先发)