第4章 SQL Server和SQL语言_第1页
第4章 SQL Server和SQL语言_第2页
第4章 SQL Server和SQL语言_第3页
第4章 SQL Server和SQL语言_第4页
第4章 SQL Server和SQL语言_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、 数据库技术及应用数据库技术及应用DB1第第4章章 SQL Server和和SQL语言语言 本章主要内容本章主要内容: 认识认识SQL Server 及其基本使用;及其基本使用; 数据库标准语言数据库标准语言SQL及其使用及其使用(建立数据库、查询数据、更新数据)。(建立数据库、查询数据、更新数据)。24.1.1 SQL Server2000概述概述 SQL Server 是一个客户是一个客户/服务器关系型数据库管理服务器关系型数据库管理系统。使用系统。使用Transact-SQL在客户机和在客户机和SQL Server 之间发送请求。之间发送请求。4.1 SQL Server简介简介 SQL

2、 Server2000是是Microsoft 公司在公司在2000年推出的年推出的SQL Server数据库管理系统。数据库管理系统。3 (Enterprise Edition) 支持支持SQL Server2000的所有特性,可作为大型的所有特性,可作为大型Web站站点、企业的数据库服务器。点、企业的数据库服务器。标准标准 Edition)用于小型的工作用于小型的工作组或部门。组或部门。4.1.1 SQL Server2000概述概述 SQL Server2000的常用版本有:的常用版本有:4 Personal Edition) 用于单机系统用于单机系统或客户机。或客户机。 开发版开发版(D

3、eveloper Edition):用于程序员:用于程序员开发应用程序开发应用程序 ,需要,需要SQL Server2000作为作为数据存储设备。数据存储设备。4.1.1 SQL Server2000概述概述5 SQL Server的软硬件平台要求的软硬件平台要求:硬件要求硬件要求: 目前的计算机目前的计算机CPU、内存和硬盘等都能满足、内存和硬盘等都能满足SQL Server2000的要求。的要求。软件要求软件要求: SQL Server 2000标准版和企业版标准版和企业版只能安装在只能安装在服务器版的操作系统中。服务器版的操作系统中。 Windows 2000和和Windows XP操作

4、系统,只操作系统,只能安装能安装个人版和开发版个人版和开发版的的SQL Server 2000。4.1.1 SQL Server2000概述概述64.1.1 SQL Server2000概述概述版本或组件版本或组件操作系统要求操作系统要求企业版企业版Windows Server版版标准版标准版Windows Server版版个人版个人版Windows 各个版本各个版本开发版开发版Windows Server版版Windows Workstation版版Windows Professional版版客户端客户端Windows 各个版本各个版本表表4.1.1 不同版本不同版本SQL Server 2

5、000对操作系统的要求对操作系统的要求74.1.2 SQL Server2000 的主要组件的主要组件 SQL Server2000的安装:的安装: 见见“SQL Server 2000安装安装”课件课件84.1.2 SQL Server2000 的主要组件的主要组件 SQL Server2000的主要组件的主要组件:SQL Server主要组件主要组件91. 企业管理器企业管理器 企业管理器是最主要的管理工具,可以完成绝大企业管理器是最主要的管理工具,可以完成绝大部分数据库管理工作。主要为:部分数据库管理工作。主要为: 注册和管理注册和管理SQL Server服务器服务器 创建和管理数据库和

6、数据库对象创建和管理数据库和数据库对象 备份和还原数据库和事务日志备份和还原数据库和事务日志 设置任务调度、警报和提供服务器的控制功能设置任务调度、警报和提供服务器的控制功能 创建与管理用户账号和组创建与管理用户账号和组4.1.2 SQL Server2000的主要组件的主要组件102. 查询分析器查询分析器 查询分析器是一个图形化的数据库编程接查询分析器是一个图形化的数据库编程接口。通过查询分析器口。通过查询分析器 可以输入和执行各种可以输入和执行各种Transact-SQL语句。语句。例如例如:在:在“查询查询”窗口中输入语句:窗口中输入语句: SELECT 学号学号,姓名姓名,性别性别,

