SQLServer数据库应用与开发教程ch04TSQL数据库操作语句课件_第1页
SQLServer数据库应用与开发教程ch04TSQL数据库操作语句课件_第2页
SQLServer数据库应用与开发教程ch04TSQL数据库操作语句课件_第3页
SQLServer数据库应用与开发教程ch04TSQL数据库操作语句课件_第4页
SQLServer数据库应用与开发教程ch04TSQL数据库操作语句课件_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第1页第4章 T-SQL数据库操作语句Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社教学目标教学重点教学过程Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第2页教学目标教学目标l掌握使用掌握使用DDL语句操作数据库、数据表、语

2、句操作数据库、数据表、视图和索引的方法视图和索引的方法l掌握掌握SELECT以及各个子句的使用方法以及各个子句的使用方法l掌握掌握INSERT语句的使用方法语句的使用方法l掌握掌握UPDATE语句的使用方法语句的使用方法l掌握掌握DELETE语句的使用方法语句的使用方法Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第3页教学重点教学重点lDDL语句操作数据库、数据表、视图和索语句操作数据库、数据表、视图和索引引lSELECT语句以及各个子句的使用方法语句以及

3、各个子句的使用方法lINSERT语句的使用方法语句的使用方法lUPDATE语句的使用方法语句的使用方法lDELETE语句的使用方法语句的使用方法Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第4页教学过程教学过程4.1数据定义语言(DDL)4.2数据查询语句(SELECT语句)4.3数据操纵语言(DML)4.4T-SQL的可视化操作4.5习题Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQ

4、LServer数据库应用与开发教程ch04T-SQL数据库操作语句第5页4.1数据定义语言(DDL)数据定义语言(数据定义语言(DDL: Data Definition Language)主要用于对数据库对象的创建、)主要用于对数据库对象的创建、修改和删除。其中数据库对象包括数据库、修改和删除。其中数据库对象包括数据库、表、视图、过程、触发器、函数等。表、视图、过程、触发器、函数等。DDL的语法非常简单,以下是分别对三个的语法非常简单,以下是分别对三个DDL语句简单的解释。语句简单的解释。CREATE语句:用来创建新的数据库对象。语句:用来创建新的数据库对象。ALTER语句:用来修改已有对象的

5、结构。语句:用来修改已有对象的结构。DROP语句:用来删除已有的数据库对象。语句:用来删除已有的数据库对象。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第6页4.1.1操作数据库lT-SQL提供了对数据库管理的语句,包括提供了对数据库管理的语句,包括创建数据库、修改数据库、删除数据库、创建数据库、修改数据库、删除数据库、分离数据库和附加数据库等。分离数据库和附加数据库等。l1.创建数据库l2.修改数据库l3.删除数据库Sql Server2005数据库应用

6、与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第7页1.创建数据库【例【例4-1】创建】创建“Example”数据库。数据库。CREATE DATABASE Example “【例【例4-2】创建】创建“实例数据库实例数据库”数据库。其中主数据文件大小为数据库。其中主数据文件大小为10MB,最大值不受限,每次增量为最大值不受限,每次增量为1MB;事务日志文件大小为;事务日志文件大小为1MB,最大,最大值不受限,文件每次增量值不受限,文件每次增量10。CREATE DATABASE 实例数据库实例

7、数据库 ON PRIMARY(NAME=实例数据库实例数据库, D:数据库数据库实例数据库实例数据库实例数据库实例数据库.mdf,SIZE=10MB,MAXSIZE=UNLIMITED,)LOG ON(NAME=实例数据库实例数据库_LOG, D:数据库数据库实例数据库实例数据库实例数据库实例数据库.ldf,SIZE=1MB,MAXSIZE=UNLIMITED,)GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第8页【例【例4-3】创建名为】创建名为“DB

8、1”的数据库,要的数据库,要求同时创建求同时创建3个数据文件。其中主数据个数据文件。其中主数据文件为文件为10MB,最大大小为,最大大小为100MB,增,增量为量为10 MB;次要数据文件属于;次要数据文件属于F_Group文件组,文件大小为文件组,文件大小为10MB,最最大值不受限,增量为大值不受限,增量为10。事务日志文。事务日志文件大小为件大小为20MB,最大值不受限,每次,最大值不受限,每次增量为增量为5MB。CREATE DATABASE DB1ON PRIMARY(NAME=DB1, D:数据库数据库DB1DB1.mdf,SIZE=10MB,MAXSIZE=100MB,), F_G

