数据库语言SQL——数据查询1

数据库语言SQL——数据查询1

ID:43699473

大小:561.00 KB

页数:39页

时间:2019-10-12

数据库语言SQL——数据查询1_第1页
数据库语言SQL——数据查询1_第2页
数据库语言SQL——数据查询1_第3页
数据库语言SQL——数据查询1_第4页
数据库语言SQL——数据查询1_第5页
资源描述:

《数据库语言SQL——数据查询1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4章数据查询4.1基本查询4.2嵌套查询4.3连接查询在“学生学籍数据库”中创建了以下三个关系模式:学生信息表(学号,姓名,性别,年龄,系别)课程信息表(课程号,课程名,学分)选修信息表(学号,课程号,成绩)SQL数据查询语句是SELECT语句语法:SELECT<目标列名>FROM<数据源表>[WHERE<查询条件>][GROUPBY<分组列>][HAVING<组选择条件>][ORDERBY<排序列>]SELECT语句说明SELECT语句中必须有:SELECT子句、FROM子句其余子句可选:WHER

2、E子句、GROUPBY子句、HAVING子句、ORDERBY子句SELECT语句说明(1)SELECT<目标列名>,称为SELECT子句。用于指定整个查询结果表中包含的列。假定已经执行完FROM、WHERE、GROUPBY、HAVING子句,SELECT子句指定的目标列组成表就为整个查询的结果表。(2)FROM<数据源表>,称为FROM子句。是整个查询语句的数据来源,通常称为数据源表。单表查询单表查询指的是在一个源表中查找所需的数据。下面首先说明单表查询SELECT语句中的各个子句3.3.2单表查询1

3、.SELECT子句(1)查询表中若干列在SELECT子句的<目标列名表>中指定整个查询结果表中出现的若干个列名,各列名之间用逗号分隔。【例3.3.1】查询全体学生的学号与姓名SELECT学号,姓名FROMStudents(2)查询表中所有的列可以用*来代替表的所有列。【例3.3.2】查询全部课程的基本信息Select*from表名Select*from课程信息表(2)选择表中所有列可以用*来代替表的所有列。【例】查询全体学生的学号、姓名、性别、年龄、所在系。SELECT*FROM学生信息表(3)查询经

4、过计算的值例:查询全体学生的姓名及其出生年份。SELECT姓名,2011-年龄FROM学生信息表输出结果:……(4)设置列的别名所谓别名,就是给另一个名字,主要是为了方便阅读。设置列别名的方法有:原列名AS列别名【例】查询全体学生的学号、姓名,并为原来的中文列名设置英文别名:Select学号assno,姓名assname,年龄assagefrom学生信息表例:查询全体学生的姓名及其出生年份。输出结果:SELECT姓名,2010-年龄as出生年份FROM学生信息表……(4)使用DISTINCT消除结果表

5、中完全重复的行【例】显示所有选课学生的学号,并去掉重复行。解:SELECTDISTINCT学号FROM选修信息表与DISTINCT相反的是ALL,ALL表示保留结果表中的重复行。默认情况下是ALL,表示保留重复行。练习1:1、查询全体课程的课程号、课程名,并为其设置别名CNO,CNAME。3、查询选修了课程的学生的学号。(去掉结果中重复的行)3.WHERE子句WHERE<查询条件><查询条件>中常用的运算符:比较运算符和逻辑运算符。比较运算符用于比较两个数值之间的大小是否相等。常用的比较运算符有:=、

6、>、<、>=、<=、!=或<>、!>、!<共9种。逻辑运算符主要有:范围比较运算符:BETWEEN…AND…,NOTBETWEEN…AND集合比较运算符:IN,NOTIN字符匹配运算符:LIKE,NOTLIKE空值比较运算符:ISNULL,ISNOTNULL条件连接运算符:AND,OR,NOT(1)基于比较运算符的查询【例】查询学生选课成绩大于80分的学生学号、课程号、成绩。解:SELECT*FROM选修信息表WHERE成绩>80练习2:1、查询“系别”不是“英语”的所有学生的基本信息。2、查询所有年

7、龄在20岁以上的学生姓名、系别及其年龄。(2)基于BETWEEN…AND的查询基本格式:列名BETWEEN下限值AND上限值等价于:列名>=下限值AND列名<=上限值【例】查询学生选课成绩在80~90分之间的学生学号、课程号、成绩。解:SELECT*FROM选修信息表WHERE成绩BETWEEN80AND90等价于:SELECT*FROM选修信息表WHERE成绩>=80AND成绩<=90(3)基于IN的查询IN用于测试一个列值是否与常量表中的任何一个值相等。IN条件表示格式为:列名IN(常量1,常量2

8、,…常量n)当列值与IN中的任一常量值相等时,则条件为TRUE,否则为FALSE。【例】查询数学系、计算机系、艺术系学生的学号、姓名。解:SELECT姓名,学号FROM学生信息表WHERE系别IN(‘数学’,‘计算机’,‘艺术')等价于:SELECT学号,姓名FROM学生信息表WHERE系别='数学'OR系别='计算机'OR系别='艺术'(4)基于LIKE的查询LIKE用于测试一个字符串是否与给定的模式匹配。所谓模式是一种特殊的字符串,其中可以包含普通字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。