7、出生日期出生日期 FROM 学生学生 WHERE “班级班级”=计计00-14.1.2 SQL Server2000的主要组件的主要组件114.1.2 SQL Server2000的主要组件的主要组件123. 系统数据库系统数据库 SQL Server 2000安装好后,系统自动创建安装好后,系统自动创建6个系统数据库。它们存放在个系统数据库。它们存放在Microsoft SQL Server默认安装目录下的默认安装目录下的MSSQLData文件文件夹夹中,数据库文件的扩展名为中,数据库文件的扩展名为.mdf,数据库,数据库日志文件的扩展名为日志文件的扩展名为.ldf。4.1.2 SQL Se

8、rver 2000的主要组件的主要组件13(1) Master数据库数据库 Master数据库记录了数据库记录了SQL Server系统的所系统的所有信息。这些信息包括所有的登录信息、有信息。这些信息包括所有的登录信息、系统设置信息、系统设置信息、 SQL Server的初始化信息的初始化信息和其它系统数据库及用户数据库的相关信和其它系统数据库及用户数据库的相关信息。息。 Master数据库对应的主数据文件是数据库对应的主数据文件是Master.mdf,日志文件是,日志文件是Mastlog.ldf。4.1.2 SQL Server2000 的主要组件的主要组件14(2) Model数据库数据库

9、 Model数据库是所有用户数据库和数据库是所有用户数据库和Tempdb数据库的模板数据库。数据库的模板数据库。 当用户使用当用户使用CREATE DATABASE命令建立新的命令建立新的数据库时,新数据库的第一部分总是通过复制数据库时,新数据库的第一部分总是通过复制Model数据库中的内容创建,剩余部分由空页填数据库中的内容创建,剩余部分由空页填充。充。 Model 数据库对应的主数据文件是数据库对应的主数据文件是Model.mdf,日志文件是日志文件是Modellog.ldf。4.1.2 SQL Server2000 的主要组件的主要组件15(3) Msdb数据库数据库 Msdb数据库是数

10、据库是代理数据库代理数据库,主要用于,主要用于SQL Server Agent,为其警报、任务调度和记录为其警报、任务调度和记录操作员的操作提供存储空间。操作员的操作提供存储空间。 Msdb数据库对应的主数据文件是数据库对应的主数据文件是Msdb.mdf,日志文件是,日志文件是Msdblog.ldf。4.1.2 SQL Server2000 的主要组件的主要组件16(4) Tempdb数据库数据库 是一个临时数据库。是一个临时数据库。 Tempdb数据库由整个系统的所有数据库使用。数据库由整个系统的所有数据库使用。它为所有的临时表、临时存储过程及其它临时操它为所有的临时表、临时存储过程及其它临

11、时操作提供存储空间。作提供存储空间。 SQL Server每次启动时,每次启动时, Tempdb 数据库被重新建立。当用户与数据库被重新建立。当用户与SQL Server断开联系时,其临时表和存储过程被自动断开联系时,其临时表和存储过程被自动删除。删除。 对应的主数据文件是对应的主数据文件是Tempdb.mdf,日志文件是,日志文件是Templog.ldf。4.1.2 SQL Server2000 的主要组件的主要组件17(5) Pubs数据库和数据库和Northwind数据库数据库 Pubs数据库数据库: 提供一个样本数据库作为学习提供一个样本数据库作为学习工具工具。 Northwind数据

12、库:提供一个样本数据库作数据库:提供一个样本数据库作为学习工具为学习工具。4.1.2 SQL Server2000 的主要组件的主要组件184. SQL Server 服务管理器服务管理器 服务管理器是在服务器端运行的程序,其界服务管理器是在服务器端运行的程序,其界面如图所示。面如图所示。4.1.2 SQL Server 2000的主要组件的主要组件服务管理器用来启服务管理器用来启动、暂停、继续和动、暂停、继续和停止数据库服务器停止数据库服务器的实时服务。的实时服务。19 在访问数据库之前,必须启动在访问数据库之前,必须启动SQL Server数据库数据库服务。服务。SQL Server数据库

13、服务的启动有两种方法数据库服务的启动有两种方法: 启动启动Windows时自动启动,可以通过服务管理器时自动启动,可以通过服务管理器进行设置。进行设置。 通过通过“开始开始Microsoft SQL Server服务管理器服务管理器”进行启动。进行启动。4.1.2 SQL Server 2000的主要组件的主要组件204.1.3 创建数据库和基本表创建数据库和基本表1. 创建数据库创建数据库要创建数据库必须拥有创建数据库的权限。要创建数据库必须拥有创建数据库的权限。在初始情况下,只有系统管理员可以创建数在初始情况下,只有系统管理员可以创建数据库。在数据库创建完成后,它的创建者自据库。在数据库创