9、roup(NAME=DB2, D:数据库数据库DB1DB2.Ndf,SIZE=10MB,MAXSIZE=UNLIMITED,)LOG ON(NAME=DB1_LOG, D:数据库数据库DB1DB1.ldf,SIZE=20MB,MAXSIZE=UNLIMITED,)GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第9页2.修改数据库ALTER DATABASE语句可以对创建的的数据库进行修改,包括添加或语句可以对创建的的数据库进行修改,包括添加或删除文件和文

10、件组,更改文件和文件组的属性,例如更改文件的名称、删除文件和文件组,更改文件和文件组的属性,例如更改文件的名称、大小和增量方式。大小和增量方式。【例【例4-4】向所创建的】向所创建的“Example”中增加一个次要数据文件。文件的逻中增加一个次要数据文件。文件的逻辑名为辑名为 Exa, 物理名为物理名为 Exa.ndf, 大小为大小为 20MB,最大大小不受限制最大大小不受限制 , 每每次增加次增加5MB 。ALTER DATABASE ExampleADD FILE( NAME = Exa, = C:Program FilesMicrosoft SQL ServerMSSQLDataexa.

11、ndf, SIZE = 20MB ,MAXSIZE = UNLIMITED, = 10%)GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第10页【例【例4-5】向所创建的】向所创建的“Example”中增加一个日志文件数据文件。文件的逻辑中增加一个日志文件数据文件。文件的逻辑名为名为 Exa_1, 物理名为物理名为 Exa_1.ldf, 大小为大小为 10MB,最大大小不受限制最大大小不受限制 , 每次增每次增加加10MB 。ALTER DATABASE

12、 ExampleADD LOG FILE( NAME = Exa_1, = C:Program FilesMicrosoft SQL ServerMSSQLDataexa_1.ldf, SIZE = 10MB ,MAXSIZE = UNLIMITED, = 10MB)GO【例【例4-6】删除名为】删除名为“Exa_1.ldf”的日志文件。的日志文件。ALTER DATABASE ExampleREMOVE GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第

13、11页【例【例4-7】将数据库】将数据库“DB1”的大小修改为的大小修改为100MB。ALTER DATABASE DB1MODIFY FILE(NAME=DB1, SIZE=100MB)GO【例【例4-8】将数据库】将数据库“DB1”重新命名为重新命名为“DataBase1”ALTER DATABASE DB1MODIFY NAME=DATABASE1GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第12页3.删除数据库DROP DATABASE语句从语

14、句从SQL Server中删除一个中删除一个或者多个数据库。用户只能根据自己的权限删除或者多个数据库。用户只能根据自己的权限删除数据库,不能删除当前打开的数据库,不能删除数据库,不能删除当前打开的数据库,不能删除系统数据库,数据库删除后不可恢复。系统数据库,数据库删除后不可恢复。删除数据库的语法如下删除数据库的语法如下:DROP DATABASE database_name,n【例【例4-9】删除】删除“Example”数据库数据库DROP DATABASE exampleGOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQ

15、LServer数据库应用与开发教程ch04T-SQL数据库操作语句第13页4.1.2操作数据表 数据表是数据库的非常重要的对象,对数据数据表是数据库的非常重要的对象,对数据表的操作也使用表的操作也使用DDL语句,包括对表的创语句,包括对表的创建、修改和删除,以及添加表的约束。建、修改和删除,以及添加表的约束。1.创建表2.修改表3.删除表 Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第14页1.创建表【例【例4-10】在】在“实例数据库实例数据库”创建创建

16、“学生表学生表”。USE 实例数据库实例数据库 CREATE TABLE 学生表学生表(学号学号 varchar(12) NOT NULL,姓名姓名 nchar(20) NOT NULL,性别性别 char(2) NULL, 出生日期出生日期 smalldatetime NULL, 入学日期入学日期 smalldatetime NULL DEFAULT (2005.08.01), 院系名称院系名称 varchar(20) NULL,) GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch

