打卡分析《SQL.COOKBOOK》第一章内容
第一章目录如下
本书中所使用的部分表如下
1.1,从表中检索所有行和列
问题:检索emp表中所有的数据
解决办法
select * from emp
1.2,从表中检索部分行
问题:检索emp表中满足特殊条件的行
解决办法
根据需要的行使用where语句进行筛选
select ENAME from emp
where ENAME =‘ ’
1.3,查找满足多条件的行
解决办法:使用条件查询语句进行筛选
解决办法:使用where语句以及and,or 进行筛选
select * from emp
where ENAME= '' OR ENAME =' ' AND deptno='10'
1.4,从表中检索部分列
解决办法:指定列根据列名查找
select deptno from emp
1.5,为列取有意义的名字
解决方法:使用as字段进行名称修改
select sal as salary from emp
1.6,在where 条件语句中使用取用别名的列
解决办法:使用子查询
select * from (select * from emp )t
where sal <10
1.7 连接列的值
解决方法:
select concat ("aaaa",sal) from emp
where deptno ='10' ------------- mysql
select ('aaaa'+sal) from emp
where deptno='10'-----------------sqlsever
select ('aaaa'||sal) from emp
where deptno='10'-----------------postgresql
1.8,使用条件语句
使用case when then eles end 语句进行
select sal ,ename
case when sal >10 then 'a'
when sal <20 then 'b'
else 'c'
end as grade
from emp
1.9 限制返回的行数
select * from emp
where deptno = '10'
limit 5 ------------------mysql,postgresql
select * from emp fetch first 5 rows only
---------------------------DBA
select * from emp where rownum <5 -------oracle
1.10 随机返回n条记录
解决办法:使用rand(),random(),random.value
select * from emp
order by rand(n)-----------DBA
select * from emp
order by random(n)-----------mysql,postgresql
select * from emp
order by random。value < 5-----------oracle
1.11 查找空值
查找某列值为空的行
select * from emp
where sal is null
1.12 将空值转换为实际值
select coalesce(comn,0) from emp
1.13 按模式搜索
按字符串匹配进行
select * from emp
where deptno in (90,100) and ename like ' mike' and job not like 'en%'