数据库查询优化学习笔记(一)查询基础

1查找空值

不能用=NULL,而是IS NULL,IS NOT NULL

2模糊查询

转义/

select * from table where name like '\_BCE' ESCAPE '\';

3按多个字段排序

先按第一个排序条件将数据分成几组,然后每组的数据再按后面的列进行排序。

4按字串排序

SELECT User,SUBSTR(password_last_changed,19,1) from user ORDER BY 2;

5按条件取不同列中的值排序

SELECT case when Db='sys' THEN 1 else 2 end as '级别' FROM db ORDER BY 1;

6空字符串与NULL

null可以是任何类型,而空字符串本身是varchar2类型。

例:select no as 序号,name as 名称,deptNo as 部门编码 from  a

union all

select no as 序号,name as 名称,null as 部门编码 from  b;

结果:

序号 名称 部门编码

1  zhangsan 2

2 lisi    

如果上述语句改成

select no as 序号,name as 名称,deptNo as 部门编码 from  a

union all

select no as 序号,name as 名称,' ' as 部门编码 from  b;

则报:表达式必须具有与对应表达式相同的数据类型。

空字符串查询结果显示成NULL。

select ' ' as c1 from a;

查询结果:

c1

null

7UNION与OR

union all 与 or作用不等价,union 与or作用等价,or是取两个结果的合集而非并集,union all取并集(不去重),union(去重)。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值