SQL复习:创建与查询学生、课程及选课表
需积分: 10 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的基础,对于数据库管理和数据分析至关重要。
2012-12-24 上传
2014-11-14 上传
2023-06-02 上传
2021-12-30 上传
2012-06-07 上传
2019-04-29 上传
2021-10-02 上传
2021-09-26 上传
rvian1989
- 粉丝: 0
- 资源: 5
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录