SQL基础--基础查询的使用
来源:互联网 发布:韩国音乐软件 编辑:程序博客网 时间:2024/04/30 04:46
如果遇到没有创建的表影响运行使用
->点我进入表的创建与数据插入
或者评价反馈
DQL查询语句
SELECT子句中可以使用函数或表达式
那么结果集中对应的该字段名就是这个函数或表示式
可读性差,为此可以为字段添加别名
那么结果集就会以这个别名作为该字段的名字
别名的本身不区分大小写,而且不能含有空格,
若希望别名区分大小写或含有空格,
那么可以在别名上使用双引号括起来
SELECT ename,sal*12 "sal" FROM emp_swm
查看工资高于1000的职位是:CLERK或SALESMAN
SELECT ename,sal,job FROM emp_swm
WHERE sal>1000 AND (job=’CLERK’ OR job=’SALESMAN’)
AND的优先级高于OR,可以通过括号
来提高OR的优先级
LIKE用于模糊匹配字符串,支持两个通配符
_:单一的一个字符
%:任意个字符
查看名字第二个字母是A最后一个字母是N的?
SELECT ename FROM emp_swm
WHERE ename LIKE ‘_A%N’
IN和NOT IN
判断是否在列表中或不在列表中
SELECT ename,job FROM emp_swm WHERE job IN('MANAGER','CLERK') SELECT ename,job,deptno FROM emp_swm WHERE deptno NOT IN(10,20)
IN和NOT IN 常用来判断子查询的结果
BETWEEN…AND…
判断在一个区间范围内
工资在1500到3000之间的员工
SELECT ename,sal FROM emp_swm
WHERE sal BETWEEN 1500 AND 3000
IS NULL 和IS NOT NULL
空值不能使用 = 比较,只能用IS NULL 和IS NOT NULL
查询哪些员工的奖金数据为NULL
SELECT ename,sal,comm FROM emp_swm
WHERE comm IS NULL
ANY,ALL
ANY和ALL是配合>,>=,<=一个列表使用的 >ANY(list):大于列表中的最小的 >ALL(list):大于列表中的最大的 <ANY(list):小于列表中的最大的 <ALL(list):小于列表中的最小的 ANY和ALL常用于子查询。 SELECT empno,ename,job,sal,deptno FROM emp_swm WHERE sal<ALL(2500,3000,4000)
使用函数或者表达式的结果作为过滤条件
SELECT ename, sal, job
FROM emp_swm
WHERE ename = UPPER(‘scott’);
SELECT ename, sal, job
FROM emp_swm
WHERE sal * 12 >50000;
DISTINCT 关键字
对结果集,中指定字段值重复的记录进行去重
查看公司有哪些职位
SELECT DISTINCT job FROM emp_swm
多字段去重,是对这些字段值的组合进行去重
比如 job+deptno 的组合不会有重复的
SELECT DISTINCT job,deptno FROM emp_swm
排序
ORDER BY 子句
ORDER BY 可以根据其后指定的字段
对结果集按照该字段的值进行升序或者降序排列
ASC:升序,不写默认就是升序
DESC:降序。
查看公司的工资排名:
SELECT ename,sal FROM emp_swm ORDER BY sal DESC
ORDER BY 按照多个字段排序,
ORDER BY 首先按照第一个字段的排序方式
对结果集进行排序,当第一个字段有重复值时
才会按照第二个字段排序方法进行排序,以此类推
每个字段都可以单独指定排序方式
SELECT ename,sal,deptno
FROM emp_swm
ORDER BY sal DESC,deptno ASC
排序的字段中含有NULL值,NULL被作为最大值
SELECT ename,comm FROM emp_swm
ORDER BY comm DESC
聚合函数
聚合函数又叫多行函数,分组函数
聚合函数是对结果集某些字段的值进行统计的。
MAX,MIN
求给定字段的最大值和最小值
查看公司的最高公司与最低公司是多少?
SELECT MAX(sal),MIN(sal)
FROM emp_swm
AVG,SUM
求平均值和综合
SELECT AVG(sal),SUM(sal)
FROM emp_swm
COUNT函数
COUNT函数不是对给定的字段的值进行统计的
而是对给定字段不为NULL的记录数统计的
实际上所有聚合函数都忽略NULL值统计
SELECT COUNT(comm) FROM emp_swm
查看表的记录数可以使用COUNT(*)
SELECT COUNT(*) FROM emp_swm
查看平均绩效
SELECT AVG(NVL(comm,0)),SUM(comm) FROM emp_swm SELECT SUM(comm)/14 FROM emp_swm
WHERE 中不能使用聚合函数作为过滤条件原因是过滤时机不对。
WHERE 是在数据库检索表中数据时,
对数据逐条过滤,以决定是否查看出该数据是可用的,所以WHERE用来确定结果集的数据.
使用聚合函数的结果作为过滤条件,
那么一定是数据从表中查询完毕(WHERE在查询过程中发挥作用)得到结果集,并且分组完毕,才进行聚合函数统计结果,得到后才可以对分组进行过滤,这个过滤时机是在WHERE 之后进行的。
聚合函数的过滤条件要在 HAVING 子句中使用
HAVING 必须跟在 GROUP BY 子句之后
HAVING 是用来过滤分组的
SELECT AVG(sal),deptno FROM emp_swm
GROUP BY deptno HAVING AVG(sal)>2000
查看平均工资高于2000的部门最高工资和最低工资分别是多少?
SELECT MAX(sal),MIN(sal),deptno FROM emp_swm
GROUP BY deptno HAVING AVG(sal)>2000
分组
GROUP BY 子句
GROUP BY可以将结果集按照其后
指定的字段值相同的记录看做一组
然后配合聚合函数进行更细分的统计工作
查看每个部分的平均工资?
SELECT AVG(sal),deptno FROM emp_swm
GROUP BY deptno
查看每个职位的最高工资?
SELECT MAX(sal),job FROM emp_swm
GROUP BY job
GROUP BY也可以根据多个字段分组
分组原则为这几个字段值都相同的记录看做一组
查看同部门同职位的平均工资?
SELECT AVG(sal),deptno,job FROM emp_swm
GROUP BY deptno,job
当SELECT子句中含有聚合函数时
那么凡不再聚合函数中的其他单独字段
都必须出现在GROUP BY子句中,反之亦然
查看部门的平均工资,前期是该部门的平均工资高于2000
SELECT AVG(sal),deptno FROM emp_swm
WHERE AVG(sal)>2000
GROUP BY deptno
- SQL基础--基础查询的使用
- SQL的基础查询
- SQL查询语句基础
- 基础查询sql
- SQL查询(一)基础
- SQL 基础-->SELECT 查询
- SQL 基础--> 子查询
- T-SQL查询基础
- sql 基础查询操作
- SQL 基础-->SELECT 查询
- sql基础查询
- SQL 基础-->SELECT 查询
- SQL 基础--> 子查询
- SQL 基础-->SELECT 查询
- SQL 基础--> 子查询
- YII2 SQL 基础查询
- SQL数据查询基础
- SQL 基础-->SELECT 查询
- 显式意图和隐式意图和菜单
- 词汇解释
- 【OpenCV】学习OpenCV范例系列
- 书摘《人人都是产品经理》——4年产品经理的思维书1
- js报错 Cannot set property 'innerHTML' of null
- SQL基础--基础查询的使用
- acm车牌号
- 1122. Hamiltonian Cycle (25)
- Android端无线打印功能实现(附带源码Demo)
- MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)
- 在Mac中配置adb
- 用10进制小数不能精确表示某些三进制小数
- android复习路之事件分发机制篇
- 测试(一)