SQL命令速成二

十八.subquery子查询
(一)用法
子查询也称为嵌套查询,是一种嵌套在其他SQL语句的where子句中的查询.子查询用于为主查询返回其所需要的数据,或者对检索数据进行进一步的限制.语法如下:

select 字段1,字段2,...from 表名 where 字段名 操作符 (子查询);

(二)示例
找出部门表中部门号位于二楼的部门,并在员工表中找出这些员工的姓名

select name from employees where deptno in (select deptno from dept where loc like '二楼%');

十九.常用函数
(一)count函数
count函数统计符合条件的记录数,count(*)统计表中的记录总数,count(字段名)统计指定字段不为null的记录数.
下面的SQL语句统计员工表中的所有员工:

select count(*) from employees;

统计员工表中所有部门号不为null的员工:

select count(deptno) from employees;

查询员工表中部门号为null的员工:

select * from employees where deptno is null;

(二)max跟min函数
返回的是所选字段的最大或者最小值,语法:max/min(字段名)
(三)avg/sum平均/合计值
返回的是所选字段的平均/合计值,语法:avg/sum(字段名)
二十.group by分组
(一)用法
group by语句用于结合统计函数,根据一个或多个列对结果集进行分组.语法如下:

select 字段名,统计函数 from 表名 where 子句 group by 字段名;

二十一.having过滤分组
(一)用法
having子句和where子句类似,都是对查询的结果集进行过滤.它们的过滤对象不同,where子句对被选择的列进行过滤,而having子句则对group by子句所产生的组进行过滤.语法如下:

select 字段名,统计函数 from 表名 where 子句 group by 字段名 having 统计函数 运算符 值;

(二)示例
查询平均工资小于300的部门

select deptno,avg(salary) from employees group by deptno having avg(salary)<300;


二十二.case..when语句
(一)用法
case...when两种格式
第一种简单case

case 字段 
when 条件值1 then 选择项1 
when 条件值2 then 条件值2
 ....
else 默认选项 end

第二种格式:case搜索函数

case
when 字段=条件值1 then 选项1 
when 字段=条件值2 then 选项2
...
else 默认选项 end

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值