
SQL可以分为数据定义、数据查询、数据更新、数据控制四大部分。人们有时把数据更新称为数据操纵,或把数据查询与数据更新合称为数据操纵。本章系统而详尽地讲解了前面三部分的内容。
数据控制中的数据安全性和完整性控制将放在第5章和第6章中讲解。嵌入式SQL、过程性SQL与存储过程将放在第8章中讲解。
本章在讲解SQL的同时,进一步讲解了关系数据库系统的基本概念,使关系数据库的许多概念更加具体、更加丰富。
SQL是关系数据库语言的工业标准。目前,大部分数据库管理系统产品都能支持SQL 92,但是许多数据库系统只支持SQL 99、SQL 2008和SQL 2011的部分特征,至今尚没有一个数据库系统能够完全支持SQL 99以上的标准。
SQL的数据查询功能是最丰富,也是最复杂的,读者应加强实验练习。

1、试述SQL的特点。
2、说明在drop table时,restrict和cascade的区别。
3、有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:
(1)
(2)
(3)
(4)
(5)
(6)
4、用SQL语句建立第二章习题6中的四个表;针对建立的4个表用SQL语言完成第二章习题6中的查询。
设有一个SPJ数据库,包括S、P、J、SPJ4个关系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供应商表S由供应商代码(SNO)、供应商姓名(SANME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
今有若干数据如下:
S表 | SPJ表 | |||||||||
SNO | SNAME | STATUS | CITY | SNO | PNO | JNO | QTY | |||
S1 | 精益 | 20 | 天津 | S1 | P1 | J1 | 200 | |||
S2 | 盛锡 | 10 | 北京 | S1 | P1 | J3 | 100 | |||
S3 | 东方红 | 30 | 北京 | S1 | P1 | J4 | 700 | |||
S4 | 丰泰盛 | 20 | 天津 | S1 | P2 | J2 | 100 | |||
S5 | 为民 | 30 | 上海 | S2 | P3 | J1 | 400 | |||
P表 | S2 | P3 | J2 | 200 | ||||||
PNO | PNAME | COLOR | WEIGHT | S2 | P3 | J4 | 500 | |||
P1 | 螺母 | 红 | 12 | S2 | P3 | J5 | 400 | |||
P2 | 螺栓 | 绿 | 17 | S2 | P5 | J1 | 400 | |||
P3 | 螺丝刀 | 蓝 | 14 | S2 | P5 | J2 | 100 | |||
P4 | 螺丝刀 | 红 | 14 | S3 | P1 | J1 | 200 | |||
P5 | 凸轮 | 蓝 | 40 | S3 | P3 | J1 | 200 | |||
P6 | 齿轮 | 红 | 30 | S4 | P5 | J1 | 100 | |||
J表 | S4 | P6 | J3 | 300 | ||||||
JNO | JNAME | CITY | S4 | P6 | J4 | 200 | ||||
J1 | 三建 | 北京 | S5 | P2 | J4 | 100 | ||||
J2 | 一汽 | 长春 | S5 | P3 | J1 | 200 | ||||
J3 | 弹簧厂 | 天津 | S5 | P6 | J2 | 200 | ||||
J4 | 造船厂 | 天津 | S5 | P6 | J4 | 50 | ||||
J5 | 机车厂 | 唐山 | ||||||||
J6 | 无线电厂 | 常州 | ||||||||
J7 | 半导体厂 | 南京 | ||||||||
(1)建表
(2)使用SQL语句完成下列查询
①求供应工程J1零件的供应商号码SNO。
②求供应工程J1零件P1的供应商号码SNO。
③求供应工程J1零件为红色的供应商号码SNO。
④求没有使用天津供应商生产的红色零件的工程号JNO。
⑤求至少用了供应商S1所供应的全部零件的工程号JNO。
5、针对习题4中的4个表试用SQL完成以下各项操作:
(1)找出所有供应商的姓名和所在城市;
(2)找出所有零件的名称、颜色、重量;
(3)找出使用供应商S1所供应零件的工程号码;
(4)找出工程项目J2使用的各种零件的名称及其数量;
(5)找出上海厂商供应的所有零件号码;
(6)找出使用上海产的零件的工程名称;
(7)找出没有使用天津产的零件的工程号码;
(8)把全部红色零件的颜色改成蓝色;
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改;
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;
(11)请将(S2,J6,P4,200)插入供应情况关系。
6、什么是基本表?什么是视图?两者的区别和联系是什么?
7、试述视图的优点。
8、哪类视图是可以更新的,哪类视图是不可更新的?各举一例说明。
9、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:
①找出三建工程项目使用的各种零件代码及其数量。
②找出供应商S1供应三建工程的情况。





