习题五解答
1.答:
SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体.它除了具有一般关系数据库语言的特点外, 还具有3个特点:①SQL具有自含式和嵌入式两种形式:②SQL具有语言简洁、易学易用的特点③SQL支持三级模式结构。
2.答:
1)CREAT TABLE职工(职工号CHAR(l0)NOT NULL UNIQUE,
姓名CHAR(8)NOT NULL,
年龄SMALLINT,
性别CHAR(2),
CONSTRAINT C1 CHECK(性别 IN(‘男’,‘女’)));
CREAT TABLE社会团体(编号CHAR(8)NOT NULL UNIQUE,
名称CHAR(12)NOT NULL,
负责人 CHAR(8),
活动地点 VARCHAR(50),
CONSTRAINT C2 FOREIGN KEY(负责人)REFERENCES职工(职工号));
CREAT TABLE参加(职工号CHAR(8),
编号CHAR(8),
参加日期 DATE
CONSTRAINT C3 PRIMARY KEY(职工号,编号),
CONSTRAIN C3 FOREIGN KEY (职工号)REFERENCES职工(职工号));
2)CREAT VIEW社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)
AS SELECT编号,名称,负责人,姓名,性别
FROM社会团体,职工
WHERE社会团体,负责人=职工.职工号;
CREAT VIEW参加人情况(职工号,姓名,社团编号,社团名称,参加日期)
AS SELECT参加.职工号,姓名,社会团体编号,名称,参加日期
FROM职工,社会团体,参加
WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号;
3)SELECT职工号,姓名
FROM 职工,社会团体,参加
WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号
AND社会团体.名称IN(‘唱歌队’,‘篮球队’)
4)SELECT*
FROM 职工
WHERE NOT EXISTS(SELECT*
FROM参加
WHERE参加.职工号=职工.职工号);
5)SELECT*
FROM职工
WHERE NOT EXISTS(SELECT*
FROM参加
WHERE NOT EXISTS
(SELECT*
FROM社会团体
WHERE参加.职工号=职工.职工号AND
参加.编号=社会团体.编号));
6)SELECT职工号
FROM职工
WHERE NOT EXISTS(SELECT*
FROM参加 参加1
WHERE参加1.职工号=‘1001’AND NOT EXISTS
(SELECT*
FROM参加 参加 2
WHERE 参加2.编号=参加1.编号AND
参加2.职工号一职工.职工号));
7)SELECT TCOUNT(职工号)
FROM 参加
GROUP BY编号;
8)SELECT社会团体.名称,COUNT(参加.职工号)
FROM社会团体 参加
WHERE 所在城市=‘天津’));
UPDATE 零件
SET颜色=‘蓝色’
WHERE颜色=‘红色’;
9)UPDATE 供应零件
SET供应商代码=‘S3’
WHERE供应商代码=‘S5’ AND工程代码=‘J4’AND零件代码=‘P6’;