SQL语句创建学生、课程及选课表

需积分: 9 2 下载量 80 浏览量 更新于2024-09-11 收藏 68KB DOC 举报
本资源提供了一系列SQL语句的实例,用于创建三个基本的数据库表,分别是学生表(Student)、课程表(Course)和学生选课表(SC)。这些表具有不同的列,每列都有相应的数据类型和约束条件,用于存储学校管理系统中的相关数据。 在学生表(Student)中,包含了以下字段: 1. Sno(学号):作为主键,是长度为7的字符串类型,用于唯一标识每个学生。 2. Sname(姓名):非空的字符串类型,长度为10,用于记录学生的姓名。 3. Ssex(性别):长度为2的字符串类型,使用check约束确保只能输入'男'或'女'。 4. Sage(年龄):整数类型,使用check约束限制年龄在15到45之间。 5. Sdept(所在院系):默认值为'计算机系'的字符串类型,长度为20,可记录学生的院系信息。 创建学生表的SQL语句如下: ```sql CREATE TABLE Student ( Sno varchar(7) PRIMARY KEY, Sname varchar(10) NOT NULL, Ssex char(2) CHECK (Ssex = '男' OR Ssex = '女'), Sage int CHECK (Sage BETWEEN 15 AND 45), Sdept varchar(20) DEFAULT '计算机系' ); ``` 课程表(Course)包含以下字段: 1. Cno(课程号):作为主键,是长度为10的字符串类型,用于唯一标识每门课程。 2. Cname(课程名):非空的字符串类型,长度为20,记录课程名称。 3. Ccredit(学分):整数类型,使用check约束确保学分大于0。 4. Semester(学期):整数类型,check约束确保学期大于0。 5. Period(学时):整数类型,check约束确保学时大于0。 创建课程表的SQL语句如下: ```sql CREATE TABLE Course ( Cno varchar(10) PRIMARY KEY, Cname varchar(20) NOT NULL, Ccredit int CHECK (Ccredit > 0), Semester int CHECK (Semester > 0), Period int CHECK (Period > 0) ); ``` 学生选课表(SC)用于连接学生表和课程表,包含以下字段: 1. Sno(学号):作为外键,引用Student表的Sno,用于记录参加课程的学生学号。 2. Cno(课程号):作为外键,引用Course表的Cno,表示学生选择的课程编号。 3. Grade(成绩):整数类型,使用check约束确保成绩在0到100之间。 创建学生选课表的SQL语句如下: ```sql CREATE TABLE SC ( Sno varchar(7) FOREIGN KEY REFERENCES Student(Sno), Cno varchar(10) FOREIGN KEY REFERENCES Course(Cno), Grade int CHECK (Grade BETWEEN 0 AND 100), PRIMARY KEY (Sno, Cno) ); ``` 通过这些SQL语句,可以建立一个简单但功能完整的学校管理数据库,支持对学生的个人信息、课程信息以及选课记录进行管理。这样的设计使得数据的存储有序且易于查询,符合关系型数据库的基本原则。在实际应用中,可以根据需要添加更多的字段和约束,以满足更复杂的业务需求。