首页 > 代码库 > oracle开发之<<SQL Cookbook>>学习笔记整理:第一章 检索记录

oracle开发之<<SQL Cookbook>>学习笔记整理:第一章 检索记录

1.写程序时列出需要的列比直接写SELECT *  更直观。采用这种方式,行数据检索性能相同,列数据检索性能提高;选取部分需要的列时,降低IO和网络传输时间,提高性能。

2.WHERE子句筛选记录配合=,<,>,<=,>=,!,<>和AND,OR等谓词。

3.NULL值用IS NULL和IS NOT NULL来判断。

4.为列取别名,在子查询中特别重要。

5.使用||来拼接列的值。

6.使用case when end子句来实现if-else判断。

7.取top N时,需要注意rownum只能取前n行,不能取第n行,实现第n行使用row_number()。

8.随机取数据(造数据时有用):

SELECT * FROM (

    SELECT ename, job

          FROM emp

          ORDER BY dbms_random.value()

 )  WHERE ROWNUM <= 5

9.使用nvl或coalesce或case when end子句处理空值,示例如下:

SELECT empno,
       ename, 
       job,  
       comm comm_raw,
       coalesce(comm,0) comm --或 nvl(comm,0) comm
  FROM emp;        

10.用like模糊匹配:%通配  _ 占位符。

 

oracle开发之<<SQL Cookbook>>学习笔记整理:第一章 检索记录