段磊 王慧锋 TEL: 18780273367 qq群:161439266 E-mail: 653703162@qq.com 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: 18780273367 qq群:161439266 E-mail: 653703162@qq.com
补充练习: 完成以下要求 考虑某工厂销售系统的数据库设计 需要如下几张表的信息
客户表(Customer) Cid Name Address Phone 11 机械厂 成都南二环路4段116号 83577614 22 木工厂 武汉南化路95 13980677175 78 上海仪表厂 延安中路1195号 NULL
零件表(Part) Pno Pname UnitPrice 150 X 20.00 152 Y 33.00 153 Z 4.00 155 V 15.00 162 W 25.00
约束:收到订单日期非空;发货日期如果非空则应大于订单日期 订单表(Order) 约束:收到订单日期非空;发货日期如果非空则应大于订单日期 Ono CId Received Shipped 20 11 10-Dec-97 12-Dec-97 21 13-Feb-98 15-Feb-98 22 26-Feb-98 NULL
订单细则表(Invoice,一个订单中的每种零件对应一个细则) Ono Pno Qty 20 152 1 155 4 162 22 3 21 150 2 153
要求 完成上述表的设计,写出CREATE TABLE语句。 用INSERT语句输入表中数据 完成查询 查询单价在10-25元之间的零件; 查询有单个订单细则合计价格在50元以上的订单; 查询包含了20号订单所有零件的订单。
创建customer表 CREATE TABLE customer( cid character(2) NOT NULL, name character(20), address character(100), phone character(11), CONSTRAINT customer_pkey PRIMARY KEY (cid) )
创part建 CREATE TABLE part ( pno character(3) NOT NULL, pname character(2), unitprice numeric, CONSTRAINT part_pkey PRIMARY KEY (pno) )
创建orde表 CREATE TABLE orde( ono character(2) PRIMARY KEY (ono),, cid character(2), received date, shipped date, CONSTRAINT c1 CHECK (shipped > received)) Alter table orde add constraint c1 check(shipped>received);
创建invoice表 CREATE TABLE invoice( ono character(2) NOT NULL, pno character(3) NOT NULL, qty integer, PRIMARY KEY (ono, pno), FOREIGN KEY (ono) REFERENCES orde (ono), FOREIGN KEY (pno) REFERENCES part (pno) )
\d查看已创建的表
Customer表
Part 表
Order表
Invoice表
查询单价在10-25元之间的零件
查询单价在10-25元之间的零件
查询单价在10-25元之间的零件
查询有单个订单细则合计价格在50元以上的订单
查询有单个订单细则合计价格在50元以上的订单
查询包含了20号订单所有零件的订单