14、建完成后,它的创建者自动成为其所有者。动成为其所有者。214.1.3 创建数据库和基本表创建数据库和基本表创建数据库的工作主要是创建数据库的工作主要是: 确定数据库名称;确定数据库名称; 确定数据文件的名称、存放位置和增长信确定数据文件的名称、存放位置和增长信息等;息等; 确定事务日志文件名称、存放位置和增长确定事务日志文件名称、存放位置和增长信息等。信息等。22创建数据库方法有三种创建数据库方法有三种: 使用企业管理器创建数据库;使用企业管理器创建数据库; 使用使用Transact-SQL语言创建语言创建; 使用向导创建数据库(使用向导创建数据库(略讲略讲)。)。4.1.3 创建数据库和基本

15、表创建数据库和基本表本节介绍使用企业管理器创建数据库。本节介绍使用企业管理器创建数据库。23使用企业管理器创建数据库使用企业管理器创建数据库(电脑操作演示,建立电脑操作演示,建立student数据库数据库)如下图如下图4.1.3 创建数据库和基本表创建数据库和基本表2425 每个数据库最多可创建每个数据库最多可创建200万个基本表,用万个基本表,用户创建基本表时,最多可以定义户创建基本表时,最多可以定义1024个字个字段。段。 有两种方法创建基本表:有两种方法创建基本表: a. 使用使用Transact-SQL创建基本表;创建基本表; b. 使用企业管理器创建基本表。使用企业管理器创建基本表。

16、2. 创建基本表创建基本表 本节介绍使用企业管理器创建基本表。本节介绍使用企业管理器创建基本表。4.1.3 创建数据库和基本表创建数据库和基本表26 创建基本表的主要工作:创建基本表的主要工作: 确定基本表名;确定基本表名; 确定每个字段的名称、数据类型、字段确定每个字段的名称、数据类型、字段宽度、是否可为空等;宽度、是否可为空等; 确定每个表的主键。确定每个表的主键。(1)数据类型数据类型常用数据类型见下表所示。常用数据类型见下表所示。4.1.3 创建数据库和基本表创建数据库和基本表27数据类型数据类型说明说明数据类型数据类型说明说明Bit二进制位类型二进制位类型Money货币类型货币类型T

17、inyint无符号单字节整型无符号单字节整型Datetime日期日期/时间型时间型Smallint短整型短整型,2个字节个字节ImageOLE对象对象Int长整型长整型,4个字节个字节Varchar(n)最长为最长为n的可变长文的可变长文本类型本类型Bigint大整型大整型,8个字节个字节Text(n)长为长为n的可变长文本的可变长文本类型类型,长度最大长度最大231-1Decimal,Numeric数值类型数值类型(固定精固定精度和小数位度和小数位)Char(n),固定长度为固定长度为n的文的文本类型本类型Real单精度浮点型单精度浮点型,4字节字节Binary二进制类型二进制类型float

18、双精度浮点型双精度浮点型,8字节字节VarBinary可变长二进制类型可变长二进制类型表表4.1.2 常用的数据类型常用的数据类型28(2) 在企业管理器中创建基本表在企业管理器中创建基本表 选定数据库,在其下选定数据库,在其下“表表”项上打开快捷项上打开快捷菜单菜单(如下图如下图), 选择选择“新建表新建表”菜单命令,菜单命令,进入其编辑器。进入其编辑器。如图所示如图所示. .4.1.3 创建数据库和基本表创建数据库和基本表29三、三、 创建基本表创建基本表304.1.4 管理数据库和基本表管理数据库和基本表1. 删除数据库和基本表删除数据库和基本表 选择要删除的数据库或表,按键盘上的选择要

19、删除的数据库或表,按键盘上的“删除删除”键,或打开快捷菜单,选择键,或打开快捷菜单,选择“删删除除”菜单命令即可。(菜单命令即可。(电脑操作演示电脑操作演示)2. 修改数据库和基本表结构修改数据库和基本表结构(电脑操作演示电脑操作演示)见下页图。)见下页图。314.1.4 管理数据库和基本表管理数据库和基本表“设计表设计表”项项是修改表结构是修改表结构“打开表打开表”项是项是浏览表数据浏览表数据323. 备份和恢复数据库备份和恢复数据库(1) 备份数据库:备份数据库:为数据库建立备份,以便为数据库建立备份,以便数据库发生故障后,用备份恢复数据库数据库发生故障后,用备份恢复数据库。 选择要备份的

