- 2
- 0
- 约6.02千字
- 约 24页
- 2017-04-21 发布于四川
- 举报
1-5联系数据库基准语言SQL
1.5 关系数据库标准语言SQL;学习目标;SQL(Structured Query Language)简介:结构化查询语言,是一个通用的、功能极强的关系数据库标准语言。
1974年由Boyce和Chamberlin提出,并在IBM公司研制的RDBMS原型System R上实现。
1986年10月美国国家标准局ANSI批准为美国标准(SQL-86)。
1987年国际标准化组织ISO通过了这一标准。
随着数据库技术的发展而不断发展,最新标准SQL2003。
;;查 询;示例学生-课程数据库 ;单表查询:仅涉及一个表的查询。
选择表中的若干列:对应于关系代数的投影运算。
查询指定列
[例1]查询全体学生的学号与姓名。
SELECT Sno,Sname FROM Student;?
[例2]查询全体学生的姓名、学号、系别。
SELECT Sname,Sno,Sdept FROM Student;
查询全部列
[例3]查询全体学生的详细记录。
SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student;
或SELECT * FROM Student;;查询经过计算的值
[例4] 查询全体学生的???名及其出生年份。
SELECT Sname,2010-Sage FROM Student;?
[例5]查询全体学生的姓名、出生年份和系别,要求用小写字母表示所有系名。
SELECT Sname,2010-Sage ,LOWER(Sdept) FROM Student;
选择表中的若干元组
消除取值重复的行:两个原不相同的元组,投影到指定的某些列后,可能变成相同的行了,可以用DISTINCT取消它们。
[例6]查询选修了课程的学生学号。
SELECT Sno FROM SC; 或 SELECT ALL Sno FROM SC;
SELECT DISTINCT Sno FROM SC;;查询满足条件的元组:使用WHERE子句,其中的条件有:
比较
[例7]查询计算机科学系全体学生的名单。
SELECT Sname FROM Student WHERE Sdept=‘CS’;; [例8]查询所有年龄在20岁以下的学生姓名及其年龄。
SELECT Sname,Sage FROM Student WHERE Sage20;
[例9]查询考试成绩有不及格的学生学号。
SELECT DISTINCT Sno FROM SC WHERE Grade60;
确定范围
[例10]查询年龄在20~23(含边界)的学生姓名、系别和年龄。
SELECT Sname,Sdept,Sage FROM Student
WHERE Sage BETWEEN 20 AND 23;
[例11]查询年龄不在20~23的学生姓名、系别和年龄。
SELECT Sname,Sdept,Sage FROM Student
WHERE Sage NOT BETWEEN 20 AND 23;
确定集合:使用谓词IN或NOT IN查找属性值属于指定集合的元组。; [例12]查询计算机科学系或数学系的学生姓名和性别。
SELECT Sname,Ssex FROM Student WHERE Sdept IN (‘IS’,’MA’);
[例13]查询既非计科系、也非数学系的学生姓名和性别。
SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN (‘IS’,’MA’);
字符匹配:谓词[NOT] LIKE ‘匹配串’ [ESCAPE ‘换码字符’]。其含义是查找指定的属性列值与匹配串相匹配的元组。
[例14]查询学号为200215121的学生详细情况。
SELECT * FROM Student WHERE Sno LIKE ‘200215121’;
等价于:SELECT * FROM Student WHERE Sno=‘200215121’;
[例15]查询所有姓刘学生的姓名、学号和性别。
SELECT Sname,Sno,Ssex FROM Student
WHERE Sname LIKE ‘刘%’;; [例16]查询姓”欧阳”且全名为三个汉字的学生的姓名。
SELECT Sname FROM Student WHERE Sname LIKE ‘欧阳 ‘;
[例17]查询名字中第2个字为“阳”字的学生姓名和学号。
原创力文档

文档评论(0)