数据库技术与应用第4章-关系数据库标准语言SQLppt课件_第1页
数据库技术与应用第4章-关系数据库标准语言SQLppt课件_第2页
数据库技术与应用第4章-关系数据库标准语言SQLppt课件_第3页
数据库技术与应用第4章-关系数据库标准语言SQLppt课件_第4页
数据库技术与应用第4章-关系数据库标准语言SQLppt课件_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

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

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

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

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

5、.1 不同版本不同版本SQL Server 2000对操作系统的要求对操作系统的要求4.1.2 SQL Server2000 的主要组件的主要组件 SQL Server2000的安装:的安装: 见见“SQL Server 2000安装课安装课件件4.1.2 SQL Server2000 的主要组件的主要组件 SQL Server2000的主要组件的主要组件:SQL Server主要组件主要组件1. 企业管理器企业管理器企业管理器是最主要的管理工具,可以完成企业管理器是最主要的管理工具,可以完成绝大部分数据库管理工作。主要为:绝大部分数据库管理工作。主要为: 注册和管理注册和管理SQL Serv

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

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

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

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

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

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

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

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

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

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

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

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

18、变长二进制类型表表4.1.2 常用的数据类型常用的数据类型(2) 在企业管理器中创建基本表在企业管理器中创建基本表选定数据库,在其下选定数据库,在其下“表项上打开快捷菜表项上打开快捷菜单单(如下图如下图), 选择选择“新建表菜单命令,进新建表菜单命令,进入其编辑器。如下图入其编辑器。如下图.4.1.3 创建数据库和基本表创建数据库和基本表三、三、 创建基本表创建基本表4.1.4 管理数据库和基本表管理数据库和基本表1. 删除数据库和基本表删除数据库和基本表选择要删除的数据库或表,按键盘上的选择要删除的数据库或表,按键盘上的“删除键,或打开快捷菜单,选择删除键,或打开快捷菜单,选择“删删除菜单命

