7.DML语言
sql语言的类型 数据库语言实现数据的crud
DML语句(Data Manipulation Language)数据库操作语言
insert
update
delete
select
DDL语言(Data Definition Language)数据定义语言
create table
create view
index
sequence
synonym 同义词
truncate table
DCL(Data control Language)数据控制语言
commit
rollback
savetpointe
insert语言
1 插入一个完整记录
insert into emp values (1, 'aaa', 'clerk', 7092, '17-12月-80', 8000, NULL, 20);
2 插入部分记录
insert into emp(empno,ename,deptno) values (2,'cc',20);
3 插入空值(显示和隐式)
4 创建脚本 取地址符&
SQL> insert into emp(empno, ename, deptno ) values (&empno, &ename, 20);
输入 empno 的值: 4
输入 ename 的值: 'cccc4'
原值 1: insert into emp(empno, ename, deptno ) values (&empno, &ename, 20)
新值 1: insert into emp(empno, ename, deptno ) values (4, 'cccc4', 20)
5 批量插入数据
把10号部门的员工 copy到另外一个表中
create table emp10
as
select * from emp where 1=2;
insert into emp10 select * from emp where deptno = 10;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7839 KING PRESIDENT 17-11月-81 5000 10
7934 MILLER CLERK 7782 23-1月 -82 1300 10
update 更新
模式如下
UPDATE table
SET column = value [, column = value, …]
[WHERE condition];
update table emp10
set deptno = 20
where empno = 7782
删除数据
—删除指定数据
delete emp10
where empno=7782
delete emp10
where empno=7782
–删除整个表中的数据
delete emp10 (但是表结构在...)
drop emp10; 删除表
delete(删除表的数据)和truncate表(把表drop 然后再重新建表 )区别
1 delete逐条删除 truncate先摧毁表再重建
2 delete语言是DML语言 truncate是DDL
DML语言可以闪回 做错的并且提交了.可通过闪回,撤销操作
DDL语言不可以闪回 flashback
3 delete是逐条删除,会产生碎片, truncate不会产生碎片
行移动功能: 要开启闪回功能,必须要开启行移动功能
4 delete不会释放空间 truncate会
5 delete可以回滚 truncate不可以
6 oracle delete快 mysql truncate快
事务
1.基本概念
概念 一个或者多个DML语言组成
特点 要么都成功,要么都失败
特性 原子性 一致性 隔离性 持久性
事物的隔离性 多个客户端同时操作数据库的时, 要隔离他们的操作
否则:脏读 不可重复读 幻读
设置不同的搁置级别来解决
oracle默认情况下,事务是打开
2.oracle中的事务 生命周期
1 事务起始标志 DML语言 (oracle默认事务打开的)
2 事务的结束标志
提交: 显示提交commit
隐式提交
1) 执行DDL语言
eg create table语言 还有I个隐式的功能
提交之前的没有提交的DML语言(insert update)
2) 正常退出
回滚:显示 rollback
隐式 掉电/宕机/非正常退出==系统出错了