现在的位置: 首页 > 综合 > 正文

oracle约束实现

2013年09月09日 ⁄ 综合 ⁄ 共 1710字 ⁄ 字号 评论关闭

--约束(主键、非空、唯一、check、外键、默认)
--创建表的同时创建约束
--方式一:直接将约束写在字段的后面
create table student
(
       sno int primary key,--主键
       sname varchar2(20) not null,--非空
       sex varchar2(2) check(sex in ('男','女')),--check(sex ='男'or sex='女'),
       address varchar2(20) default '湖南长沙',--默认约束
       cardid varchar2(20) unique not null --唯一
)

drop table student;

--方式二:将所有字段写好后在来写约束
create table test
(
       sno int ,
       sname varchar2(20),
       constraint PK_TEST primary key(sno)
)

drop table test;

-- 外键约束
--(oracle里面创建表的同时创建外键约束的时候如果是将约束直接写在单个的字段后面是不需要加foreign key)
--(oracle里面创建表的同时创建外键约束的时候如果是将约束直接写在所有的字段后面是需要加foreign key)
create table score
(
       sno int references student(sno),
       cno int,
       grade float,
       constraint PK_score primary key(sno,cno),
       constraint FK_STUDENT_SCORE foreign key(cno) references course(cno)
)

--删除表
drop table score;

create table course
(
       cno int primary key,--课程号
       cname varchar2(20)--课程名
)
drop table course;

--SQL SERVER里面的书写方式
/*create table tt1
(
    sno varchar(3) foreign key references student(sno),
    aa varchar(20)
)

create table tt2
(
    sno varchar(3),
    aa varchar(20),
    constraint FK_student_tt2 foreign key(sno) references student(sno)
)*/

--创建表以后再来添加约束
create table student
(

       sno int,
       sname varchar2(20),
       sex varchar2(2),
       address varchar2(20),
       cardid varchar2(20)
)
--首先添加主键约束
alter table student
add constraint PK_student_sno primary key(sno)

--删除约束
alter table student
drop constraint PK_student_sno

--not null
alter table student
modify (sname  varchar2(30)  not null)

--check约束
alter table student
add constraint CK_student_sex check(sex = '男' or sex = '女')

--默认约束
alter table student
modify (address  varchar2(20) default '湖南软件评测中心')

--唯一约束
alter table student
add constraint UQ_student_cardid unique(cardid)

--外键约束
alter table score
add constraint FK_student_score foreign key(sno) references student(sno)

select 12*54

抱歉!评论已关闭.