19、令即可。(电脑操作演示)除菜单命令即可。(电脑操作演示)2. 修改数据库和基本表结构修改数据库和基本表结构(电脑操作演示见下页图。(电脑操作演示见下页图。4.1.4 管理数据库和基本表管理数据库和基本表“设计表项设计表项是修改表结构是修改表结构“打开表项是打开表项是浏览表数据浏览表数据3. 备份和恢复数据库备份和恢复数据库(1) 备份数据库:为数据库建立备份,以便备份数据库:为数据库建立备份,以便数据库发生故障后,用备份恢复数据库。数据库发生故障后,用备份恢复数据库。选择要备份的数据库,然后,选择要备份的数据库,然后,方法方法1:打开快捷菜单,选择:打开快捷菜单,选择“所有任务所有任务菜单项,

20、再选择菜单项,再选择“备份数据库备份数据库” 菜单命菜单命令。令。方法方法2:选择:选择“工具工具/备份数据库菜单命令。备份数据库菜单命令。(2) 恢复数据库:(电脑操作演示)恢复数据库:(电脑操作演示)4.1.4 管理数据库和基本表管理数据库和基本表4.1.4 管理数据库和基本表管理数据库和基本表4. 导入和导出数据导入和导出数据数据的导入和导出指将其他数据的导入和导出指将其他SQL Server服务服务器上数据库或其他数据源数据器上数据库或其他数据源数据(如如Excel工作工作表表)导入到本地导入到本地SQL Server服务器上的数据服务器上的数据库中库中,或反之。或反之。数据的导入和导

21、出利用数据的导入和导出利用SQL Server提供的数提供的数据转换服务据转换服务DTS来完成。来完成。 例如:将教学数据库数据导出到例如:将教学数据库数据导出到Excel表格表格中中 (电脑操作演示电脑操作演示)。4.1.4 管理数据库和基本表管理数据库和基本表4.1.4 管理数据库和基本表管理数据库和基本表4.1.4 管理数据库和基本表管理数据库和基本表 4.1.4 管理数据库和基本表管理数据库和基本表 4.1.4 管理数据库和基本表管理数据库和基本表4.2 SQL语言语言 SQL是是Structured Query Language的缩写的缩写, 它是它是1974年由年由Boyce和和C

22、hamberlin提出的,提出的,并在并在IBM公司公司San Jose 实验室研制的关系数实验室研制的关系数据库实验系统据库实验系统SYSTEM R上实现。上实现。 由于由于SQL功能丰富、语言简洁、易学易用,功能丰富、语言简洁、易学易用,很受用户欢迎。为此,很受用户欢迎。为此,80年代,计算机商家年代,计算机商家们纷纷推出各自支持们纷纷推出各自支持SQL的软件或者与的软件或者与SQL的接口软件。现在的接口软件。现在SQL已是世界上最广泛使已是世界上最广泛使用的数据库语言。用的数据库语言。4.2 SQL语言语言 SQL语言由三部分组成,包括数据定义语言语言由三部分组成,包括数据定义语言DDL

23、、数据操作语言数据操作语言DML、数据控制语言、数据控制语言DCL。也就是。也就是SQL语言具有数据查询、数据操纵、数据定义和语言具有数据查询、数据操纵、数据定义和数据控制功能。其中最重要的是数据查询功能。数据控制功能。其中最重要的是数据查询功能。 SQL语言是一种非过程化的语言。用语言是一种非过程化的语言。用SQL语句解语句解决一个问题时,用户只需要告诉系统要干什么就决一个问题时,用户只需要告诉系统要干什么就可以了,实现过程是由系统自动完成的。另外,可以了,实现过程是由系统自动完成的。另外,SQL语言还具有面向集合操作,语法简单,易学语言还具有面向集合操作,语法简单,易学易用等特点。易用等特

24、点。分类分类命令动词命令动词功能功能数据查询数据查询SELECT查询数据查询数据数据定义数据定义CREATE建立基本表、视图等建立基本表、视图等DROP建立基本表、视图等建立基本表、视图等ALTER修改基本表、视图等修改基本表、视图等数据操纵数据操纵INSERT插入记录插入记录UPDATE修改记录修改记录DELETE删除记录删除记录数据控制数据控制GRANT授权授权REVOKE回收权限回收权限表表4.2.1 常用的常用的SQL命令命令4.2 SQL语言语言4.2.1 数据定义数据定义 SQL的数据定义功能主要包括三部分:基的数据定义功能主要包括三部分:基本表的定义、视图的定义和索引的定义。本表

25、的定义、视图的定义和索引的定义。1. CREATE TABLE 语句语句表定义表定义CREATE TABLE 表名表名(列名列名1 数据类型数据类型 列级完整性约束条件列级完整性约束条件 ,列名,列名2 数据类型数据类型 列级完整性约束条列级完整性约束条件件 ,表级完整性约束条件,表级完整性约束条件 )定义表时,要给出,构成表的每个字段名及其数据类型和长度。主码、参照完整性定义、用户定义完整性。4.2.1 数据定义数据定义例:建立学生教学数据库的例:建立学生教学数据库的3个表。个表。S(Sno,Sname,Ssex,Sage,Sdept)SC(Sno,Cno,Grade)(仅以此表举例)(仅以

26、此表举例)C(Cno,Cname,Pcno,Credit)4.2.1 数据定义数据定义CREATE 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(Sno), FOREIGN KEY(Cno) REFERENCES C(Cno) )4.2.1 数据定义数据定义阐明:阐明:(1)字段级完整性约束字段级完整性约束

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

28、。 CHECK子句:实现用户定义完整性约束。子句:实现用户定义完整性约束。4.2.1 数据定义数据定义CREATE 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) ,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Cno) REFERENCES C(Cno) )注:完整性约束可以使用注:完整性约束可以使用CONSTRAIN

29、T关键关键字命名。否则系统将自动为每个约束命名。字命名。否则系统将自动为每个约束命名。4.2.1 数据定义数据定义2. ALTER TABLE语句语句表的修改表的修改ALTER TABLE 表名表名 ADD 新列名新列名 数据类型数据类型 完整性约束完整性约束 DROP 完整性约束名完整性约束名 DROP COLUMN 列名列名 ALTER COLUMN 列名列名 数据类型数据类型新增的属性不能定义为新增的属性不能定义为“NOT NULLNOT NULL因为因为关系的原来元组在新列上的值取空值。关系的原来元组在新列上的值取空值。4.2.1 数据定义数据定义例例1:向学生表增加:向学生表增加“入

30、学时间字段,入学时间字段,其数据类型为日期型;将其数据类型为日期型;将“出生日期的出生日期的数据类型改为数据类型改为“日期型日期型”;删除;删除“所属系所属系字段字段 。ALTER TABLE 学生学生 ADD 入学时间入学时间 DatetimeALTER TABLE 学生学生 ALTER COLUMN 出生日期出生日期 DatetimeALTER TABLE 学生学生 DROP COLUMN 所属系所属系4.2.1 数据定义数据定义3. DROP TABLE语句语句删除基本表删除基本表当某个表不再需要时,可以删除。当某个表不再需要时,可以删除。 一般格式:一般格式: DROP TABLE 表

