oracle之数据处理之约束练习

57. 定义非空约束

	1). 非空约束只能定义在列级.
	
	2). 不指定约束名
	create table emp2 (
	name varchar2(30) not null, 
	age number(3)
	);
	
	3). 指定约束名	
	create table emp3(
	name varchar2(30) constraint name_not_null not null, 
	age number(3));
	
58. 唯一约束
	1). 列级定义
		
		①. 不指定约束名
		create table emp2 (
		name varchar2(30) unique, 
		age number(3)
		);
		
		②. 指定约束名
		create table emp3 (
		name varchar2(30) constraint name_uq unique, 
		age number(3)
		);
		
	2). 表级定义: 必须指定约束名
		①. 指定约束名
		create table emp3 (
		name varchar2(30), 
		age number(3), 
		constraint name_uq unique(name)
		);

58.1 主键约束:唯一确定一行记录。表明此属性:非空,唯一 
		
59. 外键约束
	1). 列级定义
		
		①. 不指定约束名
		create table emp2(
		       emp_id number(6), 
		       name varchar2(25), 
		       dept_id number(4) references dept2(dept_id))
		
		②. 指定约束名
		create table emp3(
		       emp_id number(6), 
		       name varchar2(25), 
		       dept_id number(4) constraint dept_fk3 references dept2(dept_id))
		
	2). 表级定义: 必须指定约束名

		①. 指定约束名
		create table emp4(
		       emp_id number(6), 
		       name varchar2(25), 
		       dept_id number(4),
		       constraint dept_fk2 foreign key(dept_id) references dept2(dept_id))
	
60. 约束需要注意的地方

	1). ** 非空约束(not null)只能定义在列级

	2). ** 唯一约束(unique)的列值可以为空

	3). ** 外键(foreign key)引用的列起码要有一个唯一约束		
	
61. 建立外键约束时的级联删除问题:
	1). 级联删除:
	
	create table emp2(
	       id number(3) primary key, 
	       name varchar2(25) unique, 
	       dept_id number(3) references dept2(dept_id) on delete cascade)
	
	2). 级联置空
	
	create table emp3(
	       id number(3) primary key, 
	       name varchar2(25) unique, 
	       dept_id number(3) references dept2(dept_id) on delete set null)
       
1.	向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk)
ALTER table emp2
ADD constraint my_emp_id_pk primary key(id);

2.	向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk)
ALTER table dept2
ADD constraint my_dept_id_pk primary key(id)

3.	向表emp2中添加列dept_id,并在其中定义FOREIGN KEY约束,与之相关联的列是dept2表中的id列。
ALTER table emp2
ADD (dept_id number(10) constraint emp2_dept_id_fk references dept2(id));

准备工作:
	create table emp2 as select employee_id id, last_name name, salary from employees

	create table dept2 as select department_id id, department_name dept_name from departments

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小歌谣

放弃很容易 但是坚持一定很酷

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值