SQL的类型
- 1、DML(Data Manipulation Language 数据操作语言): select insert update delete
- 2、DDL(Data Definition Language 数据定义语言): create table,alter table,truncate table,drop table,create/drop view,sequnece,index,synonym(同义词)
- 3、DCL(Data Control Language 数据控制语言): grant(授权) revoke(撤销权限)
DML
插入数据
insert into emp(empno,ename,sal,deptno) values(1001,'Tom',3000,10); -- 或 采用地址符 & insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno); 输入 empno 的值: 1002 输入 ename 的值: 'Mary' 输入 sal 的值: 2000 输入 deptno 的值: 20 原值 1: insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno) 新值 1: insert into emp(empno,ename,sal,deptno) values(1002,'Mary',2000,20) -- 批量添加数据 --一次性将emp中,所有10号部门的员工插入到emp10中 insert into emp10 select * from emp where deptno=10;
海量插入数据
1、数据泵(PLSQL程序)
dbms_datapump(程序包)
2、SQL*Loader
3、外部表
delete和truncate的区别
1、delete逐条删除;truncate先摧毁表 再重建
2、delete是DML truncate是DDL***
(可以回滚) (不可以回滚)
执行DDL类型的命令会提交事务
3、delete不会释放空间 truncate会
4、delete会产生碎片 truncate不会
- 碎片:在Oracle中有一个指针(高水位线)记录着下次insert的位置,如果我们在数据的中间执行delete命令就会产生碎边(数据不连续)
5、delete可以闪回(flashback) truncate不可以
- 闪回:还原数据
Oracle中的事务
1、起始标志: 事务中的第一条DML语句
2、结束标志:提交: 显式 commit 隐式: 正常退出 DDL DCL
回滚: 显式 rollback 隐式: 非正常退出 掉电 宕机