1、1)找出 MGM studios 的地址。select 地址 from 制片公司where 公司名称=MGM studios2)找出 Sandra Bullock 的出生日期。select 生日from 电影明星where 姓名=Sandra Bullock3)找出在 2003 年拍摄过电影的所有影星,或者拍摄过电影中含有“天空“的电影的所有明星。select 演员姓名from 演员参演电影where 拍摄年份=2003 or 电影名称 like%天空%4)找出净资产至少 1000 万美元的所有行政长官。select 姓名from 制片人与行政总裁where 资产=100000005)找出所有
2、的男影星或者是住址中含有 Malibu 的影星。select 姓名from 电影明星where 地址 like Malibu or 性别 like 男1)电影“加勒比海盗 4“中的男影星都有谁。select 姓名from 电影明星where 性别 =男 and 姓名 in(select 演员姓名from 演员参演电影where 电影名称=加勒比海盗 4)2)谁是米高梅制片公司的总裁。select 姓名from 制片人与行政总裁where 身份证号 =( select 行政总裁from 制片公司where 公司名称 =MGM studios)4)那些电影比乱世佳人更长。select 电影名称fr
3、om 电影where 长度 (select 长度from 电影where 电影名称 = 乱世佳人)5)那些行政长官比 Tom 更富有。select 姓名from 制片人与行政总裁where 资产(select 资产from 制片人与行政总裁where 姓名=Tom)1、找出价格低于 6000 元的 PC 计算机型号、速度、以及硬盘容量。select 型号,速度,硬盘容量from PC 电脑where 价钱 60005、从“打印机“关系中找出所有彩色打印机的元组。select *from 打印机where 是否彩色 = 是6、找出具有 300GB 以上的硬盘容量而价格低于 2000 元的所有个人
4、计算机的型号、速度及硬盘。select 型号,速度,硬盘容量from PC 电脑where 硬盘容量300 and 价钱 3002、找出由生产厂商“苹果“生产的所有产品的型号和价格。select 型号,价钱from PC 电脑where 型号 in(select 产品型号from 产品where 制造商=苹果)unionselect 型号,价钱from 便携式电脑where 型号 in(select 产品型号from 产品where 制造商=苹果)unionselect 型号,价钱from 打印机where 型号 in(select 产品型号from 产品where 制造商=苹果)3、找出所有
5、出售“便携式电脑“(而不出售 PC)的生产厂商。select 制造商from 产品where 产品类型 LIKE 便携式电脑 and 制造商 not in(select 制造商from 产品where 产品类型 LIKE PC 电脑 or 产品类型 LIKE 打印机)4、找出在两种或两种以上 PC 上出现的硬盘容量。select 硬盘容量from PC 电脑group by 硬盘容量having count(*)=25、找出拥有相同速度和内存的 PC 的成对的型号。select distinct Q.型号,P.型号from PC 电脑 Q, PC 电脑 Pwhere Q.速度=P.速度 and
6、 Q.内存=P.内存 and Q.型号=1500)2、找出价格最高的打印机。(注意 “all“ 和 “any“ 的区别) (“=all“和“=max()“)select 型号from 打印机where 价钱 =all(select 价钱from 打印机)3、找出速度低于任何 PC 的便携式电脑。(注意“133 and 产品类型 LIKE PC 电脑 or 产品类型 LIKE 便携式电脑 and 制造商 in(select min(制造商)from vproductgroup by 制造商having COUNT(产品型号)=2)3、找出生产最高速度的计算机(PC 电脑或便携式电脑)厂商。sel
7、ect distinct 制造商from vproductwhere 速度133 and 产品类型 LIKE PC 电脑 or 产品类型 LIKE 便携式电脑 and 制造商 in(select min(制造商)from vproductgroup by 制造商having COUNT(产品型号)=2)create view 最高速度 1asselect distinct 制造商from 产品,PC 电脑where 产品.产品型号=PC 电脑.型号and 速度=(select MAX(速度)from PC 电脑)unionselect distinct 制造商from 产品,便携式电脑wher
8、e 产品.产品型号=便携式电脑.型号and 速度=(select MAX(速度)from 便携式电脑 )4、找出至少生产三种不同速度 PC 的厂商。select distinct 制造商from vproductwhere 产品类型 LIKE PC 电脑 and 制造商 in (select min(制造商)from vproductgroup by 产品类型having count(速度)=3)5.找出只卖三种不同型号的 PC 的厂商。create view 三种asselect 制造商from 产品 A where A.产品型号=any(select 型号from PC 电脑)AND A.
9、制造商 not in (select B.制造商from 产品 Bwhere 产品类型=便携式电脑 or 产品类型=打印机 )GROUP BY 制造商having count(*)=3create view vproduct3(制造商,产品型号,产品类型)asselect 制造商,产品型号,产品类型from 产品where 制造商 not in(select 制造商from 产品where 产品类型 LIKE 便携式电脑 or 产品类型 LIKE 打印机)select 制造商from vproduct3group by 制造商having count(产品型号)=2select avg(速度)
10、from PC 电脑select avg(速度)from 便携式电脑where 价钱2500select avg(价钱)from PC 电脑where 型号 in(select 产品型号from 产品 where 制造商=A)实验六1)找出 PC 的平均速度。select AVG(速度)from vproduct3 where 产品类型=PC 电脑2)找出价格超过 2500 美元的便携式电脑的平均速度。select AVG(速度)from vproduct3where 产品类型=便携式电脑 and 价钱25003)找出厂商 A 生产 PC 的平均价格。select AVG(价钱)from vp
11、roduct3where 制造商=A and 产品类型=PC 电脑4)找出厂商 D 生产的 PC 和便携式电脑的平均价格。select AVG(价钱)from vproduct3where 制造商=D(5)找出各种不同速率的 pc 的平均价格create view fiveasselect 价钱,速度from PC 电脑select 速度,AVG(价钱) as 平均价钱from fivegroup by 速度直接查询select 速度,AVG(价钱)from PC 电脑group by 速度6)找出各厂商生产的便携式电脑的显示器平均尺寸。create view vproduct4(制造商,产品
12、型号,速度,价钱,屏幕大小)asselect 制造商,产品型号,速度,价钱,屏幕大小from 产品,便携式电脑where 产品.产品型号=便携式电脑.型号select 制造商,AVG(屏幕大小)from vproduct4group by 制造商7)找出生产三种不同型号的 PC 的厂商。create view vproduct5(制造商,产品型号,产品类型,价钱)asselect 制造商,产品型号,产品类型,价钱from 产品,PC 电脑 where 产品.产品型号=PC 电脑.型号select 制造商from vproduct5group by 制造商having count(产品型号)=3
13、8)找出各厂商生产的 PC 的最高价格。select 制造商,MAX(价钱)from vproduct5group by 制造商9)找出速度超过 150MHz 的各种速度的 PC 的平均价格。select AVG(速度)from vproduct3where 产品类型=PC 电脑 and 速度15010)找出所有生产打印机的厂商生产 PC 的硬盘平均容量。create view nowasselect 制造商,产品型号from 产品where 制造商 in(select 制造商from 产品where 产品类型=打印机)and 产品类型=PC 电脑create view now1asselec
14、t 制造商,产品型号,硬盘容量from now,PC 电脑where now.产品型号=PC 电脑.型号select avg(硬盘容量)平均硬盘容量from now1实验七1)create procedure P1制造商 char(10),产品型号 char(10),产品类型 char(10),速度 int,内存 int,硬盘容量 int,价钱 money asbegin transactiondeclare error1 intinsert into 产品 values(制造商,产品型号,产品类型)set error1=error1+errorinsert into PC 电脑 values
15、(产品型号,速度,内存,硬盘容量,价钱)set error1=error1+errorif(error10)beginprint插入失败,回滚事物rollback transactionendelsebeginprint插入成功,提交事物commit transactionend3)create trigger P3on PC 电脑for deleteasdelete from 产品where 产品型号 in (select 型号 from deleted)delete from PC 电脑where 硬盘容量50create trigger P4on 产品for updateasdeclar
16、e 型号 1 char(10)declare 制造商 char(10)select 型号 1=产品型号 from insertedselect 制造商=制造商from inserted bwhere b.产品型号=型号 1if 制造商 is nullbegin print 错误!rollback transactionendupdate 产品set 制造商=Awhere 制造商=B(4)厂商 A 收购了 B,将所有由 B 制造的产品改为 A 制造declare MyCursor cursorDYNAMICfor select 制造商,产品型号,产品类型from 产品where 制造商 = Bf
17、or updateopen MyCursorfetch next from MyCursorupdate 产品set 制造商 = Awhere current of MyCursorwhile(FETCH_STATUS =0)beginfetch next from MyCursorupdate 产品set 制造商 = Awhere current of MyCursorENDdeallocate MyCursorcreate database Moviescreate table 电影明星(姓名 varchar(20) not null primary key,地址 varchar(50),
18、性别 char(2)check(性别=男 or 性别=女),生日 datetime);create table 制作人与行政总裁(姓名 varchar(20), 地址 varchar(50),身份证号 char(18) not null primary key,资产 int);create table 制片公司(公司名称 varchar(50) not null primary key,地址 varchar(50),行政总裁 char(18)not null references 制作人与行政总裁(身份证号),);create table 电影(电影名称 varchar(50) not nul
19、l,拍摄年份 datetime not null,长度 int,是否彩色 char(2)check(是否彩色 = 是 or 是否彩色 = 否),所属电影公司 varchar(50) references 制片公司(公司名称),制片人 char(18) references 制作人与行政总裁(身份证号),constraint dy primary key(电影名称,拍摄年份);create table 演员参演电影(电影名称 varchar(50) not null ,拍摄年份 datetime not null , 演员姓名 varchar(20) not null references 电影
20、明星(姓名),foreign key(电影名称,拍摄年份) references 电影(电影名称,拍摄年份),constraint yycydy primary key(电影名称,拍摄年份,演员姓名);create database Productscreate table 产品(制造商 varchar(50),产品型号 char(4) not null primary key,产品类型 varchar(20),)create table PC 电脑(型号 char(4) not null primary key references 产品(产品型号), 速度 float,内存 float,硬盘容量 float,价钱 int,);create table 便携式电脑(型号 char(4) not null primary key references 产品(产品型号), 速度 int,内存 int,硬盘 int,屏幕大小 int,价钱 int, )create table 打印机(型号 char(4) not null primary key references 产品(产品型号), 是否彩色 char(2)check(是否彩色 = 是 or 是否彩色 = 否),类型 varchar(20) ,价钱 int,)