首页 > 代码库 > SQL的类型
SQL的类型
SQL分以下三种类型
1.DML(data manipulation Language) 数据操作语言
insert ,update ,delete,select
2.DDL(data definition language)数据定义语言
create table,alter table,drop table,truncate table,create/drop view,sequence(序列),index,synonym(同义词)
3.DCL(data control language) 数据控制语言
grant(授权) revoke(撤销权限)
1.insert
1.1基本概念: 隐式插入空值,显示插入空值
1.2插入数据可以采用地址符&
insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno); select empno,ename,sal,&t from emp; select * from &t;
1.3批量插入
create table emp1o as select * from emp where 1=2;
问题描述:一次性将emp中,所有10号部门员工插入到emp10中
insert into emp10 select * from emp where deptno =10
1.4海量插入数据
1.4.1 数据泵(datapump)--->PLSQL
1.4.2 SQL*Loader
1.4.3(数据仓库)外部表
1.4.4可传输的表空间
2.update
2.1 更新操作时是否含有where,更新一条或多条
update employees set salary = (select salary from employees where employee_id =205) where employee_id =114;
3.delete
3.1delete和truncate 区别:
3.1.1delete逐条删除,truncate先摧毁表,再重建表
3.1.3delete不会释放空间,truncate 会
3.1.5delete会产生碎片(空闲的空间,将数据之间隔开,影响select效率),truncate不会
3.1.5.1去掉碎片:
alter table<表名> move;
导入,导出
3.1.2delete是DML(可以回滚),truncate是DDL(不可以回滚)
3.1.4delete可以闪回,truncate 不可以.删除的数据可以恢复
3.1.5 关闭返回数据,向oracle当中插入sql的脚本
set feedback off @d:\temp\testdelete.sql
3.1.6 oracle当中delete的效率比truncate效率高
原因:--undo数据(还原数据),所以delete的效率更高
4.事务:
4.1由一个或多个DML语句组成,要么都成功,要么都失败,有四个特性(ACID)原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )
4.2事务包含:本地事务和全局事务
本地事务:操作的是数据库(取钱)
全局事务:操作不一定是数据库(转账,发邮件,取钱)
4.3事务的标志:
4.3.1起始标志:事务的第一条DML语句
4.3.2结束标志: 提交: 显示 commit
隐式:正常退出(exit),DDL,DCL
回滚:显式 rollback
隐式: 非正常退出,掉电,宕机
4.4控制事务
4.4.1savepoint,可以控制事务回滚的位置,而不需要回滚真个目录
savepoint a .....增删改查 rollback to savepoint
SQL的类型