一、学生-课程数据库数据示例
(一)学生表
学号(Sno) |
姓名(Sname) |
性别(Ssex) |
年龄(Sage) |
所在系(Sdept) |
200215121 |
李勇 |
男 |
20 |
CS |
200215122 |
刘晨 |
女 |
19 |
CS |
200215123 |
王敏 |
女 |
18 |
MA |
200215125 |
张立 |
男 |
19 |
IS |
(二)课程表
课程号(Cno) |
课程名(Cname) |
先行课(Cpno) |
学分(Ccredit) |
1 |
数据库 |
5 |
4 |
2 |
数学 |
|
2 |
3 |
信息系统 |
1 |
4 |
4 |
操作系统 |
6 |
3 |
5 |
数据结构 |
7 |
4 |
6 |
数据处理 |
|
2 |
7 |
PASCAL语言 |
6 |
4 |
(三)选课表
学号(Sno) |
课程号(Cno) |
成绩(Grade) |
200215121 |
1 |
92 |
200215121 |
2 |
85 |
200215121 |
3 |
88 |
200215122 |
2 |
90 |
200215122 |
3 |
80 |
二、查询
(一)单表查询
1、选择表中的若干列(对列操作)
(1)查询指定列
(2)查询全部列
(3)查询经过计算的值
【例1】查询全体学生的姓名、出生年份和所在的院系,要求用小写字符表示所有系名。
SQL语句:SELECT Sname,'Year of Birth',2004-Sage,LOWER(Sdept) FROM student;
查询结果:
2、选择表中的若干元组(对行操作)
(1)消除取值重复的行
两个本来并不完全相同的元组,投影到指定的某些列以后,可能变成相同的行了,可以使用DISTINCT取消重复的元组。格式如下:select distinct Sno form SC;
【例2】查询选修了课程的学生学号,要求不重复出现。
SQL语句:SELECT DISTINCT Sno FROM sc;
查询结果: