(本科)第7章 SQL语言基础ppt课件.pptx
《(本科)第7章 SQL语言基础ppt课件.pptx》由会员分享,可在线阅读,更多相关《(本科)第7章 SQL语言基础ppt课件.pptx(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程主讲人:第7章 SQL语言基础第第7章章 SQL语言基础语言基础 本章内容本章内容: 7.1 SQL概述概述 7.2 SQL查询命令查询命令 7.3 数据操作中使用数据操作中使用SELECTE子句子句 SQL语言是国际标准化的数据库查询语言,语言是国际标准化的数据库查询语言,它不同于关系代数,而是一种直接面向数据它不同于关系代数,而是一种直接面向数据库操作的语言,掌握了库操作的语言,掌握了SQL语言可以实现各语言可以实现各类数据库的定义、查询、操纵和控制,而将类数据库的定义、查询、操纵和控制,而将SQL语言嵌入到其他语言环境中,就可以形语言嵌入到其他语言环境中,就可以形成了基于数据库的应用
2、软件系统,成了基于数据库的应用软件系统,SQL语言语言目前已成为关系数据库领域中的一种主流语目前已成为关系数据库领域中的一种主流语言。言。 SQL语言又称结构化查询语言语言又称结构化查询语言(Structured Query Language),是用于和关系数据库管理系统进行通信,是用于和关系数据库管理系统进行通信的标准计算机语言。最早的是的标准计算机语言。最早的是IBM的圣约瑟研究实验的圣约瑟研究实验室为其关系数据库管理系统室为其关系数据库管理系统SYSTEM R开发的一种查开发的一种查询语言,它的前身是询语言,它的前身是SQUARE语言。在语言。在1986年被美年被美国国家标准化组织国国家
3、标准化组织ANSI批准为关系数据库语言的国批准为关系数据库语言的国家标准,家标准,1987年又被国际标准化组织年又被国际标准化组织ISO批准为国际批准为国际标准,此标准也于标准,此标准也于1993年被我国批准为中国国家标准。年被我国批准为中国国家标准。 SQL语言结构简洁,功能强大,简单易学,所以自语言结构简洁,功能强大,简单易学,所以自IBM公司推出以来,得到了广泛的应用。公司推出以来,得到了广泛的应用。Oracle公司公司于于1979年推出了年推出了SQL语言的第一个商用版本。到目前语言的第一个商用版本。到目前为止,无论是为止,无论是Oracle,Sybase,Informix,SQL s
4、erver这些大型的数据库管理系统,还是这些大型的数据库管理系统,还是Visual Foxporo,PowerBuilder这些微机上常用的数据库这些微机上常用的数据库开发系统,都支持开发系统,都支持SQL语言作为查询语言。语言作为查询语言。7.1 SQL7.1 SQL概述概述 SQL语言的主要特点是它是一个非过程语言,程序员只需要语言的主要特点是它是一个非过程语言,程序员只需要指明数据库管理系统需要完成的任务,然后让系统去自行决指明数据库管理系统需要完成的任务,然后让系统去自行决定如何获得想要得到的结果,而不必详细设计计算机为获得定如何获得想要得到的结果,而不必详细设计计算机为获得结果需要执
5、行的所有运算。结果需要执行的所有运算。 SQL语言的语句或命令也称为数据子语言,通常分为语言的语句或命令也称为数据子语言,通常分为4个部个部分:分: 数据查询语言数据查询语言DQL(Data Query Language):查询数据的:查询数据的SELECT命令。命令。 数据操纵语言数据操纵语言DML(Data Manipulation Language):完成:完成数据操作的数据操作的INSERT,UPDATE,DELETE命令。命令。 数据定义语言数据定义语言DDL(Data Definition Language):完成数据:完成数据对象的创建、修改和删除的对象的创建、修改和删除的CRE
6、ATE,ALTER,DROP命令。命令。 数据控制语言数据控制语言DCL(Data Control Language):控制对数据:控制对数据库的访问,服务器的关闭、启动的库的访问,服务器的关闭、启动的GRANT和和REVOKE等命等命令。令。 查询是对数据库内的数据进行检索、创建、修改或删除的特查询是对数据库内的数据进行检索、创建、修改或删除的特定请求定请求,是数据库操作中最常用的操作。对于已经定义的表和是数据库操作中最常用的操作。对于已经定义的表和视图,用户可以通过查询操作得到所需要的信息。视图,用户可以通过查询操作得到所需要的信息。SQL语言语言的核心就是查询,它提供了功能强大的的核心就
7、是查询,它提供了功能强大的SELECT语句来完成语句来完成各种数据的查询。各种数据的查询。SQL Server 2014接受用接受用SQL语言编写的语言编写的查询。使用查询可以按照不同的方式查看、更改和分析数据。查询。使用查询可以按照不同的方式查看、更改和分析数据。 7.2.1 SELECT语句语句 1.SELECT语句语法格式如下:语句语法格式如下: SELECT ALL | DISTINCT , FROM , WHERE GROUP BY 列名列名,列名列名 HAVING ORDER BY 列名列名ASC | DESC,列名,列名ASC | DESC ; 2.SELECT命令的功能命令的功
8、能 SELECT语句是从一个或多个表中查询所需信息,结果语句是从一个或多个表中查询所需信息,结果仍是一个关系子集。仍是一个关系子集。7.2 SQL7.2 SQL查询命令查询命令 3.SELECT命令的说明命令的说明 (1) ALL | DISTINCT:缺省值为:缺省值为ALL。ALL表示查询结果表示查询结果不去掉重复行,不去掉重复行,DISTINCT表示去掉重复行。表示去掉重复行。 (2) , :通常取列名,所有列可用:通常取列名,所有列可用“*”表示。表示。 (3) FROM子句:指出在哪些表子句:指出在哪些表(或视图或视图)中查询。中查询。 (4) WHERE子句:指出查找的条件。可使用
9、以下运算符来限子句:指出查找的条件。可使用以下运算符来限定查询结果:定查询结果: (5) GROUP BY子句:指出查询分组依据,利用它进行分组子句:指出查询分组依据,利用它进行分组汇总。汇总。 (6) HAVING子句:配合子句:配合GROUP BY子句使用,用于限定分子句使用,用于限定分组必须满足的条件。组必须满足的条件。 (7) ORDER BY子句:对查询结果排序输出。子句:对查询结果排序输出。 7.2.2 投影查询投影查询通过通过SELECT语句的语句的项组成结果表的列。项组成结果表的列。选择列的查询格式如下:选择列的查询格式如下:SELECT ALL | DISTINCT TOP
10、n PERCENT WITH TIES * | colume_name | expression | IDENTITYCOL | ROWGUIDCOL AS column_alias | column_alias = expression , n 1. 选择一个表中指定的列选择一个表中指定的列使用使用SELECT语句选择一个表中的某些列,各列名之间要以逗号语句选择一个表中的某些列,各列名之间要以逗号分隔。分隔。【例【例7.1】查询】查询 “teaching”数据库数据库“student”中学生的中学生的ssname(姓名)、(姓名)、ssex(性别)和(性别)和specialty(专业)。(专
11、业)。在查询编辑器中输入以下代码,并执行,执行结果如图所示。在查询编辑器中输入以下代码,并执行,执行结果如图所示。USE teachingSELECT sname, ssex, specialtyFROM student 【例【例7.2】查询】查询 “teaching”数据库数据库“course”中所中所有记录。有记录。 在查询编辑器中输入以下代码,并执行,执行结果如在查询编辑器中输入以下代码,并执行,执行结果如图所示。图所示。 USE teaching SELECT cno,cname, classhour, credit FROM course 当查询结果包含某表中所有的列时,可以用当查询
12、结果包含某表中所有的列时,可以用“*”表表示表中所有的列,按用户创建表格时声明列的顺序来示表中所有的列,按用户创建表格时声明列的顺序来显示所有的列。显示所有的列。 也可以使用以下语句实现本题查询,执行结果请读者也可以使用以下语句实现本题查询,执行结果请读者自行验证与前一种方法是否一致。自行验证与前一种方法是否一致。 SELECT * FROM course 【例【例7.3】查询】查询 “teaching”数据库数据库“student”的专业名称,滤掉重复行。的专业名称,滤掉重复行。 通过观察通过观察student表不难发现,结果中有重复值。表不难发现,结果中有重复值。消除查询结果中的重复行,在
13、消除查询结果中的重复行,在SELECT子句中选子句中选用用DISTINCT短语,因此本题使用以下语句实现短语,因此本题使用以下语句实现查询。查询。 在查询编辑器中输入以下代码,并执行,执行结在查询编辑器中输入以下代码,并执行,执行结果如图所示。果如图所示。 USE teaching SELECT DISTINCT specialty FROM student SELECT语句还允许查询满足条件的前若干语句还允许查询满足条件的前若干行,此时需要使用行,此时需要使用TOP短语。短语。 【例【例7.4】查询】查询“teaching”数据库数据库“course”前三行信息。前三行信息。 在查询编辑器中
14、输入以下代码,并执行,执在查询编辑器中输入以下代码,并执行,执行结果如图所示。行结果如图所示。 USE teaching SELECT top 3 * FROM course 【例【例7.5】查询】查询“teaching”数据库数据库“course”前前50%。 在查询编辑器中输入以下代码,并执行,执在查询编辑器中输入以下代码,并执行,执行结果如图所示。行结果如图所示。 USE teaching SELECT top 50 percent * FROM course 2. 改变查询结果中的显示标题改变查询结果中的显示标题 T-SQL提供了在提供了在SELECT语句中操作列名的语句中操作列名的方
15、法。用户可以根据实际需要对查询数据的方法。用户可以根据实际需要对查询数据的列标题进行改变,或者为没有标题的列加上列标题进行改变,或者为没有标题的列加上临时的标题。临时的标题。 常用的方式:常用的方式: 用用AS关键字来连接列表达式和指定的列名,关键字来连接列表达式和指定的列名,关键字关键字AS前后都必须有空格。前后都必须有空格。 用用“=”来连接列表达式。来连接列表达式。 在列表达式后面给出列名。在列表达式后面给出列名。 【例【例7.6】查询】查询“student”中同学的中同学的sno、sname,结果,结果中各列的标题分别指定为学号、姓名。中各列的标题分别指定为学号、姓名。 在查询编辑器中
16、输入以下代码,并执行,第一种方法执行在查询编辑器中输入以下代码,并执行,第一种方法执行结果如图所示,其他方法执行结果请读者自行检验。结果如图所示,其他方法执行结果请读者自行检验。 USE teaching SELECT sno AS 学号学号, sname AS 姓名姓名 FROM student 或:或:SELECT 学号学号= sno,姓名姓名=sname FROM student 或:或:SELECT sno 学号学号, sname 姓名姓名 FROM student 注意:查询语句中改变的只是本次查询的列的显示标题,注意:查询语句中改变的只是本次查询的列的显示标题,对原表中列标题没有任
17、何影响。对原表中列标题没有任何影响。 3. 计算列值计算列值 在进行数据查询时,经常需要对查询到的数据进行再在进行数据查询时,经常需要对查询到的数据进行再次计算处理。次计算处理。 SQL Server 2014允许直接在允许直接在SELECT语句中使用计语句中使用计算列。算列。“计算列计算列”并不存在于表格所存储的数据中,并不存在于表格所存储的数据中,它是通过对某些列的数据进行演算得来的结果。它是通过对某些列的数据进行演算得来的结果。 【例【例7.7】查询】查询“student”,查询,查询sno,sname和学和学生的出生年份。生的出生年份。 在查询编辑器中输入以下代码,并执行,执行结果如在
18、查询编辑器中输入以下代码,并执行,执行结果如图所示。图所示。 USE teaching SELECT sno,sname,2019-sage AS 出生年份出生年份 FROM student 7.2.3 选择查询选择查询 投影查询时从列的角度进行的查询,除投影查询时从列的角度进行的查询,除DISTINCT、TOP短语外一般对行不进行任何过滤。但是,一般的查询都并短语外一般对行不进行任何过滤。但是,一般的查询都并非针对表中所有行的查询,只是从整个表中找出满足指定非针对表中所有行的查询,只是从整个表中找出满足指定条件的内容,这就需要用到条件的内容,这就需要用到WHERE子句进行选择查询。子句进行选
19、择查询。 选择查询的基本语法如下:选择查询的基本语法如下: SELECTSELECT_LIST FROM TABLE_LIST WHERE SEARCH_CONDITIONS 1. 使用关系表达式使用关系表达式 比较运算符用于比较两个表达式的值,共有比较运算符用于比较两个表达式的值,共有7个,它们是:个,它们是: =(等于)、(等于)、(小于)、(小于)、(大于)、(大于)、=(大于等于)、(大于等于)、(不等于)、(不等于)、!=(不等于)、(不等于)、!(不大于)。(不大于)。 【例【例7.8】查询】查询“teaching”数据库数据库“sc”中成绩小于中成绩小于60的学生的的学生的sno
20、、cno和和score。 在查询编辑器中输入以下代码,并执行,执行结果在查询编辑器中输入以下代码,并执行,执行结果如图所示。如图所示。 USE teaching SELECT * FROM sc WHERE score=”和和“”和和“= 80 AND score =90 【例【例7.12】查询】查询“teaching”数据库中成绩不数据库中成绩不在在80到到90之间的学生的之间的学生的sno、cno和和score。 在查询编辑器中输入以下代码,并执行,执行结在查询编辑器中输入以下代码,并执行,执行结果如图所示。果如图所示。 USE teaching SELECT * FROM sc WHER
21、E score NOT BETWEEN 80 AND 90 4. 使用使用IN(属于)关键字(属于)关键字 同同BETWEEN关键字一样,关键字一样,IN的引入也是为了更方便地限制的引入也是为了更方便地限制检索数据的范围。语法格式为:检索数据的范围。语法格式为: 表达式表达式 NOT IN (表达式表达式1 , 表达式表达式2 ,表达式表达式n) 【例【例7.13】查询】查询“teaching”数据库中计算机和电子商务专数据库中计算机和电子商务专业的学生的业的学生的sname、sno和和specialty 。 在查询编辑器中输入以下代码,并执行,执行结果如图所示。在查询编辑器中输入以下代码,并
22、执行,执行结果如图所示。 USE teaching SELECT sname, sno, specialty FROM student WHERE specialty IN(计算机计算机 ,电子商务电子商务) 5. 使用使用LIKE关键字关键字LIKE关键字搜索与指定模式匹配的字符串、日期或时间值。模式包含要关键字搜索与指定模式匹配的字符串、日期或时间值。模式包含要搜索的字符串,字符串中可包含搜索的字符串,字符串中可包含4种通配符的任意组合,搜索条件中可种通配符的任意组合,搜索条件中可用的通配符。用的通配符。【例【例7.14】通配符的示例】通配符的示例 LIKE AB% 返回以返回以“AB”开
23、始的任意字符串。开始的任意字符串。LIKE Ab% 返回以返回以“Ab”开始的任意字符串。开始的任意字符串。LIKE %abc 返回以返回以“abc”结束的任意字符串。结束的任意字符串。LIKE %abc% 返回包含返回包含“abc”的任意字符串。的任意字符串。LIKE _ab 返回以返回以“ab”结束的三个字符的字符串。结束的三个字符的字符串。LIKE ACK% 返回以返回以“A”、“C”或或“K”开始的任意字符串。开始的任意字符串。LIKE A-Ting 返回四个字符的字符串,结尾是返回四个字符的字符串,结尾是“ing”,首字符的范围,首字符的范围从从A到到T。LIKE Mc% 返回以返回
24、以“M”开始且第二个字符不是开始且第二个字符不是“c”的任意长度的字符的任意长度的字符串。串。注意,以上示例无法再查询编辑器中直接执行,否则会报错,如图所示。注意,以上示例无法再查询编辑器中直接执行,否则会报错,如图所示。读者要上机运行以上示例应该将其作为查询条件放到读者要上机运行以上示例应该将其作为查询条件放到SELECT语句中才语句中才能正确执行能正确执行6.3 6.3 约束约束 【例【例7.15】查询】查询“teaching”数据库中所有姓数据库中所有姓“张张”的学生的学生的信息。的信息。 在查询编辑器中输入以下代码,并执行,执行结果如图所在查询编辑器中输入以下代码,并执行,执行结果如图
25、所示。示。 USE teaching SELECT * FROM student WHERE sname like 张张% 6. IS NOTNULL(是是否否为空为空)查询查询 在在WHERE子句中不能使用比较运算符对空值子句中不能使用比较运算符对空值进行判断,只能使用空值表达式来判断某个表进行判断,只能使用空值表达式来判断某个表达式是否为空值。达式是否为空值。 语法格式:表达式语法格式:表达式 IS NULL 或或 表达式表达式 IS NOT NULL 【例【例7.16】查询】查询“teaching”数据库中所有数据库中所有“score”为为空的学生的空的学生的sno、cno和和score
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科第7章 SQL语言基础ppt课件 本科 SQL 语言 基础 ppt 课件
限制150内