目录
2、查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名
5、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
10、供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录
一、课本例题查询
已创建表:
Student表:
Course表:
SC表:
1、查询全体学生的姓名及其出生年份
SELECT Sname,2021-Sage BIRTHDAY
FROM Student;
2、查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名
SELECT Sname NAME, 2021-Sage BIRTHDAY,LOWER(Sdept)
FROM Student;
3、查询选修了课程的学生学号
SELECT DISTINCT Sno
FROM SC;
4、查询不是数学系、计算机系学生的姓名和性别
SELECT Sname,Ssex
FROM Student
WHERE Sdept NOT IN('MA','CS');
5、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
SELECT Sno,Grade
FROM SC
WHERE Cno='3'
ORDER BY Grade DESC;
6、查询每个学生及其选修的情况
SELECT Student.*,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno
7、查询每一门课的间接先修课(即先修课的先修课)
SELECT FIRST.Cno,SECOND.Cpno
FROM Course FIRST,Course SECOND
WHERE FIRST.Cpno=SECOND.Cno;
8、查询与刘晨在同一个系学习的学生
SELECT Sno,Sname,Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept
FROM Student
WHERE Sname='刘晨');
9、查询其他系中比信息系某些学生年龄小的学生姓名和年龄
SELECT Sname,Sage
FROM Student
WHERE Sage<ANY(SELECT Sage
FROM Student
WHERE Sdept='IS');
二、P71页习题5建表查询
利用SQL语言在SPJDATABASE数据库中建立S表、P表、J表和SPJ表:
/* 创建S表 */
CREATE TABLE S
(SNO CHAR(10) PRIMARY KEY,
SNAME CHAR(10),
STATUS SMALLINT,
CITY CHAR(10)
);
/* 创建P表 */
CREATE TABLE P
(PNO CHAR(10) PRIMARY KEY,
PNAME CHAR(10),
COLOR CHAR(10),
WEIGHT SMALLINT
);
/* 创建J表 */
CREATE TABLE J
(JNO CHAR(10) PRIMARY KEY,
JNAME CHAR(10),
CITY CHAR(10)
);
/* 创建SPJ表 */
CREATE TABLE SPJ
(SNO CHAR(10),
PNO CHAR(10),
JNO CHAR(10),
QTY INT,
PRIMARY KEY(SNO,PNO,JNO),
FOREIGN KEY(SNO)REFERENCES S(SNO),
F