文档详情

oracal操作基础sql.doc

发布:2017-02-04约5.06千字共6页下载文档
文本预览下载声明
任务一:建表查询综合练习 ORACLE维护数据的完整性 现有一个商店的数据库,记录客户及其购物情况,由下面三个表组成: 商品goods 商品号goodsid number(2)【主键】 商品名 goodsname varchar2(20) 单价unitprice number(5,2) 商品类别category varchar2(10) 供应商provider varchar2(20) 客户customer (客户号customerid number(2)【主键】,姓名customername varchar2(20),住址customeraddr varchar2(50) 电邮customeremail varchar2(20) 性别customersex char(3)身份证cardid varchar2(20) 购买purchase(客户号customerid【外键】,商品号goodsid【外键】,购买数量nums number(2) 建表,定义中要求声明 表的主键 客户的姓名不能为空 单价必须大于0,购买数量必须在1-30之间 电邮不能够重复 客户的性别必须是男或是女默认是男 create table goods( goodsid number(2) primary key, goodsname varchar2(20), unitprice number(5,2) check(unitprice 0) , category varchar2(10), provider varchar2(20) ) create table customer ( customerid number(2) primary key, customername varchar2(20) not null, customeraddr varchar2(50), customeremail varchar2(20) unique, customersex char(3) default 男 check( customersex in(男,女)) , cardid varchar2(20) ) create table purchase( customerid references customer (customerid), goodsid references goods(goodsid), nums number(2)check(unitprice between 1 and 30) ) 如果在建表的时候忘记建立必要的约束,则可以在建表后使用alter table命令为表增加约束,但是要注意:增加not null,default约束时候,需要使用modify选项,而增加其他四种约束使用add选项 每个表的主外键 alter table goods add primary key(goodsid ) alter table customer add primary key(customerid ) alter table purchase add foreign key(customerid ) references customer (customerid) alter table goodsid add foreign key(goodsid) references customer (goodsid) 客户的姓名不能为空值 -- 增加商品名也不能为空 alter table customer modify (customername not null) alter table goods modify (goodsname not null) 电邮不能够重复 –增加身份证也不重复 alter table customer modify (cardid unique) 增加客户的住址只能是 ‘海淀’ ,’朝阳’,’东城’,‘西城’,‘通州’,‘宗文’ alter table customer add check(customeraddr in (海淀,朝阳,东城,西城,通州,宗文)) goodsid goodsname unitprice category provider 1 佳洁士 8.00 牙膏 宝洁 2 高露洁 6.50 牙膏 高露洁 3 舒肤佳 3.00 香皂 宝洁 4 夏士莲 5.00 香皂 联合利华 customerid name address email sex cardid 1 Dennis 海淀 Dennis@163.com 男 123456789 2 John 朝阳 John@163.com 男 223456789 3
显示全部
相似文档