数据查询是关系运算理论在SQL中的主要体现。在数据查询语句中既有关系代数特点,又有关系演算的特点。在学习时,我们要把SELECT语句和关系代数表达式联系起来考虑问题。此文就数据库试题做以总结。
SELECT句型##
在关系代数中最常用的式子是下列表达式:
针对上述表达式,SQL为此设计了SELECT—FROM—WHERE句型:
SELECT A1,A2,...,An /*查询*/
FROM R1,R2,...,Rn /*从哪里查询*/
WHERE F /*查询条件*/
例:求男生学生的总人数和平均年龄
SELECT COUNT(*), AVG(AGE)
FROM S
WHERE SEX='M';
- 连接查询
SELECT S.SNO,SNAME
FROM S,SC
WHERE S.SNO=SC.SNO AND CNO='C2';
- 嵌套查询
SELECT SNO,SNAME
FROM S
WHERE SNO IN (SELECT SNO
FROM SC
WHERE CNO='C2');
SELECT语句完整句法
SELECT TNO, C.CNO, COUNT(SNO)
FROM C, SC
WHERE C.CNO=SC,CNO
GROUP BY TNO, C.CNO /*分组*/
HAVING COUNT(*)>50 /*组条件子句,count(*)其中*代表表所有列的简写*/
ORDER BY 3,TNO, C.CNO DESC ; /*排序ASC升序,DESC降序*/
数据插入
INSERT INTO S(SNAME,AGE,SEX)
VALUES('LIU','21'.'W');
连续插入三个元组
INSERT INTO SC
VALUES ('S1','C1',85),
('S2','C2',95),
('S3','C4',84);
数据修改
把C5课程的课程名改为SHUXUE
UPDATE C
SET CNAME='SHUXUE'
WHERE CNO='C5';
当C4课的成绩低于该门课程平均成绩时,提高5%
UPDATE SC
SET SCORE=SCORE*1.05
WHERE CNO='C4'
AND SCORE<(SELECT AVG (SCORE)
FORM SC
WHERE CNO='C4');
视图的创建
创建视图V-SC,视图包括学号,姓名,课程号,课程名,分数
GREATE VIEW V-SC (SNO,SNAME,CNO,CNAME,SCORE)
AS SELECT S.SNO,SNAME,CNO,CNAME,SCORE
FROM S,C,SC
WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO;
数据库第四道设计题,差不多就概括为这些,20分加油!