20、数据库选择要备份的数据库,然后,然后,方法方法1:打开快捷菜单,选择:打开快捷菜单,选择“所有任务所有任务”菜单项,再选择菜单项,再选择“备份数据库备份数据库” 菜单命菜单命令。令。方法方法2:选择选择“工具工具/备份数据库备份数据库”菜单命令。菜单命令。(2) 恢复数据库:恢复数据库:(电脑操作演示电脑操作演示)4.1.4 管理数据库和基本表管理数据库和基本表334.1.4 管理数据库和基本表管理数据库和基本表344. 导入和导出数据导入和导出数据 数据的导入和导出数据的导入和导出指将其他指将其他SQL Server服服务器上数据库或其他数据源数据务器上数据库或其他数据源数据(如如Excel

21、工工作表作表)导入到本地导入到本地SQL Server服务器上的数服务器上的数据库中据库中,或反之。或反之。 数据的导入和导出数据的导入和导出利用利用SQL Server提供的提供的数据转换服务数据转换服务DTS来完成。来完成。 例如例如:将教学数据库数据导出到:将教学数据库数据导出到Excel表格表格中中 (电脑操作演示电脑操作演示)。4.1.4 管理数据库和基本表管理数据库和基本表354.1.4 管理数据库和基本表管理数据库和基本表364.1.4 管理数据库和基本表管理数据库和基本表 374.1.4 管理数据库和基本表管理数据库和基本表 384.1.4 管理数据库和基本表管理数据库和基本表

22、394.2 SQL语言语言 SQL是是Structured Query Language的缩写的缩写, 它是它是1974年由年由Boyce和和Chamberlin提出的,提出的,并在并在IBM公司公司San Jose 实验室研制的关系数实验室研制的关系数据库实验系统据库实验系统SYSTEM R上实现。上实现。 由于由于SQL功能丰富、语言简洁、易学易用,功能丰富、语言简洁、易学易用,很受用户欢迎。为此,很受用户欢迎。为此,80年代,计算机商家年代,计算机商家们纷纷推出各自支持们纷纷推出各自支持SQL的软件或者与的软件或者与SQL的接口软件。现在的接口软件。现在SQL已是世界上最广泛使已是世界上

23、最广泛使用的数据库语言。用的数据库语言。404.2 SQL语言语言 SQL语言由语言由三部分组成,包括三部分组成,包括数据定义语言数据定义语言DDL、数据操作语言数据操作语言DML、数据控制语言、数据控制语言DCL。也就是。也就是SQL语言具有数据查询、数据操纵、数据定义和语言具有数据查询、数据操纵、数据定义和数据控制功能。其中最重要的是数据查询功能。数据控制功能。其中最重要的是数据查询功能。 SQL语言是一种非过程化的语言语言是一种非过程化的语言。用。用SQL语句解语句解决一个问题时,用户只需要告诉系统要干什么就决一个问题时,用户只需要告诉系统要干什么就可以了,实现过程是由系统自动完成的。另

24、外,可以了,实现过程是由系统自动完成的。另外,SQL语言还具有面向集合操作,语法简单,易学语言还具有面向集合操作,语法简单,易学易用等特点。易用等特点。41分类分类命令动词命令动词功能功能数据查询数据查询SELECT查询数据查询数据数据定义数据定义CREATE建立基本表、视图等建立基本表、视图等DROP建立基本表、视图等建立基本表、视图等ALTER修改基本表、视图等修改基本表、视图等数据操纵数据操纵INSERT插入记录插入记录UPDATE修改记录修改记录DELETE删除记录删除记录数据控制数据控制GRANT授权授权REVOKE回收权限回收权限表表4.2.1 常用的常用的SQL命令命令4.2 S

25、QL语言语言424.2.1 数据定义数据定义 SQL的数据定义功能主要包括三部分:基的数据定义功能主要包括三部分:基本表的定义、视图的定义和索引的定义。本表的定义、视图的定义和索引的定义。431. CREATE TABLE 语句语句表定义表定义CREATE TABLE 表名表名(列名列名1 数据类型数据类型 列级完整性约束条件列级完整性约束条件 ,列名,列名2 数据类型数据类型 列级完整性约束条件列级完整性约束条件 ,表级完整性约束条件,表级完整性约束条件 )定义表时,要给出,构成表的每个字段名及其数据类型和长度。主码、参照完整性定义、用户定义完整性。4.2.1 数据定义数据定义44例例:建立

