SQL语句创建学生、课程及选课表
需积分: 9 53 浏览量
更新于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语句,可以建立一个简单但功能完整的学校管理数据库,支持对学生的个人信息、课程信息以及选课记录进行管理。这样的设计使得数据的存储有序且易于查询,符合关系型数据库的基本原则。在实际应用中,可以根据需要添加更多的字段和约束,以满足更复杂的业务需求。
2011-08-26 上传
2021-10-10 上传
2024-11-06 上传
2024-11-06 上传
2024-11-06 上传
2024-11-06 上传
2024-11-06 上传
fcci001
- 粉丝: 0
- 资源: 5
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