17、04T-SQL数据库操作语句第15页2.修改表【例【例4-11】为】为“学生表学生表”添加添加“备注备注”列。列。USE 实例数据库实例数据库ALTER TABLE 学生表学生表ADD备注备注 text NULLGO【例【例4-12】将】将“学生表学生表”的的“学号学号”设置为主键。设置为主键。USE 实例数据库实例数据库ALTER TABLE学生表学生表ADD CONSTRAINT PK_ID PRIMARY KEY (学号学号)GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04

18、T-SQL数据库操作语句第16页如果实例数据库存在另一个表如果实例数据库存在另一个表“选课选课”表,包括表,包括“学号学号”、“课程号课程号” 和和“分数分数”三列,其中的三列,其中的“学号学号”列的定义列的定义为为varchar(12) NOT NULL。并且已经设置。并且已经设置“学号学号”和和“课程号课程号”为该表的主键。则可以为为该表的主键。则可以为“选课表选课表”的的“学号学号”列添加外键。列添加外键。【例【例4-13】为】为“选课表选课表”的的“学号学号”列添加外键,外键的名列添加外键,外键的名称为称为“fk_学号学号”,对应了,对应了“学生表学生表”的的“学号学号”。USE 实例

19、数据库实例数据库ALTER TABLE 选课表选课表ADD CONSTRAINT fk_学号学号 FOREIGN KEY (学号学号)REFERENCES 学生表学生表(学号学号)GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第17页3.删除表DROP TABLE语句用于从数据库中删除表,同时删语句用于从数据库中删除表,同时删除该表的所有数据、索引,触发器、约束和权限除该表的所有数据、索引,触发器、约束和权限规范。规范。DROP TABLE不能用于有不能

20、用于有FOREIGN KEY约束引用的表。必须先删除引用的约束引用的表。必须先删除引用的FOREIGN KEY约束或者引用的表。不能使用约束或者引用的表。不能使用DROP TABLE语句删除系统表。语句删除系统表。语法如下:语法如下:DROP TABLE table_nameSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第18页4.1.3操作视图语句使用使用T-SOL可以创建、修改和删除视图。可以创建、修改和删除视图。 1.创建视图2.修改视图3.删除视图S

21、ql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第19页1.创建视图【例【例4-14】创建视图】创建视图“view_1”,该视图包含三个列,分别来该视图包含三个列,分别来自自“学生表学生表”的的“姓名,姓名,“课程表课程表”的的“课程名课程名”列列,“选选课表课表”的的“分数分数”分数列。分数列。CREATE VIEW view_1AS SELECT 学生表学生表.姓名姓名,课程表课程表.课程名课程名,选课表选课表.分数分数FROM 课程表课程表INNER JO

22、IN 选课表选课表 ON 课程表课程表.课程号课程号= 选课表选课表.课程号课程号INNER JOIN 学生表学生表 ON 选课表选课表.学号学号= 学生表学生表.学号学号GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第20页2.修改视图【例【例4-15】修改视图】修改视图“view_1”。ALTER VIEW view_1AS SELECT 学生表学生表.学号学号, 学生表学生表.姓名姓名,课程表课程表.课程名课程名,选课表选课表.分数分数FROM 课

23、程表课程表INNER JOIN 选课表选课表ON 课程表课程表.课程号课程号= 选课表选课表.课程号课程号INNER JOIN 学生表学生表ON 选课表选课表.学号学号= 学生表学生表.学号学号GO修改后的视图修改后的视图“view_1”又添加了又添加了“学生表学生表”的的“学号学号”列。列。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第21页3.删除视图DROP VIEW语句删除视图。语句删除视图。【例【例4-16】删除视图】删除视图“view_1”DR

24、OP VIEW view_1Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第22页4.1.4 管理索引语句l1.创建索引l2.修改索引l3.删除索引Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第23页1.创建索引【例【例4-17】在】在“学生表学生表”的的“姓名姓名”列上创建非聚集索引。列上创建非聚集索引。USE 实例数