31、名表名例:例: DROP TABLE S 4.2.1 数据定义数据定义4. 建立索引建立索引 当数据表中记录很多时,查询速度当数据表中记录很多时,查询速度成为一个突出的问题。若要提高查询成为一个突出的问题。若要提高查询速度,可以在涉及的字段上建立索引。速度,可以在涉及的字段上建立索引。 建立索引使用建立索引使用CREATE命令。命令。语法格式为:语法格式为: CREATE UNIQUE CLUSTER INDEX ON , 4.2.1 数据定义数据定义 阐明:阐明: 若查询中涉及到索引字段时,系统会自动若查询中涉及到索引字段时,系统会自动选择合适的索引,大大提高查询速度。选择合适的索引,大大提

32、高查询速度。 索引一经建立,就由系统使用和维护它,索引一经建立,就由系统使用和维护它,不需要用户干预。当增加、修正、删除数据不需要用户干预。当增加、修正、删除数据表中记录时,系统会自动维护索引。表中记录时,系统会自动维护索引。 维护索引需要花费一些时间,故建立多少维护索引需要花费一些时间,故建立多少索引,需要权衡后处理。索引,需要权衡后处理。 UNIQUE:每一个索引值只对应惟一的数:每一个索引值只对应惟一的数据记录。据记录。4.2.1 数据定义数据定义 CLUSTER:建立的索引是聚簇索引。所谓聚簇:建立的索引是聚簇索引。所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一索引是指索引项的顺序

33、与表中记录的物理顺序一致的索引组织。在一个表上只能建立聚簇索引,致的索引组织。在一个表上只能建立聚簇索引,因此应在最常查询的列上建立聚簇索引以提高查因此应在最常查询的列上建立聚簇索引以提高查询效率。询效率。 次序是指次序是指ASC或或DESC,默认值为,默认值为ASC。5删除索引删除索引 DROP INDEX 4.2.1 数据定义数据定义阐明:阐明:1一个一个SELECT语句可由五个子句组成,但只有语句可由五个子句组成,但只有前两个子句是必不可少的,其它子句可以缺省。前两个子句是必不可少的,其它子句可以缺省。4.2.2 SQL查询查询SELECT ALL|DISTINCT 目标列表目标列表FR

34、OM 表名表名1 ,表名,表名2 WHERE 条件表达式条件表达式1 GROUP BY 列名列名1 HAVING 条件表达式条件表达式2 ORDER BY 列名列名2 ASC | DESC ;2SELECT子句告诉系统查找什么数据。子句告诉系统查找什么数据。所要的数据可以是表的属性、表达式或常所要的数据可以是表的属性、表达式或常量。量。3FROM子句告诉系统从哪里查找数据。子句告诉系统从哪里查找数据。即给出查询涉及的一个或多个表即给出查询涉及的一个或多个表(基本表基本表, 视图视图, 查询表查询表)。4WHERE子句给出查询条件。只有满足子句给出查询条件。只有满足条件的元组才是查询所要的。条件

35、的元组才是查询所要的。4.2.2 SQL查询查询5GROUP BY子句用于分组查询,它将结果按子句用于分组查询,它将结果按的值进行分组,每组的元组在该属性列的值进行分组,每组的元组在该属性列上值相等。上值相等。 HAVING短语用来指定组应该满足的条件,只有短语用来指定组应该满足的条件,只有满足条件的组才予输出。每组的数据作为查询满足条件的组才予输出。每组的数据作为查询结果的一行,有多少组,查询结果表就有多少结果的一行,有多少组,查询结果表就有多少行。行。6如果有如果有ORDER子句,则结果表还要按子句,则结果表还要按的值的升序或降序排序。的值的升序或降序排序。 4.2.2 SQL查询查询以教

36、学数据库为例介绍该命令的应用。以教学数据库为例介绍该命令的应用。学生学生 ( (学号学号, ,姓名姓名, ,性别性别, , 出生日期出生日期, , 班级班级, , 所属系所属系, ), )课程课程 ( (课号课号, ,课名课名, ,学分学分, ,学时学时, , 开课系开课系) )选课选课 ( (学号学号, , 课号课号, , 成果成果, ), )4.2.2 SQL查询查询1. 选择记录选择记录例例1 1 查询年龄为空值的学生信息。查询年龄为空值的学生信息。例例2 查询在查询在19781983年之间出生的学生信息年之间出生的学生信息(不在不在之间之间) SELECT * FROM 学生学生 WH

