• oracle note


    null

    • null为无效的,未指定的,未知的活不可预知的值

    • null不是空格或0

    • 包含null 的数学表达式其结果都为空值

    • null 永远!= null

    • 判断某个字段为null,用 ename is null

    • 如果集合中有null,可以使用in, 不能使用not in

    • However, Oracle considers two nulls to be equal when evaluating a DECODE function

    • Oracle also considers two nulls to be equal if they appear in compound keys

    字符串

    • 字符串用 单引号
    • 别名 双引号/不带引号,区别为前者其中可包含特殊字符,后者不能,推荐前者
    • 连接符 || ,concat()连接函数
    • select 'Hello' || 'World' from dual;
    • select ename || '的薪水是' || sal from emp;
    • 字符串和日期要包含在单引号中
    • 字符串大小写敏感,日期格式敏感,默认格式为 '17-11月-81'
    • 字符串可是select列表中的一个字符,数字,日期
    • 修改日期格式:
      • select * from v$nls_parameters;
      • alter session system set NLS_DATE_FORMAT='yyyy-mm-dd';

    关键字

    • select 后的 distinct (deptno,ename) 作用于所有列
    • between and : 含有边界, 小值在前,大值在后
    • select * from emp where ename like '%_%' escape ''; -- 声明‘’为转义字符,查询ename中含有‘_’的员工
    • order by 后面可+ 列名,表达式,别名,序号(从1开始),desc,asc作用于离其最近一列,
    • asc 升序,由小到大,null最后,defaul
    • desc 降续,由大到小,null最前
    • select * from emp order by comm desc nulls last; --按奖金降序排列,所有null放最后
    • drop:删除表
    • delete:逐条删除记录,DML(可回滚),不会释放空间,undo空间,类似回收站,会产生碎片,即使提交事务也可闪回flashback
    • truncate:先摧毁,在重建(不可回滚),会释放空间,不会产生碎片,不可闪回
    • 去掉碎片:1.alter table <表名> move;2.导出,导入;
    • 导入sql文件: @d: emp estdata.sql
    • drop table test_tab purge; --删除表,且清空回收站
    • set serveroutput on; -- 打开输出
    • desc dbms_output; -- 显示包结构,包含的方法
    • truncate table test_tab; 慢,因要释放空间,重建表
    • delete from test_tab; 快
    • 1
    • create table emp10 as select * from emp where 1=2; --只拷贝表结构
    • 修改表:添加列,修改列,删除列,重命名列
    • alter table tab_name add ename varchar2(20)
    • alter table tab_name modify ename varchar2(30)
    • alter table tab_name drop column ename
    • alter table tab_name rename column ename to new_name
    • 重命名表
    • rename test1 to test2
    • drop table tab_name; --删到回收站
    • show recyclebin; --显示回收站
    • purge recyclebin; --清空回收站
    • 不是所有人都有回收站,管理员无回收站

    SQL优化

    • 尽量使用列名, 少使用*
    • where子句从右往左解析,在or中尽量把真条件放右,在and中尽量把假条件放右
  • 相关阅读:
    [C语言嵌入式系统编程修炼] 软件架构与内存操作篇
    [C陷阱和缺陷] 第2章 语法“陷阱”
    DAO是什么技术
    Java泛型:类型擦除
    Java泛型:泛型类、泛型接口和泛型方法
    定义泛型接口
    java,<E>什么意思?
    java List 去重(两种方式)
    java中List集合及其遍历详解
    java 遍历arrayList的四种方法
  • 原文地址:https://www.cnblogs.com/fuyiming/p/6491369.html
Copyright © 2020-2023  润新知