查看数据库的字符集: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())
- 用于统计。
凡是查询语句中出现了聚合函数,则不能再出现单个字段。
如
select min(sal) ,comm from emp;
中comm是不允许的 。
若要出现这单个字段,则须通过group by对其分组,如:select min(sal) ,comm from emp group by comm;
中comm是允许的。
(尽量不要将多列不同的列名放到group by中,否则将失去group by 的意义,即分组的意义)where中不能使用聚合函数。
如:
select max(sal) from emp where max(sal)>4000 group by deptno;
中max(sal)>4000是不允许的。
group by 与 having :
having是在group by统计结果后的基础上再进行限制的。
如查找每一个部门最高工资大于4000的记录:
select deptno ,max(sal) from emp group by deptno having max(sal) >4000;