Oracle相关操作

来源:互联网 发布:感动一个人 知乎 编辑:程序博客网 时间:2024/06/04 22:03

查看数据库的字符集:select userenv('language') from dual

dual称之为伪表,它的目标有两种:1、使用它用来满足语法要求;2、使用它查询一些与数据库表无关的操作。

在sqlplus中,执行数据操作时,oracle自动开启事务管理,在插入和删除数据时,需要提交事务,即执行commit;

判断一个字段的值是否为空,不能用 (字段名=null),要用 (字段名 is null);

修改表的名字rename 表名 TO 新表名;
添加列alter table 表名 add (列名 类型 );
删除列alter table 表名 drop(列名);
修改表(设置默认值)alter table 表名 modify ( 列名 类型 default 默认值);
修改表中的字段名:alter table 表名 rename column 旧字段名 to 新字段名;

extract函数获取时间戳(systimestamp)中的小时是不加时区的,显示的是格林时间。
这里写图片描述

聚合函数:(max(),min(),avg(),sum(),count())

  1. 用于统计。
  2. 凡是查询语句中出现了聚合函数,则不能再出现单个字段。

    select min(sal) ,comm from emp;中comm是不允许的 。
    若要出现这单个字段,则须通过group by对其分组,如:select min(sal) ,comm from emp group by comm;中comm是允许的。
    (尽量不要将多列不同的列名放到group by中,否则将失去group by 的意义,即分组的意义)

  3. where中不能使用聚合函数。

    如:select max(sal) from emp where max(sal)>4000 group by deptno;中max(sal)>4000是不允许的。

group by 与 having

  1. having是在group by统计结果后的基础上再进行限制的。

    如查找每一个部门最高工资大于4000的记录:

    select deptno ,max(sal) from emp group by deptno having max(sal) >4000;