oracle学习记录之十三

约束

create table goods(goodsid char(8) primary key,            --主键

                               goodsname varchar2(20),

                               unitprice number(10,2) check (unitprice >0),        --检查

                               category varchar2(10),

                               vendor  varchar2(20));

 

create table customer( customerid char(8) primary key,

                                   name varchar2(30) not null,

                                   address varchar2(30),

                                  email varchar2(30) unique,

                                  sex char(2) default '男' check (sex in ('男', '女')),

                                  cardid char(10));


create table purchase( customerid char(8) references customer(customerid),   --列级定义不用foreign key

                                  goodsid char(8) references goods(goodsid),

                                  nums number(10)  check ( nums between 1 and 30));


alter table goods modify goodsname not null; 

alter table customer add constraint cardunique unique(cardid);

alter table customer add constraint addresscheck check(address in('和平', '西青', '南开');


alter table customer drop constraint cardunique;

alter table customer drop primary key [cascade];   --若存在主外键关系,需要cascade


select constraint_name, constraint_type, status, validated from user_constraints where  table_name='CUSTOMER';

--查看约束信息

select column_name, position from user_cons_columns where constraint_name='ADDRESSCHECK';  --查看约束列名


列级定义--在定义列的同时定义约束

create table department(deptid number(2) constraint pk_department primary key,

                   name varchar2(12)

                  loc varchar2(12));


表级定义--在定义了所有列后,再定义约束,注意not null约束只能在列级上定义

create table employ(employid number(4),

name varchar2(20),

deptid number(2),

constraint pk_emplyee primary key (employid),

constraint fk_dept foreign key (deptid)  references departmt(deptid));









                          

                              

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值