37、ERE YEAR(出生日期出生日期) BETWEEN 1978 AND 1982SELECT * FROM 学生学生 WHERE YEAR(GETDATE()-YEAR(出生日期出生日期) IS NULLGetdate(): 系统函数,返回系统当前日期。系统函数,返回系统当前日期。YEAR(日期日期):系统函数,前往:系统函数,前往“日期中的年份。日期中的年份。2. 选择字段选择字段例例3 查询选修了查询选修了001课且有成绩的学生学号。课且有成绩的学生学号。SELECT 学号学号 FROM 选课选课 WHERE 课号课号=001 And 成果成果 IS NOT NULL例例4 4 查询有不及

38、格成绩的学生学号。查询有不及格成绩的学生学号。SELECT DISTINCT SELECT DISTINCT 学号学号 FROM FROM 选课选课 WHERE WHERE 成果成果60 20) 20 ORDER BY ORDER BY 学号学号 例例8 8 查询学生选课信息,将结果按学号升序排列,查询学生选课信息,将结果按学号升序排列,学号相同时再按照成绩降序排列显示。学号相同时再按照成绩降序排列显示。SELECT SELECT * * FROM FROM 选课选课ORDER BY ORDER BY 学号学号, , 成果成果 DESCDESC 合计函数合计函数 SELECT子句中的目标列可以

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

40、SELECT COUNT( DISTINCT 学号学号) ) FROM FROM 选课选课 例例10 10 查询选查询选002002课的学生人数以及该课的最课的学生人数以及该课的最高、最低成绩、平均成绩。高、最低成绩、平均成绩。SELECT COUNT( SELECT COUNT( * *) AS ) AS 人数人数, MAX(, MAX(成果成果) ) ASAS最高成绩最高成绩, MIN(, MIN(成果成果) AS ) AS 最低成绩最低成绩, , AVG(AVG(成果成果) ) AS AS 平均成绩平均成绩 FROM FROM 选课选课WHERE WHERE 课号课号=0002=0002

41、4. 分组分组实际中我们常常会遇到这样的查询要求,如实际中我们常常会遇到这样的查询要求,如“查询每个部门的工资总和、平均工资和职查询每个部门的工资总和、平均工资和职工总数等等。对这类查询,我们可以使用工总数等等。对这类查询,我们可以使用GROUP BYGROUP BY分组子句,按分组子句,按“部门分组,同一部门分组,同一部门的职工在一组,求出各部门的统计值。部门的职工在一组,求出各部门的统计值。例例11 11 计算各系年龄大于计算各系年龄大于2222岁的学生的人数。岁的学生的人数。SELECT SELECT 所属系所属系, COUNT(, COUNT(* *) AS ) AS 人数人数 FRO

42、M FROM 学生学生 WHERE YEAR(GETDATE()- WHERE YEAR(GETDATE()- YEAR( YEAR(出生出生日期日期)=22)=22GROUP BY GROUP BY 所属系所属系4. 分组分组例例12 12 找出学生人数不足找出学生人数不足1010人的系及其相应人的系及其相应的总人数。的总人数。 SELECT SELECT 所属系,所属系,COUNT(COUNT(* *) AS ) AS 人数人数 FROM FROM 学生学生 GROUP BY GROUP BY 所属系所属系 HAVING COUNT(HAVING COUNT(* *)10)=3)=34.

43、分组分组当查询涉及两个或两个以上的表时,要用连当查询涉及两个或两个以上的表时,要用连接查询。连接分为内连接和外连接。接查询。连接分为内连接和外连接。5. 连接查询连接查询例例14 14 查询选修查询选修00020002课成绩为课成绩为9090分以上的学生的学分以上的学生的学号和姓名。号和姓名。SELECT SELECT 学生学生. .学号学号, , 姓名姓名FROM FROM 学生学生 WHERE WHERE 学生学生. .学号学号= =选课选课 . .学号学号 AND AND 选课选课 . .课号课号=0002 AND =0002 AND 成果成果=90=90例例15 15 查询至少选修了查

44、询至少选修了00010001、00020002两门课的两门课的学生学号。学生学号。SELECT SC1.SELECT SC1.学号学号FROM FROM 选课选课 AS SC1 , AS SC1 , 选课选课 AS SC2 AS SC2 WHERE SC1.WHERE SC1.学号学号=SC2.=SC2.学号学号 AND AND SC1.SC1.课号课号=0001 AND SC2.=0001 AND SC2.课号课号=0002=0002留意:自身连接时,要为表起别名。留意:自身连接时,要为表起别名。ASAS可省可省写。写。5. 连接查询连接查询4.2.3 数据更新语句数据更新语句 SQL中数据更新包括插入数据、修改数中数据更新包括插入数据、修改数据和删除数据三条语句。与查询语句据和删除数据三条语句。与查询语句SELECT不同,数据更新语句一次只能不同,数据更新语句一次只能对一个表中数据进行更新操作。对一个表中数据进行更新操作。1.1.插入数据插入数据INSERTINSERT)有两种格式:有两种格式:格式格式1:INSERT INTO 表名表名(字段字段1,字段,字段2)VALUES (常量常量

温馨提示

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

评论

0/150

提交评论