Oracle课堂笔记(5)

2019-09-01 21:01

values(1002);

---------------------------------------------------emial列 unique---------------------------------------------- drop table student_tian; create table student_tian(

id number(4) primary key, name char(10) not null, email char(20) unique );

insert into student_tian(id,name,email) values(1001,'tian','123@tarena.com');

----报错 ORA-00001 unique constraint violated 唯一的约束被违反

insert into student_tian(id,name,email) values(1002,'yang','123@tarena.com');

----------------------------------------gender列 check-------------------------------------------------- ---gender: 只允许 'M' 男 'F' 女 drop table student_tian; create table student_tian(

id number(4) primary key, name char(10) not null, email char(20) unique,

gender char(1) check (gender in ('M','F')) );

insert into student_tian(id,name,email,gender) values(1001,'tian','123@tarena.com','F'); insert into student_tian(id,name,email) values(1002,'yang','1234@tarena.com');

---报错:ORA-02290 check constaint violated

insert into student_tian(id,name,email,gender) values(1002,'yang','1234@tarena.com','A');

desc student_tian -----------------------查看表结构 user_tables ------------------------查看用户表 user_objects ------------------------查看用户对象 user_procedure ------------------------查看用户过程 user_constraints -------------------------查看约束条件

select constraint_name,constraint_type from user_constraints where table_name = 'STUDENT_TIAN';

--------------------约束条件constraint 表名_列名_约束类------------------------ ---- 列级约束

drop table student_tian; create table student_tian(

id number(4) constraint stu_t_id_pk primary key, name char(10) constraint stu_t_name_nu not null,

email char(20) constraint stu_t_email_uk unique,

gender char(1) constraint stu_t_gender_ck check (gender in ('M','F')) );

---- 表级约束

drop table student_tian; create table student_tian(

id number(4) ,

name char(10) constraint stu_t_name_nu not null, email char(20) , gender char(1)

constraint stu_t_id_pk primary key (id)

constraint stu_t_email_uk unique (email)

constraint stu_t_gender_ck check (gender in ('M','F')) );

---- 建表,除了非空以外的约束条件,全部放在建表以后在建 drop table student_tian; create table student_tian(

id number(4) ,

name char(10) not null, email char(20) , gender char(1) );

--------------------------------------- 建完表以后添加约束条件-------------------------------------- alter table student_tian add

constraint stu_t_id_pk primary key (id);

alter table student_tian add

constraint stu_t_email_uk unique (email);

alter table student_tian add

constraint stu_t_gender_ck check (gender in ('M','F'));

----专业表

create table major_tian(

id number primary key, name char(20) not null );

insert into major_tian values(1,'Java'); insert into major_tian values(2,'Oracle'); insert into major_tian values(3,'C++'); insert into major_tian values(4,'android'); commit;

select * from major_tian;

create table stu_tian( id number(4),

name char(10) not null, mid number(2) );

alter table stu_tian add constraint stu_tian_id_pk primary key (id);

alter table stu_tian add constraint stu_tian_mid_fk foreign key (mid) references major_tian;

select constraint_name,constraint_type from user_constraints where table_name = 'STU_TIAN';

insert into stu_tian values(1001,'甲亢',1); insert into stu_tian values(1002,'乙亢',2);

----报错 ORA-02291 integrity constraint (OPENLAB.STU_TIAN_MID_FK) violated - parent key not found 父键找不到 insert into stu_tian values(1003,'抗体',10);

update stu_tian

set mid = 8 where mid = 1;

----报错 ORA-02291 integrity constraint (OPENLAB.STU_TIAN_MID_FK) violated - child key record found 子表中已有引用 delete major_tian where id=1;

------------------???????????????? 约束条件 ?????????????????---------------------- 主键 pk = not + null + unique 外键 fk :表间的一对多关系 非空 not null 唯一 unique 检查 check

-------------------- 联合主键: ???两者联合起来没有重复??----------------------------------?

? last_name first_name

张 三 张 三丰 Smith john

smith tom

create table student_tian( first_name char(10), last_name char(10), score number );

alter table stu_tian add

constraint stu_ln_fn_pk primary key (last_name,first_name); alter table stu_tian add

constraint stu_age_ck check ( age > 17 );

????------????? check 实际用的比较少,因为正常情况sql语句在程序中运行,check功能可以通过程序实现

insert into stu_tian values(1,'a',2); insert into stu_tian values(2,'b',2); insert into stu_tian values(3,'c',1);

alter table stu_tian drop

constraint stu_tian_mid_fk; alter table stu_tian add

constraint stu_tian_mid_fk foreign key (mid) references major_tian

on delete set null;----------将参照了被删除的键值的键值设置为null

---??删除主表id = 2的记录,成功,把子表中所有专业2的学生mid列设置为空

-----------??????????????????????????cascade : 级联,株连?????????????????? alter table stu_tian drop

constraint stu_tian_mid_fk; alter table stu_tian add

constraint stu_tian_mid_fk foreign key (mid) references major_tian on delete cascade;

---??删除主表id = 2的记录,成功,把子表中所有专业2的学生删除 ---???????????不复制约束条件,只复制表结构和数据

----------------------------------------???赋值结构 --------------------------------------------- create table stu_tian1 as

select * from stu_tian where 1 = 0 ;

----------------------------------?????给新表增加约束条件

----------------------------------? insert into stu_tian1 (select*from stu_tian where mid = 2);

建立约束条件的几种语法: 1】.建表时,列级 --???约束条件自定义 create table student_tian(

id number(4) primary key, name char(10) not null, email char(20) unique );

2】建表时,表级

create table student_tian( id number(4),

name char(10) not null, email char(20)

constraint student_id_pk primary key (id)

constraint student_email_nu unique (email) );

3】建表以后

create table student_tian( id number(4),

name char(10) not null, email char(20) );

alter table stu_tian add

constraint student_id_pk primary key (id); alter table stu_tian add

constraint student_email_nu not null (email);

===================????????????????????????????========================

------------------------------------------------脚本文件格式---------------------------------------------------- 1】删除外键约束 2】刪表 3】建表

4】添加约束 5】添加数据 commit;

===================????????????????????????????=============


Oracle课堂笔记(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:创建青年文明号活动台帐(最终版)-排版 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: