Oracle数据库|Oracle数据库(表、查询语句、条件查询)的使用

Oracle数据库 表 表是从属于用户的
查询表

  • 查询表(用户名.表名),当前用户查询自己的表时,用户名.可以省略,其他用户查询 别的用户表 ,不能省略,同时必须存在权限。
表结构
  • 表名
    • 列是字段,字段默认值是null
  • 字段名
    • 表头 (行标题)
  • 字段类型
    • number
      • 整数、小数
    • char
      • 定长字符串
    • varchar2
      • 变长字符串,姓名表示常用
    • date
      • 表示日期
  • 字段约束
    • 主键
      • 非空、唯一
    • 外键约束
  • 记录
    • 数据
查询语句
  • 去除重复
    • distinct
      • select distinct deptno from emp
  • 别名
    • 默认省略as
    • 字段别名可以使用as
      • select ename as “雇员 姓名” from emp;
    • 表别名不能使用as
    • “”:原样输出,可以存在空格与区分大小写
      • select ename as 雇员 姓名 from emp;
      • select ename as " Ename" from emp;
    • 别名不能用在where后
  • 字符串
    • 使用’ ’表示字符串(注意区分” ”) ,拼接使用 ||
      • select ‘my’ from emp;
      • select ename||‘a’||‘–>’ info from emp;
    • 用 || 拼接的是ename字段中的记录
    • ‘ ’ 表示的字符串存在于相应的字段的记录中
  • 伪列
    • 不存在的列,构建虚拟的列
      • 如count列和name列
        • select 1*2 as count,‘cmj’ as name from emp;
    • 字符串可以作为伪列存在
  • 虚表
    • 用于计算表达式,显示单条记录的值
      • select 1+1 from dual;
  • null
    • null 遇到数字参与运算的结果为 null
      • select 1+null from dual;
    • null 遇到字符串参与运算的结果为 空串
      • select ‘1’||null from dual;
    • nvl(判定字段,默认值)函数
      • 判断字段是否为null,如果为空,取默认值0,否则取字段实际值
      • select ename,sal*12+nvl(comm,0) from emp;
条件查询
  • 查询行(记录)
    • where 过滤行记录条件 ,条件有
    • a)、= 、 >、 <、 >=、 <=、 !=、 <>、 between and
    • b)、and 、or、 not、 union、 union all、 intersect 、minus
    • c)、null :is null、 is not null、 --not is null
    • d)、like :模糊查询 % _ escape(‘单个字符’)
    • f)、in 、 exists(难点) 及子查询
  • 且 或 非
    • and、 or、 not
  • null
    • null不能使用条件判断,只能使用is
      • select * from emp where comm is null;
  • 集合操作
    • Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;
    • Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序 ;
    • Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
    • Minus,差集(减去重复) 对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序
  • like :模糊查询
    • %:零个及以上(任意个数的)的字符
    • _:一个字符
    • 遇到内容中包含 % _ 使用escape(‘单个字符’)指定转义符
  • in 与 exists
    • in
      • in相当于使用or的多个等值,定值集合 ,如果存在 子查询,确保 类型相同、字段数为1,如果记录多,效率不高,用于 一些 少量定值判断上
    • exists
      • exists条件为true,存在记录则返回结果,后续不再继续 比较查询,与查询的字段无关,与记录有关
  • 排序
    • 使用 ORDER BY 排序,排序不是真实改变存储结构的顺序,而是获取的集合的顺序。
    • 升序 :asc(默认)
    • 多字段: 在前面字段相等时,使用后面的字段排序
    • 空排序: 降序为 desc,注意 null 为最后

    推荐阅读