Oracle数据库学习笔记——基本查询

  1. sql优化原则:
    a.尽量使用列名查询
    b.where的解析顺序是自上而下,从右到左
    c. 尽量使用多表查询代替子查询
    d. 尽量不要使用集合运算
  2. NULL值注意事项
    a.NULL不为NULL(空)
    b.含有NULL的算术表达式为NULL
    c.在in集合中如果有NULL,不能使用 not in
    d. 在order by排序中NULL当做最大值
  3. 率空函数
    a.nvl(a,num):当a等于null时 返回num
    eg:Oracle数据库学习笔记——基本查询_第1张图片
    Oracle数据库学习笔记——基本查询_第2张图片
    1. 查询某个东西的某项等于NULL时,语句中不能使用xxx=NULL,要使用xxx is null,如果是不等于就是 is not null
    2. 给查询的列换一个名字:列名 as “别名”,其中as可以省略,双引号也可以省略,但是如果省略了双引号后,别名不能有空格
    3. distinct 去掉重复的数据,并且作用于其后面所有的列,后面的列组合起来不重复,不是单个列不重复eg:
      Oracle数据库学习笔记——基本查询_第3张图片Oracle数据库学习笔记——基本查询_第4张图片
    4. 连接符||,连接函数concat(),连接函数的参数只能是两个 eg:
      Oracle数据库学习笔记——基本查询_第5张图片Oracle数据库学习笔记——基本查询_第6张图片
    5. sql条件和排序语句:select *|{[DISTINCT] column|expression [alias],…}from table[where conditions];
      eg:
      Oracle数据库学习笔记——基本查询_第7张图片
    6. 字符串大小写敏感,字符串和日期必须放在单引号内
      Oracle数据库学习笔记——基本查询_第8张图片
    7. 日期格式敏感,查询时必须严格按照设定格式,比如上图的17-11月-81,修改时间格式设定 select * from v$nls_parameters;
      NLS_DATE_FORMAT这个属性就是时间格式,然后输入指令:alter session set NLS_DATE_FORMAT=‘yyyy-mm-dd’;但是session只在本次会话中有用,关闭窗口就无效
    8. 条件为在什么之间使用between…and…,小值在前,大值在后,并且有边界eg: select * from emp where sal between 1000 and 2000;也可以用表达式组合;select * from emp where sal>=1000 and sal <=2000;
    9. in(a,b,c,…)查询条件为在集合中的,not in 不在集合中,但是需要注意如果集合中有Null,不能使用not in,eg:select * from emp where deptno in (10,20); select * from emp where deptno not in (10,20);之所以不能在包含null的集合中使用not in 是因为in 判断时集合中相当于or,只要有一条满足就会返回true,但是在not in中 集合内相当于and 必须每个条件都成立才能返回true但是null与任何表达式计算都是null,所以集合返回都是fase所以也就找不到任何数据信息。在这里插入图片描述
    10. 模糊查询 like 下划线表示模糊一个字符,%百分号表示一些字符,转义字符设定 escape ’ xx’ eg:查询名字是4个字的 select * from emp where ename like '__’; 查询名字中带有下划线的: select * from emp where ename like '%/%’ escape ‘/’; 如果不加入转义字符,系统识别不了那是下划线,他会当成模糊查询中的一个字符。Oracle数据库学习笔记——基本查询_第9张图片
    11. order by 排序(默认为升序,后面加上desc为降序),其后面可以加 列,表达式,别名,序号 eg:
      在这里插入图片描述
      在这里插入图片描述表达式
      在这里插入图片描述别名
      在这里插入图片描述序号(序号是按照查询列名的顺序从1开始,比如empno是1,sal*12是4)
      注意1:如果是多个列进行排序,则先按照第一个列再按照第二个列依次排序,如果第一个列没有重复,第二个列就不排序,desc 只作用于离他最近的列
      注意2:当在排序中遇到null时,Null为最大值,这个时候可以采用nvl()来给NULL给一个值,或者在排序语句后加上nulls first 或者nulls last 将null值放到最前面或者最后面Oracle数据库学习笔记——基本查询_第10张图片
    12. windowns下清屏指令 host cls,clear screen 或者是clea scre

你可能感兴趣的:(Oracle数据库)