26、学生教学数据库的:建立学生教学数据库的3个表。个表。S(Sno,Sname,Ssex,Sage,Sdept)SC(Sno,Cno,Grade)(仅以此表举例仅以此表举例)C(Cno,Cname,Pcno,Credit)4.2.1 数据定义数据定义45CREATE TABLE SC(Sno CHAR(6) NOT NULL, Cno CHAR(6) NOT NULL, Grade Smallint CHECK(Grade BETWEEN 0 AND 100) , CONSTRAINT pk PRIMARY KEY(Sno, Cno), FOREIGN KEY(Sno) REFERENCES S(

27、Sno), FOREIGN KEY(Cno) REFERENCES C(Cno) )4.2.1 数据定义数据定义46说明:说明:(1)字段级完整性约束字段级完整性约束 NOT NULL(不允许取空值不允许取空值) 和和NULL(允许取空值允许取空值) PRIMARY KEY (声明字段为主键声明字段为主键) UNIQUE(唯一性约束唯一性约束, 字段取值不能重复字段取值不能重复) FOREIGN KEY: 参照完整性的外键约束。参照完整性的外键约束。DEFAULT :为字段指定默认值。:为字段指定默认值。CHECK子句子句:实现字段级用户定义约束。:实现字段级用户定义约束。4.2.1 数据定义

28、数据定义47(2)表级完整性约束表级完整性约束 PRIMARY KEY (声明字段为主键声明字段为主键) FOREIGN KEY: :参照完整性的外键约束。参照完整性的外键约束。 CHECK子句:实现用户定义完整性约束。子句:实现用户定义完整性约束。4.2.1 数据定义数据定义48CREATE TABLE SC(Sno CHAR(6) NOT NULL FOREIGN KEY REFERENCES S(Sno), Cno CHAR(6) NOT NULL, Grade Smallint default 0,CONSTRAINT k1 CHECK(Grade BETWEEN 0 AND 100)

29、 ,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Cno) REFERENCES C(Cno) )注注:完整性约束可以使用:完整性约束可以使用CONSTRAINT关键关键字命名。否则系统将自动为每个约束命名。字命名。否则系统将自动为每个约束命名。4.2.1 数据定义数据定义492. ALTER TABLE语句语句表的修改表的修改ALTER TABLE 表名表名 ADD 新列名新列名 数据类型数据类型 完整性约束完整性约束 DROP 完整性约束名完整性约束名 DROP COLUMN 列名列名 ALTER COLUMN 列名列名 数据类型数据类型新增的属性不能定义为新增的属性不

30、能定义为“NOT NULL”NOT NULL”因为因为关系的原来元组在新列上的值取空值。关系的原来元组在新列上的值取空值。4.2.1 数据定义数据定义50例例1:向:向”学生学生”表增加表增加“入学时间入学时间”字段,字段,其数据类型为日期型;将其数据类型为日期型;将“出生日期出生日期”的的数据类型改为数据类型改为“日期型日期型”;删除;删除“所属系所属系”字段字段 。ALTER TABLE 学生学生 ADD 入学时间入学时间 DatetimeALTER TABLE 学生学生 ALTER COLUMN 出生日期出生日期 DatetimeALTER TABLE 学生学生 DROP COLUMN

31、所属系所属系4.2.1 数据定义数据定义513. DROP TABLE语句语句删除基本表删除基本表当某个表不再需要时,可以删除。当某个表不再需要时,可以删除。 一般格式:一般格式: DROP TABLE 表名表名例:例: DROP TABLE S 4.2.1 数据定义数据定义524. 建立索引建立索引 当数据表中记录很多时,查询速度成为当数据表中记录很多时,查询速度成为一个突出的问题。若要提高查询速度,可一个突出的问题。若要提高查询速度,可以在涉及的字段上建立索引。以在涉及的字段上建立索引。 建立索引建立索引使用使用CREATE命令。命令。语法格式为语法格式为: CREATE UNIQUE C

