一、Oracle中 dml、ddl、dcl的使用
DML:数据操纵语言,如select、update、delete,insert
DDL:数据定义语言,如create table 、drop table 等等
DCL:数据控制语言, 如 commit、 rollback、grant、 invoke等
二、Delete 与Truncate区别
1)Truncate 是DDL 语句,Delete 是DML语句。
2) Truncate 的速度远快于 Delete ;
原因是: 当执行DELETE操作时所有表数据先被COPY到回滚表空间,数据量不同花费时间长短不一。而TRUNCATE 是直接删除数据不进回滚表空间。
3) delete 数据可以运行Rollback 进行数据回滚。而Truncate 则是永久删除不能回滚。
4) Truncate 操作不会触发表上的delete触发器,而delete 会正常触发。
5) Truncate 语句不能带where 条件意味着只能全部数据删除,而DELETE可带where 条件进行删除数据。
6) Truncate 操作会重置表的高水位线(High Water Mark),而delete 不会。
三、集合操作符
Union : 不包含重复值,默认按第一个查询的第一列升序排列。
Union All : 完全并集包含重复值。不排序。
Minus 不包含重复值,不排序。
四、数据库的三大范式是什么
1) 第一范式:原子件,要求每一列的值不能再拆分了。
2) 第二范式: 一张表只描述一个实体