《SQL.COOKBOOK》打卡NO.1

打卡分析《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%'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值