SQL学习之事务处理及定义约束,基于Oracle下的HR用户(六)

事务处理语言(TCL)
1 什么是事务
指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
2 什么是事务特性

2.1 原子性(ATOMICITY)
事务中的操作要么都不做,要么就全做。
2.2 一致性(CONSISTENCY) 一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在完成了一个
成功的事务时,数据应处于一致的状态。
2.3 隔离性(ISOLATION) 一个事务的执行不能被其他事务干扰。
2.4 持久性(DURABILITY) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

3 使用事务

commit.....事物提交
rollback....事物回滚
savepoint..设置回滚点

3.1 事务类型
3.1.1 显式事务
需要我们手动的提交或回滚。
DML 语言中的所有操作都是显示事务操作。
3.1.2 隐式事务
数据库自动提交不需要我们做任何处理,同时也不具备回滚性。
DDL、DCL 语言都是隐式事务操作
3.2 事务提交

Commit

当我们执行了一个 DML 语言后,此时的数据并不会持久化到数据文件中。需要使用
commit 来确认提交。
3.3 事务回滚

Rollback

当我们执行了一个 DML 语言后,也可以使用 rollback 来撤销当前对表的操作。
3.4 设置回滚点

Savepoint
Rollback to

九、 数据定义语言(DDL)

create.....创建数据库对象
drop.......删除数据库对象
arter......修改数据库对象
rename.....修改数据库对象名称

1 创建表(CREATE TABLE)
在这里插入图片描述

1.1 示例

create table dept(deptno NUMBER(2),dname
VARCHAR2(14),loc VARCHAR2(13));

在这里插入图片描述

1.2Oracle 数据库中的表
• 用户表:
– 由用户创建和维护的表的集合。
– 包含用户信息。
• 数据字典:
– 由 Oracle 服务器创建和维护的表的集合。
– 包含数据库信息。
1.2.1 常见的数据字典表
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述1.3 用查询创建表
1.3.1 示例

create table dept80 as select
employee_id,last_name name,salary,hire_date
from employees e where e.department_id = 80;

在这里插入图片描述

2 修改表(ALTER TABLE)
ALTER TABLE 语句可以修改表的信息。
• 添加一个新列
在这里插入图片描述

• 修改一个已存在的列
在这里插入图片描述

• 删除一个列
在这里插入图片描述

2.1 添加一个新的列
2.1.1 示例

alter table dept add(salary number(8,2));

在这里插入图片描述

2.2 修改一个列
2.2.1 示例一
修改数据类型

alter table dept modify(dname varchar2(40));

在这里插入图片描述

2.2.2 示例二
修改默认值

alter table dept modify(salary number(8,2)default 1000);
alter table dept modify(salary number(8,2) default null);

在这里插入图片描述

在这里插入图片描述

2.2.3 示例三
修改列名

alter table dept rename column dname to name;

在这里插入图片描述

2.3 删除一个列
2.3.1 示例

alter table dept drop column salary;

在这里插入图片描述

3 修改名称(RENAME)
3.1 示例

rename dept80 to dept90;

在这里插入图片描述

4 截断表(TRUNCATE TABLE)
特点:
删除表中的所有的数据,但是保留表结
构。在截断表时不能给定条件截断表时隐
式事务。
4.1 示例

truncate table dept90;

在这里插入图片描述
5 删除表(DROP TABLE)
5.1 示例

drop table dept90;

在这里插入图片描述
定义约束
1 数据库中的约束类型

非空约束(NOT NULL) 
唯一性约束(UNIQUE)
主键约束(PRIMARY KEY) 
外键约束(FOREIGN KEY)
用户自定义约束(CHECK)
约束说明
not null指定列不能包含空值
unique指定列的值或者列的组合的值对于表中所有的行必须是唯一的
primary key表的每行的唯一性标识
foreign key在列和引用表的一个列之间建立并强制一个外键关系
check指定一个必须为真的条件

1.1 定义约束原则
创建一个约束:在创建表的同时,或者在创建表之后都可以定义约束。可以给约束起名字,但是约束名不能相同,必须是唯一的。如果没有为约束起名字,Oracle 服务器将用默认格式 SYS_Cn 产生一个名字,这里 n 是一个唯一的整数,所以约束名是唯一的。
2 定义 NOT NULL 约束
在这里插入图片描述

2.1 创建表时定义 NOT NULL 约束
2.1.1 示例

create table dept80(id number,name varchar2(20) not null, salary number
constraint dept80_notn not null);

在这里插入图片描述

2.2 修改表定义 NOT NULL 约束
2.2.1 示例

alter table dept80 modify id not null;

在这里插入图片描述

3 定义 UNIQUE 约束
在这里插入图片描述

3.1 创建表时定义 UNIQUE 约束
3.1.1 示例

create table dept90(id number constraint
dept90_uk unique,name varchar2(20));

在这里插入图片描述

3.2 修改表定义 UNIQUE 约束
3.2.1 示例

alter table dept90 modify(name unique);

在这里插入图片描述

4 定义 PRIMARY KEY 约束
在这里插入图片描述

4.1 创建表时定义 PRIMARY KEY 约束
4.1.1 示例

create table dept70(id number
constraint dept70_pk primary key, name varchar2(20));

在这里插入图片描述

4.2 修改表定义 PRIMARY KEY 约束
4.2.1 示例

alter table dept60 modify(id constraint
dept60_pk primary key);

在这里插入图片描述

4.3 创建联合主键
4.3.1 示例

create table dept50(id number,name
varchar2(20),constraint dept50_pk primary
key(id,name));

在这里插入图片描述

5 定义 FOREIGN KEY 约束
在这里插入图片描述
5.1 创建表时定义 FOREIGN KEY
5.1.1 示例

create table dept40(id number,d_id
number,constraint dept40_fk foreign
key(d_id) references dept60(id));

在这里插入图片描述

5.2 修改表定义 FOREIGN KEY
5.2.1 示例

alter table dept50 add constraint
dept50_fk foreign key(id) references
dept60(id);

在这里插入图片描述

6 定义 CHECK 约束
在这里插入图片描述

6.1 创建表时定义 CHECK 约束
6.1.1 示例

create table dept30(id number,salary
number(8,2) constraint dept30_ck check
(salary > 1000));

在这里插入图片描述在这里插入图片描述

6.2 修改表定义 CHECK 约束
6.2.1 示例

alter table dept50 add salary number(2,8) constraint
dept50_ck check(salary > 1000);

在这里插入图片描述

7 禁用与启用约束
7.1 查看约束
在这里插入图片描述

7.1.1 示例

select constraint_name,constraint_type,search_condition 
from user_constraints where
table_name = 'DEPT40';

在这里插入图片描述

7.2 禁用约束
在这里插入图片描述

7.2.1 示例

alter table dept40 disable constraint
dept40_fk;

在这里插入图片描述

级联禁用

alter table dept60 disable constraint
dept60_pk cascade;

在这里插入图片描述

7.3 启用约束
在这里插入图片描述

7.3.1 示例

alter table dept40 enable constraint
dept40_fk;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值