25、据库实例数据库CREATE INDEX name_idxON 学生表学生表(姓名姓名)GO【例【例4-18】在】在“学生表学生表”的的“学号学号”列上创建唯一聚集索引。列上创建唯一聚集索引。USE 实例数据库实例数据库CREATE UNIQUE CLUSTERED INDEX id_idxON 学生表学生表(学号学号)GO【例【例4-19】在】在“选课表选课表”的的“学号学号”和和“课程号课程号”列上创建组合索引。列上创建组合索引。USE 实例数据库实例数据库CREATE INDEX index_1ON 选课表选课表(学号学号,课程号课程号)GOSql Server2005数据库应用与开发教程

26、数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第24页2.修改索引【例【例4-20】修改】修改“学生表学生表”的索引。的索引。USE 实例数据库实例数据库ALTERINDEXid_idx ON 学生表学生表REBUILD WITH (FILFACTOR=80,SORT_IN_TEMPDB=ON)GO【例【例4-21】禁用】禁用“学生表学生表”的非聚集索引。的非聚集索引。USE 实例数据库实例数据库ALTER INDEX name_idx ON 学生表学生表DISABLEGOSql Server2005数据

27、库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第25页3.删除索引DROP INDEX语句删除索引。语句删除索引。【例【例4-22】删除】删除“选课表选课表”的索引。的索引。USE 实例数据库实例数据库DROP INDEX 选课表选课表.index_1GOSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第26页4.2数据查询语句(数据查询语句(SELECT

28、语句)语句) SELECT语句是语句是SQL Server中使用最频繁,功能最强大的语句。用户可中使用最频繁,功能最强大的语句。用户可以使用最简单不包括任何条件的查询,也可以使用添加了多个子句的以使用最简单不包括任何条件的查询,也可以使用添加了多个子句的查询。查询。SELECT语句的子句包括以下几个:语句的子句包括以下几个:SELECT:指定从数据库中要查询的列。指定从数据库中要查询的列。INTO:创建新表,并将查询的结果行插入到新表中创建新表,并将查询的结果行插入到新表中FROM:指定要查询的数据所在的表。指定要查询的数据所在的表。WHERE:指定查询返回的数据要符合的条件。:指定查询返回的

29、数据要符合的条件。ORDER BY:指定查询的排序条件。:指定查询的排序条件。GROUP BY:指定查询结果的分组条件。:指定查询结果的分组条件。HAVING:分组后查询要符合的条件。:分组后查询要符合的条件。在在SELECT语句中经常使用的还有语句中经常使用的还有UNION、COMPUTE、FOR、OPTION等关键词。等关键词。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第27页4.2.1 SELECT语句的简单使用1.简单查询列(SELECT和FRO

30、M子句)SELECT子句指定了要返回的列名,子句指定了要返回的列名,FROM子句指定了改列子句指定了改列所在的表。所在的表。【例【例4-22】查询学生表的其中三列。】查询学生表的其中三列。SELECT 学号学号,姓名姓名,院系名称院系名称FROM 学生表学生表【例【例4-23】查询课程表的所有列】查询课程表的所有列SELECT *FROM 课程表课程表在在SELECT子句中,如果要查询某个表的所有的列,可以使子句中,如果要查询某个表的所有的列,可以使用用“*”代替所有的列名。代替所有的列名。“*”号的使用可以简化用户的书号的使用可以简化用户的书写过程,但是会降低查询的效率,一般应具体指明查询的

31、写过程,但是会降低查询的效率,一般应具体指明查询的列。列。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第28页2.限制结果集(TOP和PERCENT)在在SELECT子句中使用子句中使用TOP和和PERCENT关键词可关键词可以限制查询的结果集。以限制查询的结果集。【例【例4-24】返回最上面】返回最上面5条记录。条记录。SELECT TOP 5 学号学号,姓名姓名,院系名称院系名称FROM 学生表学生表【例【例4-25】返回结果集的】返回结果集的50。S

