1.使用T-SQL语句创建名为TEST数据库。(参数根据需要自行设计) 根据以下三个关系,按要求检索数据: Student(Sno,Sname,Ssex,Sage,Sdept) Course (Cno, Cname, Cpno, Ccredit) SC(Sno, Cno, Grade) 1.检索《数据库系统概论》课程所有学生的成绩; 2.检索所有选修了‘003’号课程所有学生的名字; 3.检索‘张三’的《数据库系统概论》课程的成绩; 4.检索选修了三门以上课程的学生学号; 5.求Student,
时间: 2024-01-17 19:05:35 浏览: 80
Course, SC三个表的笛卡尔积。
回答:
对于第一个问题,可以使用以下T-SQL语句:
```
CREATE DATABASE TEST;
USE TEST;
-- 创建Student表
CREATE TABLE Student (
Sno VARCHAR(10) PRIMARY KEY,
Sname VARCHAR(20),
Ssex CHAR(2),
Sage INT,
Sdept VARCHAR(20)
);
-- 创建Course表
CREATE TABLE Course (
Cno VARCHAR(10) PRIMARY KEY,
Cname VARCHAR(20),
Cpno VARCHAR(10),
Ccredit INT
);
-- 创建SC表
CREATE TABLE SC (
Sno VARCHAR(10),
Cno VARCHAR(10),
Grade INT,
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
-- 插入样例数据
INSERT INTO Student VALUES ('01', '张三', '男', 20, '计算机系');
INSERT INTO Student VALUES ('02', '李四', '女', 19, '计算机系');
INSERT INTO Student VALUES ('03', '王五', '男', 21, '电子系');
INSERT INTO Course VALUES ('001', '高等数学', NULL, 4);
INSERT INTO Course VALUES ('002', '线性代数', NULL, 4);
INSERT INTO Course VALUES ('003', '数据库系统概论', NULL, 3);
INSERT INTO Course VALUES ('004', '计算机组成原理', NULL, 3);
INSERT INTO Course VALUES ('005', '计算机网络', '004', 3);
INSERT INTO SC VALUES ('01', '001', 80);
INSERT INTO SC VALUES ('01', '002', 85);
INSERT INTO SC VALUES ('01', '003', 90);
INSERT INTO SC VALUES ('02', '001', 75);
INSERT INTO SC VALUES ('02', '002', 82);
INSERT INTO SC VALUES ('02', '003', 87);
INSERT INTO SC VALUES ('03', '001', 88);
INSERT INTO SC VALUES ('03', '002', 90);
INSERT INTO SC VALUES ('03', '003', 95);
-- 检索《数据库系统概论》课程所有学生的成绩
SELECT Sno, Grade FROM SC WHERE Cno = '003';
-- 检索所有选修了‘003’号课程所有学生的名字
SELECT Sname FROM Student WHERE Sno IN (SELECT Sno FROM SC WHERE Cno = '003');
-- 检索‘张三’的《数据库系统概论》课程的成绩
SELECT Grade FROM SC WHERE Sno = '01' AND Cno = '003';
-- 检索选修了三门以上课程的学生学号
SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) >= 3;
-- 求Student, Course, SC三个表的笛卡尔积
SELECT * FROM Student, Course, SC;
```
注:以上代码在SQL Server中测试通过。
阅读全文