创建表时加约束
create table Product(
Productno number primary key,--商品编号
pname varchar2(20) not null unique,--商品名称
Price number not null,--价格
Barcode char(13) not null unique,--条形码
ProPrice number,--促销价格
Promodate date,--促销起日期
EndDate date,--促销止日期
discount number check(discount in(0,1)) not null,--允许打折
quantity number not null,--库存数量
alarm number,--库存警报数量
items number,--进货计划
sales number check(sales in(0,1))not null,--允许销售
facturerno number not null,--厂商编号
Supplierno number not null--供货商编号
);
已创建的表加约束
//创建顾客表
SQL> create table customer(
2 customerId number,
3 name varchar2(10),
4 address varchar2(60),
5 email varchar2(10),
6 sex varchar2(2),
7 cardId char(18)
8 );
表已创建。
//创建购买表
SQL> create table purchase(
2 customerId number,
3 goodsId number,
4 nums number
5 );
表已创建。
设置客户表中客户名字不能为空
SQL> alter table customer modify name varchar2(10) not null;
表已更改。
设置客户表性别
SQL> alter table customer add(constraint sex_check check(sex='男' or sex='女'));
表已更改。
设置客户性别并且默认值为男
SQL> alter table customer modify sex default'男'check(sex='男' or sex='女');
表已更改。
设置邮箱不能重复
SQL> alter table customer add(constraint email_unique unique(email));
表已更改。
设置商品单价大于0
SQL> alter table goods add(constraint unitprice_check check(unitprice>0));
表已更改。
设置购买数量在1-30
SQL> alter table purchase add(constraint nums_check check(nums>0 and nums<=30));
表已更改。
设置商品名不能为空
SQL> alter table goods modify goodsName varchar2(50) not null;
表已更改。
//设置客户身份证不能重复
SQL> alter table customer add(constraint cardid_unique unique(cardId));
表已更改。
设置客户地址
SQL> alter table customer add(constraint address_check check((address='海淀') or (address='朝阳') or (address='东城')or (address='西城') or (address='通州') or (address='崇文')));
表已更改。
删除商品表中对身份证不能重复的约束
SQL> alter table CUSTOMER drop constraint cardid_unique;