事务的概念
定义:数据库事务,是由有限数据库操作序列组成的逻辑单元,这一系类操作要么全部执行,要么全部放弃
数据库事务由以下的部分组成:
- 一个或多个DML 语句
- 一个 DDL(Data Definition Language – 数据定义语言) 语句
- 一个 DCL(Data Control Language – 数据控制语言) 语句
事务的特性
- 原子性:事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行
- 一致性:几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
- 隔离性:事务的执行不受其他事务的干扰,当数据库被多个客户端并发访问时,隔离它们的操作,防止出现:脏读、幻读、不可重复读。
- 持久性:对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障
注:
事务的显示提交:commit
事务的隐式提交:有DDL语句,如create,exit,truncate
回滚:rollback
保存的
命令:savepoint,防止错误操作影响整个事务,方便对事务进行控制
作用:他的作用就是事务中的标记,他会保存事务在点以前的语句,就是回到原来的状态,需要注意的是,一旦你commit之后,保存点就会失效
创建和管理表
创建表
create table my_text(id number,name varchar2()),hiredate date default sysdate;
//default的作用就是在没用指定时间的时候,使用系统时间
create table tbl_bak as select * from tbl where 1=2;
//通过拷贝的方式保存一个表的结构,同样也可以在where条件下选择
创建表时候所用的数据类型
修改表
//添加列
alter table my_text add sex char(2);
//修改列的属性
alter table mt_text modify sex varchar2(4);
//重命名列
alter table my_text rename column sex to hao;
//删除列
alter table my_text drop column sex;
删除表
drop table my_text;
drop table my_text purge; //不能闪回
表的约束
表的约束(5种):
- 检查 (值是否符合预设的规则)
- 非空 (not null)
- 唯一 (不能重复)
- 主键(非空+唯一)
- 外键 (取值必须在另外一个表中存在)
使用约束的例子:
create table student(
id number constraint pk_student primary key, ---主键(非空唯一)
name varchar2(30) not null, --非空
email varchar2(30) unique, --唯一
sex varchar2(10) check(sex in ('男','女')), --check约束
sal number check(sal>10000), --check约束
deptno number(2) references dept_bak(deptno) on delete set null
);