SQL复习:创建与查询学生、课程及选课表

需积分: 10 16 下载量 29 浏览量 更新于2024-11-26 收藏 46KB DOC 举报
"该资源是一份关于SQL语句的复习资料,主要涵盖了创建数据库表、查询数据等基础操作。提供了三个基本表的结构——学生表(Student)、课程表(Course)和学生选课表(SC),并展示了如何使用SQL语句来创建这些表。此外,还给出了几个SQL查询示例,用于查询学生选课表的全部数据以及特定条件下的学生信息。" 在SQL语句中,创建表是数据库操作的基础。以下是对题目中创建的三个表的详细说明: 1. 学生表(Student): - `Sno`:学号,作为主键,数据类型为长度为7的字符串。 - `Sname`:姓名,非空,数据类型为长度为1的字符串。 - `Ssex`:性别,取值只能为'男'或'女',数据类型为长度为2的字符串,有check约束。 - `Sage`:年龄,取值范围15到45,数据类型为整数,有check约束。 - `Sdept`:所在院系,默认值为'计算机系',数据类型为长度为2的字符串,有default约束。 创建学生表的SQL语句如下: ```sql CREATE TABLE Student ( Sno CHAR(7) PRIMARY KEY, Sname VARCHAR(1) NOT NULL, Ssex CHAR(2) CHECK (Ssex = '男' OR Ssex = '女'), Sage INT CHECK (Sage >= 15 AND Sage <= 45), Sdept VARCHAR(2) DEFAULT '计算机系' ); ``` 2. 课程表(Course): - `Cno`:课程号,作为主键,数据类型为长度为1的字符串。 - `Cname`:课程名,非空,数据类型为长度为2的字符串。 - `Ccredit`:学分,取值大于0,数据类型为整数,有check约束。 - `Semester`:学期,取值大于0,数据类型为整数,有check约束。 - `Period`:学时,取值大于0,数据类型为整数,有check约束。 创建课程表的SQL语句如下: ```sql CREATE TABLE Course ( Cno CHAR(1) PRIMARY KEY, Cname VARCHAR(2) NOT NULL, Ccredit INT CHECK (Ccredit > 0), Semester INT CHECK (Semester > 0), Period INT CHECK (Period > 0) ); ``` 3. 学生选课表(SC): - `Sno`:学号,作为外键,引用Student表的主键,数据类型为长度为7的字符串。 - `Cno`:课程号,作为外键,引用Course表的主键,数据类型为长度为10的字符串。 - `Grade`:成绩,取值范围0到100,数据类型为整数,有check约束。 - 表的主键由`Sno`和`Cno`组成,同时这两个字段都是外键,分别引用了Student和Course表的主键。 创建学生选课表的SQL语句如下: ```sql CREATE TABLE SC ( Sno CHAR(7), Cno CHAR(10), Grade INT CHECK (Grade >= 0 AND Grade <= 100), PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno) ); ``` 题目还给出了两个SQL查询示例: 1. 查询学生选课表中的所有数据: ```sql SELECT * FROM SC; ``` 2. 查询计算机系学生的姓名和年龄: ```sql SELECT Sname, Sage FROM Student WHERE Sdept = '计算机系'; ``` 以上就是对SQL语句复习资料中涉及的主要知识点的详细解释,包括表结构设计和基础查询操作。这些知识是学习SQL的基础,对于数据库管理和数据分析至关重要。