32、ELECT TOP 50 PERCENT 学号学号,姓名姓名,院系名称院系名称FROM 学生表学生表Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第29页3.过滤结果的重复值(DISTINCT)DISTINCT关键字可以从关键字可以从SELECT语句的结果集中消除重复语句的结果集中消除重复项。查询时如果没有指定项。查询时如果没有指定DISTINCT,将返回所有的行。,将返回所有的行。如果指定了如果指定了DISTINCT则只返回取值不同的行。则只返回取值不同的

33、行。【例【例4-26】没有指定】没有指定DISTINCT,查询所有的院系。,查询所有的院系。SELECT 院系名称院系名称FROM 学生表学生表【例【例4-27】指定】指定DISTINCT,查询所有的院系。,查询所有的院系。SELECT DISTINCT 院系名称院系名称FROM 学生表学生表对对DISTINCT关键字来说,关键字来说,NULL将被认为是相互重复的内容。将被认为是相互重复的内容。当当SELECT语句中指定语句中指定DISTINCT时,无论遇到多少个空时,无论遇到多少个空值,结果中只返回一个值,结果中只返回一个NULL。Sql Server2005数据库应用与开发教程数据库应用与

34、开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第30页4.对查询的列排序(ORDER BY)ORDER BY实现对结构集的排序。实现对结构集的排序。【例【例4-28】按照院系名称排序。】按照院系名称排序。SELECT 学号学号,姓名姓名,院系名称院系名称FROM 学生表学生表ORDER BY 院系名称院系名称ORDER BY子句后可以跟多个列,第一列优子句后可以跟多个列,第一列优先级最高。先级最高。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQL

35、Server数据库应用与开发教程ch04T-SQL数据库操作语句第31页5.查询列的重新命名(AS)【例【例4-29】查询】查询“pubs”数据库的数据库的“authors”表,表,并将返回的列命名为中文。并将返回的列命名为中文。USE pubsSELECT au_id AS 编号编号, au_lname AS 姓氏姓氏, au_fname AS 名字名字FROM authorspubs数据库是数据库是SQL Server自带的一个数据库,用自带的一个数据库,用户可以对象资源管理器查看数据库中的表的定义,户可以对象资源管理器查看数据库中的表的定义,表的关系以及表之间的联系。表的关系以及表之间的

36、联系。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第32页6.为表指定别名(AS)SELECT语句可以通过指定表的别名来提高程序的可读性,别名也称相语句可以通过指定表的别名来提高程序的可读性,别名也称相关变量或范围变量。在分配表的别名时,可以使用关变量或范围变量。在分配表的别名时,可以使用AS关键字,格式关键字,格式为为table_name AS table alias,也可以省略,也可以省略AS,直接在表后跟别名:,直接在表后跟别名:table_name

37、 table_alias。【例【例4-30】查询学生表的同时将学生表命名为】查询学生表的同时将学生表命名为“X”。SELECT X.学号学号,X.姓名姓名,X.性别性别FROM 学生表学生表AS X如果为表分配了别名,则如果为表分配了别名,则T-SQL语句中查询的列的所有显示引用必须使语句中查询的列的所有显示引用必须使用别名,而不能使用表名。例如下面的查询在执行时会产生错误。用别名,而不能使用表名。例如下面的查询在执行时会产生错误。SELECT 学生表学生表.学号学号,X.姓名姓名,X.性别性别FROM 学生表学生表AS X Sql Server2005数据库应用与开发教程数据库应用与开发教程

38、 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第33页7.INTO子句的使用INTO子句的作用时创建新表,并将查询的结果插入新表中。如果执行带子句的作用时创建新表,并将查询的结果插入新表中。如果执行带有有INTO子句的子句的SELECT语句时,要确保在目标数据库中具有语句时,要确保在目标数据库中具有CREATE TABLE权限。权限。INTO子句的语法是:子句的语法是:INTO new_table其中其中new_table是根据选择列表中的列和是根据选择列表中的列和 WHERE 子句选择的行,指定子句选择的行,指定要创建的新