32、LUSTER INDEX ON , 4.2.1 数据定义数据定义53 说明:说明: 若查询中涉及到索引字段时,系统会自动选择合适若查询中涉及到索引字段时,系统会自动选择合适的索引,大大提高查询速度。的索引,大大提高查询速度。 索引一经建立,就由系统使用和维护它,不需要用索引一经建立,就由系统使用和维护它,不需要用户干预。当增加、修改、删除数据表中记录时,系户干预。当增加、修改、删除数据表中记录时,系统会自动维护索引。统会自动维护索引。 维护索引需要花费一些时间,故建立多少索引,需维护索引需要花费一些时间,故建立多少索引,需要权衡后处理。要权衡后处理。 UNIQUE:每一个索引值只对应惟一的数据

33、记录。:每一个索引值只对应惟一的数据记录。4.2.1 数据定义数据定义54 CLUSTER:建立的索引是聚簇索引。所谓聚簇:建立的索引是聚簇索引。所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。在一个表上只能建立聚簇索引,致的索引组织。在一个表上只能建立聚簇索引,因此应在最常查询的列上建立聚簇索引以提高查因此应在最常查询的列上建立聚簇索引以提高查询效率。询效率。 次序是指次序是指ASC或或DESC,默认值为,默认值为ASC。5删除索引删除索引 DROP INDEX 4.2.1 数据定义数据定义55说明:说明:1一个一个SELECT语句可

34、由五个子句组成,但只有语句可由五个子句组成,但只有前两个子句是必不可少的,其它子句可以缺省。前两个子句是必不可少的,其它子句可以缺省。4.2.2 SQL查询查询SELECT ALL|DISTINCT 目标列表目标列表FROM 表名表名1 ,表名,表名2 WHERE 条件表达式条件表达式1 GROUP BY 列名列名1 HAVING 条件表达式条件表达式2 ORDER BY 列名列名2 ASC | DESC ;562SELECT子句告诉系统查找什么数据。子句告诉系统查找什么数据。所要的数据可以是表的属性、表达式或常所要的数据可以是表的属性、表达式或常量。量。3FROM子句告诉系统从哪里查找数据。

35、子句告诉系统从哪里查找数据。即给出查询涉及的一个或多个表即给出查询涉及的一个或多个表(基本表基本表, 视图视图, 查询表查询表)。4WHERE子句给出查询条件。只有满足子句给出查询条件。只有满足条件的元组才是查询所要的。条件的元组才是查询所要的。4.2.2 SQL查询查询575GROUP BY子句用于分组查询,它将结果按子句用于分组查询,它将结果按的值进行分组,每组的元组在该属性列的值进行分组,每组的元组在该属性列上值相等。上值相等。 HAVING短语用来指定组应该满足的条件,只短语用来指定组应该满足的条件,只有满足条件的组才予输出。每组的数据作为查有满足条件的组才予输出。每组的数据作为查询结

36、果的一行,有多少组,查询结果表就有多询结果的一行,有多少组,查询结果表就有多少行。少行。6如果有如果有ORDER子句,则结果表还要按子句,则结果表还要按的值的升序或降序排序。的值的升序或降序排序。 4.2.2 SQL查询查询58以以教学数据库教学数据库为例介绍该命令的应用。为例介绍该命令的应用。学生学生 (学号学号,姓名姓名,性别性别, 出生日期出生日期, 班级班级, 所属系所属系, )课程课程 (课号课号,课名课名,学分学分,学时学时, 开课系开课系)选课选课 (学号学号, 课号课号, 成绩成绩, )4.2.2 SQL查询查询591. 选择记录选择记录例例1 查询年龄为空值的学生信息查询年龄

