参考:http://bbs.51cto.com/thread-572907-1.html
商品销售数据库
Article(商品号 char(4),商品名char(16),单价 Numeric(8,2),库存量 int)
Customer(顾客号char (4),顾客名 char (8),性别 char(2),年龄 int)
OrderItem(顾客号 char(4),商品号 char(4),数量 int, 日期 date)
--检索至少定购商品号为‘0001’和‘0002’的顾客号。(用交的方法)
select 顾客号 from OrderItem where 商品号='0001' and 顾客号 in
( select 顾客号 from OrderItem where 商品号='0002');
--检索至少定购商品号为‘0001’和‘0002’的顾客号。(用自表连接方法)
select X. 顾客号 from OrderItem X,OrderItem Y
where X.顾客号=Y.顾客号 and X.商品号='0001' and Y. 商品号='0002';
--创建一个视图GM,字段包括:顾客号,顾客名和定购的商品名,日期和金额(金额=数量*单价)。指定用内连接方式做。
create view GM as
select Custommer.顾客号,顾客名,商品名,日期,单价*数量 as 金额
from Custommer,Article,OrderItem
where Custommer.顾客号=OrderItem.顾客号 and Article.商品号=OrderItem.商品号
create view GM1 as
select Custommer.顾客号,顾客名,商品名,日期,单价*数量 as 金额
from (Custommer inner join OrderItem on Custommer.顾客号=OrderItem.顾客号)
inner join Article on Article.商品号=OrderItem.商品号
下面是总体的练习题及答案:
--S Q L 习 题
--商品销售数据库
--Article(商品号 char(4),商品名char(16),单价 Numeric(8,2),库存量 int)
--Customer(顾客号char (4),顾客名 char (8),性别 char(2),年龄 int)
--OrderItem(顾客号 char(4),商品号 char(4),数量 int, 日期 date)
-- 1 用SQL建立三个表,须指出该表的实体完整性和参照完整性,对性别和年龄指出用户自定义的约束条件。(性别分成男女,年龄从10到100)。顾客表的数据用插入语句输入数据,其它两表可用任意方式输入数据。
create table OrderItem (顾客号 char ( 4 ),商品号 char ( 4 ),日期 datetime ,数量 smallint ,
primary key (顾客号,商品号,日期),
foreign key (商品号) references Article (商品号),
foreign <