数据库程序设计 5 左右连接 组函数 分组统计
程序员文章站
2022-05-18 16:01:02
...
decode
是一个函数 在第三节有写
case:
case 列名 when 条件 then 结果
when 条件 then 结果
when 条件 then 结果
when 条件 then 结果
else 其他
end;
输出一个列 和decode的作用一样
左右连接
查询雇员姓名,雇员名称,
列名 (+) = 右连接
= 列名(+) 左连接
练习:
查询雇员编号,雇员姓名,上司编号,上司姓名
利用普通的链接 会导致没有上司的人丢失
利用左连接 在上司的表那一边加上(+)
select
SQL1999
交叉连接
它将会返回被连接的两个表的笛卡尔积
select 列
from 表名1 cross join 表名2
自然连接
数据库自己寻找关联条件 只针对关联条件是等式的
select 列
from 表名1 natural join 表名2
using 子句
select 列名
from 表名1 join 表名2 using(列名)
on子句
using 子句
select 列名
from 表名1 join 表名2 on 条件
左右连接
select 列名
from 表名1 right outer join 表名2 on 条件
select 列名
from 表名1 left outer join 表名2 on 条件
组函数
count
max
min
不光可以用于数值,也可以用于日期的最大值最小值的比较
sum
avg
例子:
查询各个部门的人数
group by
having
group的过滤用having 后面加上条件 相当于where
rollup
select
from
group by
rollup
cube
excel 里面的按行按列求和
子查询
在一个查询语句中包含另一个查询语句
子查询的位置
where having from 后面
例子:
查询工资比某一个人高的雇员信息
集合运算
查询的列必须要一致
union 去重
union all 不去重
交集
intersec
差集 minus
层次查询:
复制表
creat table myemp as select * from emp
creat table myemp2 as select * from emp where sal > 2000
表名符合命名的规范
插入
insert
into
values()
上一篇: leetcode 114