37、为空值的学生信息。例例2 查询在查询在19781983年之间出生的学生信息年之间出生的学生信息(不在不在之间之间) SELECT * FROM 学生学生 WHERE YEAR(出生日期出生日期) BETWEEN 1978 AND 1982SELECT * FROM 学生学生 WHERE YEAR(GETDATE()-YEAR(出生日期出生日期) IS NULLGetdate(): 系统函数,返回系统当前日期。系统函数,返回系统当前日期。YEAR(日期日期):系统函数,返回:系统函数,返回“日期日期”中的年份。中的年份。602. 选择字段选择字段例例3 查询选修了查询选修了001课且有成绩的学生

38、学号。课且有成绩的学生学号。SELECT 学号学号 FROM 选课选课 WHERE 课号课号=001 And 成绩成绩 IS NOT NULL例例4 查询有不及格成绩的学生学号。查询有不及格成绩的学生学号。SELECT DISTINCT 学号学号 FROM 选课选课 WHERE 成绩成绩 20 ORDER BY 学号学号 例例8 查询学生选课信息,将结果按学号升序排列,查询学生选课信息,将结果按学号升序排列,学号相同时再按照成绩降序排列显示。学号相同时再按照成绩降序排列显示。SELECT * FROM 选课选课ORDER BY 学号学号, 成绩成绩 DESC63 合计函数合计函数 SELECT

39、子句中的目标列可以是合计子句中的目标列可以是合计函数,用于数据函数,用于数据统计工作,统计工作,主要有:主要有: COUNT(*) 计算元组个数计算元组个数 COUNT(DISTINCT | ALL ) 计算一列中值的个数计算一列中值的个数 SUM(DISTINCT | ALL ) 计算一列值的总和计算一列值的总和 AVG(DISTINCT | ALL ) 计算一列值的平均值计算一列值的平均值 MAX() 求一列值中的最大值求一列值中的最大值 MIN() 求一列值中的最小值求一列值中的最小值 4. 分组分组64例例9 查询选修了课程的学生人数。查询选修了课程的学生人数。 SELECT COUN

40、T( DISTINCT 学号学号) FROM 选课选课 例例10 查询选查询选002课的学生人数以及该课的课的学生人数以及该课的最高、最低成绩、平均成绩。最高、最低成绩、平均成绩。SELECT COUNT( *) AS 人数人数, MAX(成绩成绩) AS最高成绩最高成绩, MIN(成绩成绩) AS 最低成绩最低成绩, AVG(成绩成绩) AS 平均成绩平均成绩 FROM 选课选课WHERE 课号课号=00024. 分组分组65实际中我们常常会遇到这样的查询要求,如实际中我们常常会遇到这样的查询要求,如“查询每个部门的工资总和、平均工资和职查询每个部门的工资总和、平均工资和职工总数工总数”等等

41、。对这类查询,我们可以使用等等。对这类查询,我们可以使用GROUP BY分组子句,按分组子句,按“部门部门”分组,同分组,同一部门的职工在一组,求出各部门的统计值。一部门的职工在一组,求出各部门的统计值。例例11 计算各系年龄大于计算各系年龄大于22岁的学生的人数。岁的学生的人数。SELECT 所属系所属系, COUNT(*) AS 人数人数 FROM 学生学生 WHERE YEAR(GETDATE()- YEAR(出生日期出生日期)=22GROUP BY 所属系所属系4. 分组分组66例例1 12 找出学生人数不足找出学生人数不足10人的系及其相应人的系及其相应的总人数。的总人数。 SELE

42、CT 所属系,所属系,COUNT(*) AS 人数人数 FROM 学生学生 GROUP BY 所属系所属系 HAVING COUNT(*)=34. 分组分组67当查询涉及两个或两个以上的表时,要用连当查询涉及两个或两个以上的表时,要用连接查询。连接分为内连接和外连接。接查询。连接分为内连接和外连接。5. 连接查询连接查询例例1 14 查询选修查询选修0002课成绩为课成绩为90分以上的学生的分以上的学生的学号和姓名。学号和姓名。SELECT 学生学生.学号学号, 姓名姓名FROM 学生学生 WHERE 学生学生.学号学号=选课选课 .学号学号 AND 选课选课 .课号课号=0002 AND 成

43、绩成绩=90684.2.3 数据更新语句数据更新语句 SQL中数据更新包括中数据更新包括插入数据插入数据、修改数修改数据据和和删除数据删除数据三条语句。与查询语句三条语句。与查询语句SELECT不同,数据更新语句一次只能不同,数据更新语句一次只能对一个表中数据进行更新操作。对一个表中数据进行更新操作。691.1.插入数据(插入数据(INSERT)有两种格式:有两种格式:格式格式1:INSERT INTO 表名表名(字段字段1 1,字段,字段2 2)VALUES ( (常量常量1 1,常量,常量2 2) ) 格式格式2:INSERT INTO 表名表名(字段字段1 1,字段,字段2 2) 子查询子查询4.2.3 数据更新语句数据更新语句70例例16 将将计计00-2班所有学生选修班所有学生选修“0001”课信息插入选课表。课信息插入选课表。 ( (对于必修课,一个班级的全部学生都选,对于必修课,一个班级的全部学生都选,可成批插入选课记录可成

温馨提示

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

评论

0/150

提交评论