39、表名。要创建的新表名。new_table 的格式通过对选择列表中的表达式进行的格式通过对选择列表中的表达式进行取值来确定。取值来确定。new_table 中的列按选择列表指定的顺序创建。中的列按选择列表指定的顺序创建。new_table 中的每列与选择列表中的相应表达式具有相同的名称、数中的每列与选择列表中的相应表达式具有相同的名称、数据类型和值。据类型和值。【例【例4-31】创建新表】创建新表“student”,其列来自于学生表的,其列来自于学生表的“学号,姓名,学号,姓名,性别,院系名称性别,院系名称”四列。四列。SELECT 学号学号,姓名姓名,性别性别,院系名称院系名称INTO stu

40、dentFROM 学生表学生表用户可以在用户可以在“对象资源管理器对象资源管理器”中查看中查看“实例数据库实例数据库”中的新建中的新建“student”表。表。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第34页4.2.2在结果集列表中使用表达SELECT子句后的结果集列表可以是多个简单的列名,也可子句后的结果集列表可以是多个简单的列名,也可以由表达式构成。这些表达式的值并不存在表中,而是该以由表达式构成。这些表达式的值并不存在表中,而是该表的派生列。派生

41、列的形式有以下几种。表的派生列。派生列的形式有以下几种。1.计算的结果在查询的过程中,对基表的某些数值列或者常量使用算术运在查询的过程中,对基表的某些数值列或者常量使用算术运算符或者函数进行运算,并显示运算结果。算符或者函数进行运算,并显示运算结果。【例【例4.32】查询学生表中各个学生的年龄。】查询学生表中各个学生的年龄。SELECT 学号学号,姓名姓名,(YEAR(GETDATE()-YEAR(出生日期出生日期) AS 年龄年龄FROM 学生表学生表Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用

42、与开发教程ch04T-SQL数据库操作语句第35页2.连接两个或者多个列可以使用可以使用“”将两个或者多个列连接起来,作为一列来显示。将两个或者多个列连接起来,作为一列来显示。【例【例4-33】将学生和学号作为一列显示。】将学生和学号作为一列显示。SELECT 学号学号+ : +姓名姓名AS 学生学生, (YEAR(GETDATE()-YEAR(出生日期出生日期) AS 年龄年龄,院系名称院系名称FROM 学生表学生表【例【例4-34】将】将“pubs”中的中的“authors”的姓名作为一列显示,中间用空的姓名作为一列显示,中间用空格分开。格分开。SELECT au_id AS 编号编号,a

43、u_fname+ +au_lname AS 姓名姓名,city AS 城市城市FROM authorsSql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第36页3.数据类型的转换CAST和和CONVERT函数功能相似,可以将常量、变量或者列进行显示的数据类函数功能相似,可以将常量、变量或者列进行显示的数据类型转换。型转换。二者的使用语法不同,二者的使用语法不同,CAST函数的语法如下:函数的语法如下:CAST ( expression AS data_type

44、(length ) )CONVERT函数的语法如下:函数的语法如下:CONVERT ( data_type ( length ) , expression , style )【例【例4-35】例如使用】例如使用CAST函数将函数将10.67转换为整形。转换为整形。SELECT CAST(10.67 AS int)【例【例4-36】使用】使用CONVERT函数将函数将10.67转换为整形。转换为整形。SELECT CONVERT(int,10.67 )【例【例4-37】查询结果进行数据转换。】查询结果进行数据转换。SELECT CAST(学号学号AS VARCHAR(15), 姓名姓名, CAS

45、T(YEAR(GETDATE()-YEAR(出生日期出生日期) AS INT) AS 年龄年龄FROM 学生表学生表Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第37页4.使用CASE语句在查询的结果列表中使用在查询的结果列表中使用CASE语句对查询的结果进行分类。语句对查询的结果进行分类。【例【例4-38】使用】使用CASE语句。语句。SELECT 学号学号,课程号课程号, 分数分数,等级等级=CASE WHEN 分数分数=85 THEN 优秀优秀 WH

46、EN 分数分数=70 THEN 良好良好 WHEN 分数分数=60 THEN 及格及格 ELSE 不及格不及格END FROM 选课表选课表Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第38页4.2.3 WHERE子句的使用l使用使用WHERE子句可以对查询的结果进行筛子句可以对查询的结果进行筛选,选,WHERE子句后是逻辑表达式,该式定子句后是逻辑表达式,该式定义了要返回结果符合的条件,满足条件的义了要返回结果符合的条件,满足条件的行被返回,不满足条件的

47、行不采用。行被返回,不满足条件的行不采用。WHERE子句同时也可以用在子句同时也可以用在DELETE和和UPDATE语句中。语句中。lWHERE子句的限定条件可以有多种表达形子句的限定条件可以有多种表达形式。下面分别讨论。式。下面分别讨论。 Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第39页1.使用比较运算符比较算符包括以下几个:等于(比较算符包括以下几个:等于(=)、大于()、大于()、小于)、小于(=)、小于等于()、小于等于(=)、不等于()、不等

48、于(或者或者!=)、不大于()、不大于(!)、不小于()、不小于(!=85Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第40页2.使用逻辑运算符逻辑运算符包括三个,分别是逻辑运算符包括三个,分别是“AND、OR 和和NOT”。【例【例4-41】查询所有课程成绩在】查询所有课程成绩在85分以上分以上,100分以下的学生及相关科目。分以下的学生及相关科目。SELECT *FROM 选课表选课表WHERE 分数分数=85 AND 分数分数=100【例【例4-42

49、】查询分数在】查询分数在59分以上(不包括分以上(不包括59)的学生及科目信息。)的学生及科目信息。SELECT *FROM 选课表选课表WHERE NOT 分数分数=60”,或者,或者“WHERE 分数分数!60”。当一个语句中使用了多个逻辑运算符时,计算的顺序依次为:当一个语句中使用了多个逻辑运算符时,计算的顺序依次为:NOT AND和和OR。算术运算符和位运算符优先于逻辑运算符。算术运算符和位运算符优先于逻辑运算符。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据

50、库操作语句第41页3.限定查询的范围使用使用BETWEEN和和NOT BETWEEN关键字对条件进行限制关键字对条件进行限制【例【例4-46】查询分数在】查询分数在0到到59的学生信息。的学生信息。SELECT *FROM 选课表选课表WHERE 分数分数BETWEEN 0 AND 59【例【例4-47】查询分数不在】查询分数不在0到到59的学生信息。的学生信息。SELECT *FROM 选课表选课表WHERE 分数分数NOT BETWEEN 0 AND 59Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据

51、库应用与开发教程ch04T-SQL数据库操作语句第42页4.使用列表(IN和 NOT IN)使用使用IN和和NOT IN 关键字。查询与关键字。查询与IN子句中的任意一项匹配的记录。子句中的任意一项匹配的记录。【例【例4-48】不使用】不使用IN子句查询计算机系或者国贸系学生。子句查询计算机系或者国贸系学生。SELECT *FROM 学生表学生表WHERE 院系名称院系名称=计算机系计算机系 OR 院系名称院系名称=国贸系国贸系【例【例4-49】使用】使用IN子句查询子句查询“计算机系计算机系”或者或者“国贸系国贸系”学生。学生。SELECT *FROM 学生表学生表WHERE 院系名称院系名

52、称IN (计算机系计算机系,国贸系国贸系)【例【例4-50】使用】使用NOT IN子句查询非子句查询非“计算机系计算机系”或者或者“国贸系国贸系”学生。学生。SELECT *FROM 学生表学生表WHERE 院系名称院系名称NOT IN (计算机系计算机系,国贸系国贸系)Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第43页5.模糊查询(LIKE和NOT LIKE)使用使用LIKE和和NOT LIKE关键字可以实现模糊查询。关键字可以实现模糊查询。LIKE后

53、跟匹配的模式,可以后跟匹配的模式,可以是字符串、日期或者时间值。匹配包含的通配符包含以下四种。是字符串、日期或者时间值。匹配包含的通配符包含以下四种。:包含零个或多个字符的任意字符串。例如:包含零个或多个字符的任意字符串。例如WHERE 学号学号 LIKE 2005%查询查询学号以学号以2005开头的记录信息。开头的记录信息。_:下划线,任何单个字符。:下划线,任何单个字符。WHERE title LIKE _x,查找以,查找以x结尾的,前面只结尾的,前面只有一个字符的字符串。有一个字符的字符串。:指定范围(:指定范围(a-f)或集合()或集合(abcdef)内的任何单个字符。)内的任何单个字

54、符。WHERE au_lname LIKE C-Parsen ,查找以,查找以arsen结尾并且以介于结尾并且以介于C与与P之间的之间的任何单个字符开始的作者姓氏,例如任何单个字符开始的作者姓氏,例如Carsen、Karsen等。等。:不在指定范围(:不在指定范围(a-f)或集合()或集合(abcdef)内的任何单个字符。例如)内的任何单个字符。例如WHERE au_lname LIKE del%将查找以将查找以de开头并且其后的字母不为开头并且其后的字母不为l的的所有的作者的姓氏。所有的作者的姓氏。【例【例4-51】查找】查找“pubs”数据库中数据库中“authors”表的电话号码中以表的

55、电话号码中以415开头的电话开头的电话SELECT au_id,au_fname+ +au_lname AS name,phoneFROM authorsWHERE phone LIKE 415%Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第44页【例【例4-52】查找】查找“pubs”数据库中数据库中“authors”表的电话号码中不以表的电话号码中不以415开头的电话开头的电话SELECT au_id,au_fname+ +au_lname AS na

56、me,phoneFROM authorsWHERE phone NOT LIKE 415%如果要查询的目标本身就是通配符的情况,例如需要查询如果要查询的目标本身就是通配符的情况,例如需要查询“10%”其中的其中的“%”是通配符,这时可以采用是通配符,这时可以采用ESCAPE关键字或者关键字或者 进行转化。进行转化。ESCAPE关键字可以定义转义符。当转义符置于通配符之前时,该通配关键字可以定义转义符。当转义符置于通配符之前时,该通配符解释为普通字符,例如符解释为普通字符,例如WHERE col LIKE %10/% ESCAPE/。该句中的前导和结尾的该句中的前导和结尾的为通配符,而由于使用了

57、为通配符,而由于使用了ESCAPE/,则,则/之后的之后的被转义为普通字符。被转义为普通字符。 使用使用 ,将通配符指定为中括号中的第一个字符,表示词通配符作为,将通配符指定为中括号中的第一个字符,表示词通配符作为普通的字符使用。例如普通的字符使用。例如WHERE col LIKE %10%,中括号中的,中括号中的为普通字符。为普通字符。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第45页6.ALL和ANY(SOME)关键字的使用ALL关键字的使用语法为:

58、关键字的使用语法为:scalar_expression = | | != | | = | ! | | = | ! ALL(1,8,6)表示要大于表示要大于1,8和和6中的所有的每一个值,即大于中的所有的每一个值,即大于8。ANY(SOME)的语法为:的语法为:scalar_expression = | | ! = | | = | ! | | = | ! ANY(1,8,6)表示大于三个数表示大于三个数中的至少一个值,即大于中的至少一个值,即大于1。SOME和和ANY的功能相同。的功能相同。ALL和和ANY关键字较多用于子查询中,在子查询中查找到符合的某些值,关键字较多用于子查询中,在子查询中查

59、找到符合的某些值,而外部查询在此基础上再作出条件查询。而外部查询在此基础上再作出条件查询。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第46页4.2.4 GROUP BY子句的使用使用使用GROUP BY子句可以将结果集进行分组。子句可以将结果集进行分组。分组的主要目的就是对分组后的数据进行分组的主要目的就是对分组后的数据进行统计,因此使用统计,因此使用GROUP BY的的SELECT语句中一般也包含了聚合函数的使用,例语句中一般也包含了聚合函数的使用,例

60、如如SUM( )、AVG( )、COUNT( )、MAX( )、MIN( )等等。等等。Sql Server2005数据库应用与开发教程数据库应用与开发教程 清华大学出版社清华大学出版社2022-3-6SQLServer数据库应用与开发教程ch04T-SQL数据库操作语句第47页1.GROUP BY的简单使用【例【例4-53】以】以“院系名称院系名称”分组,并统计各系的人数。分组,并统计各系的人数。SELECT 院系名称院系名称,COUNT(学号学号) AS 人数人数FROM 学生表学生表GROUP BY 院系名称院系名称【例【例4-54】以】以“课程号课程号”分组,并统计各门课程的平均分。分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论