第3章 SQL数据操纵语言
第3章 SQL语言

SELECT SNO, CNO, SCORE FROM SC WHERE CNO=‘C1’ OR CNO= ‘C2’ 利用“NOT IN”可以查询指定集合外的元组。 例11 查询没有选修C1,也没有选修C2的学生的学号、课 程号和成绩。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO NOT IN(‘C1’, ‘C2’) 等价于: SELECT SNO, CNO, SCORE FROM SC WHERE CNO!=‘C1’ AND CNO!= ‘C2’
注意:函数SUM和AVG只能对数值型字段进行计算。
23
例16 求选修C1号课程的最高分、最低分及之间相差的分 数 SELECT MAX(SCORE) AS MaxScore, MIN(SCORE) AS MinScore, MAX(SCORE) - MIN(SCORE) AS Diff FROM SC WHERE (CNO = 'C1') 例17 求计算机系学生的总数 SELECT COUNT(SNO) FROM S WHERE DEPT='计算机'
1. SQL语言类似于英语的自然语言,简洁易用。 2. SQL语言是一种非过程语言,即用户只要提出“干什 么”即可,不必管具体操作过程,也不必了解数据的 存取路径,只要指明所需的数据即可。 3. SQL语言是一种面向集合的语言,每个命令的操作对 象是一个或多个关系,结果也是一个关系。 4. SQL语言既是自含式语言,又是嵌入式语言。可独立 使用,也可嵌入到宿主语言中。 自含式语言可以独立使用交互命令,适用于终端 用户、应用程序员和DBA; 嵌入式语言使其嵌入在高级语言中使用,供应用 程序员开发应用程序。
10
例1 查询全体学生的学号、姓名和年龄。 SELECT SNO, SN, AGE FROM S 例2 查询学生的全部信息。 SELECT * FROM S 用‘ * ’表示S表的全部列名,而不必逐一列出。
第3章:关系数据库标准语言SQL

例6:建立一个“课程”表Course. :建立一个“课程” Create table Course (Cno Cpno Char(4) Primary Key, , Char (4) , Cname Char (40) , Ccredit Smallint, , Foreign Key (Cpno) References Course(Cno) );
不论基本表中原来是否已有数据, 不论基本表中原来是否已有数据 , 新增加 的列一律为空值。 的列一律为空值。
例9:将年龄的数据类型改为整型。
ALTER TABLE Student Alter Column Sage Int; ;
修改原有的列定义有可能会破坏已有数据。 修改原有的列定义有可能会破坏已有数据。
group by:此短语将查询结果按某一列或某几 :
列的值进行分组。Having子句用于与group 列的值进行分组。Having子句用于与group by 子句用于与 子句配合使用,用于说明分组条件。 子句配合使用,用于说明分组条件。
查询分类
单表查询 连接查询 嵌套查询 集合查询
CREATE TABLE Student (Sno Ssex Sage Sdept
CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, ,
CHAR(1) , INT, , CHAR(15)); ;
修改
Alter table <表名 表名> 表名
Add <新列名> <新列类型> (列宽度)[完整性约束] Drop Column <列名>|<完整性约束名> Alter Column <列名> <列类型> (列宽度) P87例8,例9,例10 , ,
第3章 关系数据库标准语言SQL_第4版(1-3)

学分 Ccredit 4 2 4 3 4 2 4
SC表
学号 Sno
200215121 200215121 200215121 200215122 200215122
课程号 Cno
1 2 3 2 3
成绩 Grade
92 85 88 90 80
§3.3 数据定义
SQL的数据定义功能: 模式定义、表定义、视图 和索引的定义
被参照建立一个“学生选课”表SC CREATE TABLE SC Cno CHAR(4), Grade SMALLINT, 列级完整性约束条件, Sno是外码,被参照表是 Student
(Sno CHAR(9) REFERENCES Student(Sno) , 主码由两个属性构 成,必须作为表级 完整性进行定义
用户数据库投入运行后,可根据需要随时逐步修 改模式,不影响数据的运行。 数据操作符统一
2.高度非过程化
非关系数据模型的数据操纵语言“面向过程”,
必须制定存取路径
SQL只要提出“做什么”,无须了解存取路径。 存取路径的选择以及SQL的操作过程由系统自动 完成。
3.面向集合的操作方式
SQL
数据流(Data) 元数据流(Meta Data) 对应于视图和部 分基本表
视图1
视图2
外模式
对应于基本表
基本表1 基本表2 基本表3 基本表4
数据词典
(元数据)
模式
对应于存储 文件
存储文件1 存储文件2 内模式
SQL的基本概念(续)
基本表(BASE TABLE):
是独立存在的表, 一个关系对应一个基本表,
嵌入式语言:嵌入高级语言如C,COBOL, FORTRAN,PB等
第3章-结构化查询语言ppt课件

1. 数据操纵语言
数据操纵语言(Data Manipulation Language,DML)是SQL语言中用于查询和增删修改表数据的语句,主要语句如下:
SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT - 向数据库表中插入数据
四、SQL能做什么?
SQL 可从数据库取回数据 SQL 可在数据库中插入新的纪录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限
Numeric(6,2)
否
否
工作时数
任务(ASSIGNMENT)表结构
列名
类型
键
是否非空
备注
DepartmentName
Text(35)
主键是Biblioteka 部门名称BudgetCode
Text(30)
否
是
预算编号
OfficeNumber
Text(15)
否
是
办公室编号
Phone
Text(12)
否
是
办公电话
列名
类型
PROJECT表结构
列名
类型
键
是否非空
备注
ProjectID
Int
主键,外键
是
复合键,项目编号
EmployeeNumber
Int
主键,外键
是
复合键,雇员编号
HoursWorked
Numeric(6,2)
数据库第三章习题

第3章 SQL语言习题一、单项选择题1.SQL语言是()的语言,易学习。
A.过程化 B.非过程化 C.格式化 D.导航式2.SQL语言是()语言。
A.层次数据库B.网络数据库C.关系数据库D.非数据库3.SQL语言具有()的功能。
A.关系规范化、数据操纵、数据控制B数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵4.关于SQL语言,下列说法正确的是()。
A 数据控制功能不是SQL语言的功能之一B SQL采用的是面向记录的操作方式,以记录为单位进行操作C SQL 是非过程化的语言,用户无须指定存取路径D SQL作为嵌入式语言语法与独立的语言有较大差别5.对表中数据进行删除的操作是()。
D.DELETE A.DROP B.ALTERC.UPDATE6.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。
其中最重要的,也是使用最频繁的语句是()。
A.SELECTB.INSERTC.UPDATED.DELETE7.SQL语言具有两种使用方式,分别称为交互式SQL和()。
解释式SQL A.提示式SQL B.用户式SQL C.嵌入式SQLD.8.SQL语言中,实现数据检索的语句是()。
C.UPDATEB.INSERTD.DELETE A.SELECT9.下列SQL语句中,修改表结构的是()。
B.CREATEC.UPDATE D .DELETE A.ALTER10.在SQL中,用户可以直接操作的是()。
B 视图 D 基本表和视图C 存储文件 A 基本表11.在SQL的查询语句中,对应关系代数中“投影”运算的语句是()。
B FROM A WHEREC SELECTD HAVING12.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用()。
B GROUP BYC ORDER BY A WHERED HAVING13.SQL中,与“NOT IN”等价的操作符是()。
数据库第3章

使用DROP子句删除指定的完整性约束条件 【例3-7】 删除student表学生姓名必须取惟一值的约束 条件。 ALTER TABLE student DROP UNIQUE(name); 使用MODIFY子句修改基本表的列定义 【例3-8】 将student 表name列的数据类型改为定长字符 串型。 ALTER TABLE student MODIFY name char(8) NOT NULL; 注意: (1)修改列定义时,要将原来的列级约束条件写上,否则 原有的列级约束会不起作用。 (2)修改列定义时,有可能会破坏已有的数据,应事先作 好备份工作。 (3)SQL未提供删除属性列的语句,只能采取间接的方法
3.2 数据定义
表3-1 SQL的数据定义语句 操作对象 数据库 操作方式 创建语句 CREATE DATABASE CREATE TABLE 删除语句 DROP DATABASE 修改语句 ALTER DATABASE
基本表 索引
视图
DROP
TABLE INDEX
VIEW
ALTER TABLE
CREATE INDEX DROP
3.2.4 建立索引 索引的概念 索引是建立在列上的一种数据库对象,它 对表中的数据提供逻辑顺序,当在数据库表中 搜索某一行时,可以通过使用索引来找到它的 物理位置。索引建立后,什么时候使用索引以 及使用哪一个索引(当有多个索引存在时), 由DBMS内部根据情况自行决定,不需要人员干 预。索引是动态的,每当数据库表的数据更新 一次,相应的索引也随之更新。
CREATE VIEW DROP
3.2.1 数据库的创建与删除 创建数据库 SQL使用命令CREATE DATABASE创建数据库,其一般语法 如下: CREATE DATABASE <数据库名>; 【例3-1】创建一个简单数据库。 CREATE DATABASE MyDb; 删除数据库 SQL使用命令DROP DATABASE删除一个或多个数据库,其 一般语法如下: DROP DATABASE <数据库名1> [,<数据库名2>][,…]; 【例3-2】删除数据库MyDb。 DROP DATABASE MyDb;
《数据库原理及应用》教学课件 第三章SQL基础

第三章 SQL基础
本章导读
结构化查询语言(Structured Query Language,SQL) 是关系数据库的标准语言,是集数据查询、数据操纵、数 据定义与数据控制于一体的综合性语言。在关系数据库 中,可以通过它完成数据库内的所有操作。本章首先介绍 SQL的发展及特点,然后通过实例介绍数据库和数据表的 基本操作。
④ MODIFY FILE:指定要修改的文 件。
⑤ ADD FILEGROUP:向数据库中 添加文件组。
⑥ REMOVE FILEGROUP:从数据 库中删除文件组。若文件组不为空,则 无法删除。
⑦ “[ , … N]”表示在前一语句后可 接N个同格式语句。
⑧ “|”表示用其隔开的语句在一次 命令中不可同时选用。
20
3.2 数据库基本操作
3.2.4 修改数据库
【例3-2】 将数据库 test 的名称改为 test1。 ALTER DATABASE test MODIFY NAME=test1
【例3-3】 将数据库SRS的日志文件最大容量改为100 MB。
ALTER DATABASE SRS MODIFY FILE (NAME=SRS_Data, MAXSIZE=100MB)
系列 1, 锐系普列PP2T, 锐, 2普.8 PPT, 2.8
日志文件由一系列日志记录组成,它 记录了数据库的更新情况和用户对数据库 的修改操作等。
当数据库发生损坏时,可以通过日志 文件分析出错原因;当数据丢失时,也可 以使用日志文件恢复数据库。
16
3.2 数据库基本操作
3.2.3 创建数据库
02 用SSMS创建数据库
在 SSMS 中可按如下步骤创建数据库。
SQL语言简介

SQL语言简介一、 SQL简介SQL的全称是“结构化查询语言(Structured Query Language)”,最早是IBM的圣约瑟研究实验室为其关系型数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,得到了广泛的应用。
目前,SQL语言已被确定为关系型数据库系统的国际标准,被绝大多数商品化关系型数据库系统采用,如Oracle 、Sybase、DB2、Informix、SQL Server这些数据库管理系统都支持SQL语言作为查询语言。
结构化查询语言SQL是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系型数据库标准语言。
在SQL语言中不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。
注:可以把“SQL”读作“sequel[′si:kw l]”,也可以按单个字母的读音读作S-Q-L。
两种发音都是正确的,每种发音各有大量的支持者。
二、SQL的发展历程SQL语言是1974年提出的,由于它具有功能丰富、使用方式灵活、语言简洁易学等突出优点,在计算机工业界和计算机用户中倍受欢迎。
1986年10月,美国国家标准局(ANSI)的数据库委员会批准了SQL作为关系型数据库语言的美国标准。
1987年6月国际标准化组织(ISO)将其采纳为国际标准。
这个标准也称为“SQL86”。
随着SQL标准化工作的不断进行,相继出现了“SQL89”、“SQL2”(1992年)和“SQL3”(1993年)。
SQL成为国际标准后,对数据库以外的领域也产生很大影响,不少软件产品将SQL语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。
三、SQL数据库体系结构SQL数据库的体系结构基本上也是三级模式。
SQL术语与传统的关系模型术语不同。
数据库系统原理教程课后习题及答案(第三章)汇编

第3章关系数据库标准语言SQL1 .试述sQL 语言的特点。
答:(l)综合统一。
sQL 语言集数据定义语言DDL 、数据操纵语言DML 、数据控制语言DCL 的功能于一体。
(2)高度非过程化。
用sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及sQL 语句的操作过程由系统自动完成。
(3)面向集合的操作方式。
sQL 语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。
sQL 语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。
2 .试述sQL 的定义功能。
sQL 的数据定义功能包括定义表、定义视图和定义索引。
SQL 语言使用cREATE TABLE 语句建立基本表,ALTER TABLE 语句修改基本表定义,DROP TABLE 语句删除基本表;使用CREATE INDEX 语句建立索引,DROP INDEX 语句删除索引;使用CREATE VIEW 语句建立视图,DROP VIEW 语句删除视图。
3 .用sQL 语句建立第二章习题5 中的4 个表。
答:对于S 表:S ( SNO , SNAME , STATUS , CITY ) ;建S 表:CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4));对于P 表:P ( PNO , PNAME , COLOR , WEIGHT );建P 表:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2),WEIGHT INT);对于J 表:J ( JNO , JNAME , CITY);建J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8),CITY C(4))对于sPJ 表:sPJ ( sNo , PNo , JNo , QTY);建SPJ 表:SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2),QTY INT))4.针对上题中建立的4 个表试用sQL 语言完成第二章习题5 中的查询。
SQL语言的数据操纵语句包括SELECT

第三章SQL语言一、选择题1. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE 等。
其中最重要的,也是使用最频繁的语句是()。
A. SELECTB. INSERTC. UPDATED. DELETE2. 在视图上不能完成的操作是()。
A. 更新视图B. 查询C. 在视图上定义新的表D. 在视图上定义新的视图3. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制4. SQL语言中,删除一个视图的命令是()。
A.DELETEB.DROPC.CLEARD.REMOVE5. 在SQL语言中的视图VIEW是数据库的()。
A. 外模式B. 模式C. 内模式D. 存储模式6. 下列的SQL语句中,()不是数据定义语句。
A. CREATE TABLEB. DROP VIEWC. CREATE VIEWD. GRANT7. 若要撤销数据库中已经存在的表S,可用()。
A. DELETE TABLE SB. DELETE SC. DROP TABLE SD. DROP S8. 若要在基本表S中增加一列CN(课程名),可用()。
A.ADD TABLE S(CN CHAR(8))B.ADD TABLE S ALTER(CN CHAR(8))C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S (ADD CN CHAR(8))9. 学生关系模式S(Sno,Sname,Ssex,Sage),S的属性分别表示学生的学号、姓名、性别、年龄。
要在表S中删除一个属性“年龄”,可选用的SQL语句是()。
A. DELETE Sage from SB. ALTER TABLE S DROP SageC. UPDATE S SageD. ALTER TABLE S ‘Sa ge’10. 在SQL语言中,子查询是()。
第3章 SQL语言基础及数据定义功能

Create Table SC (学号 char(7) References S(学号), 课程号 char(2) Not Null, 成绩 smallint Check(成绩>=0), Primary Key(学号, 课程号) Foreign Key(课程号) References C(课程号) ) (2)删除数据表 格式:Drop Table 表名, … 功能:删除数据表。 例:删除数据表text,语句为 Drop Table text
(3)删除数据库 格式:Drop DataBase 数据库名 功能:删除指定数据库。 例:删除学生管理数据库student 。 Drop DataBase student 3.3.1 数据表建立和删除 (1)建立数据表 格式:Create Table 数据表名 (列名 类型 [完整性约束] ,… [,完整性约束])
SQL语言的命令动词 SQL功能
数据查询 数据定义 数据操纵 数据控制 SELECT CREATE、DROP、ALTER INSERT、UPDATE、DELETE GRANT、REVOKE
命令动词
P27表3-1
3.2 SQL数据类型
在定义表结构时,每个字段都要指明它的数据类 型,SQL提供了丰富的数据类型。 每个数据类型都有它的特点和取值范围,用户使 用时可以根据实际需要进行选择。 3.2.1 数值型 1. 准确型 指在计算机中能精确存储的数据类型。 有bigint、int、smallint、tinyint、bit、nume ric(p,q)、decimal(p,q)等。
3.3.2 修改表结构 格式:Alter Table 表名 [Alter Column 列名 新类型 |Add 新列名 类型 [完整性约束] |Drop Column 列名] 功能:修改列类型、添加新列、删除列。 例2:为表SC添加新列修课类别。 Alter Table SC Add 修课类别 char(4) 例3:修改表SC中修课类别的类型。 Alter Table SC Alter Column 修课类别 char(6)
第3章--SQL概述3.1-3.3(2017) (1)

17
2.课程Course表
课程号 课程名 先行课 Cno Cname Cpno 1 数据库 5 2 数学 3 信息系统 1 4 操作系统 6 5 数据结构 7 6 数据处理 7 PASCAL语言 6 学分 Ccredit 4 2 4 3 4 2 4
18
3.学生选课SC表
学 号 Sno 2015121 2015121 2015121 2015122 2015122
SQL/86 SQL/89(FIPS 127-1) SQL/92 SQL99 宿主语言绑定 SQL2003 SQL2008 SQL2011
6
3.1 SQL概述(续)
SQL(Structured Query Language)结构化查询语言,是关系数据 库的标准语言。 SQL功能不仅是查询,包括数据库模式创建、数据插入与修 改、数据库安全性完整性定义与控制等一系列功能。 自标准化后大多数厂家均用其作为共同的数据存取语言和 接口,SQL成为数据库领域的主流语言。 几乎所有DBMS软件都支持SQL,同时对SQL基本命令集进行了 不同程度的扩充和修改,可以支持标准之外的一些功能特 性。 表 3.1 SQL 语言的动词
例:域关系演算--查询选修2号课程的学生名字
Student Sno 95001 Sc Sno 95001 Sname P.李勇 Cno 2
9
Ssex
Sage
Sdept
Grade
SQL的主要特点包括: 1.综合统一
集数据定义语言(DDL),数据操纵语言(DML),数据控 制语言(DCL)功能于一体。 可以独立完成数据库生命周期中的全部活动:
[例3.4] DROP SCHEMA TEST CASCADE; 删除模式TEST 同时[例3]中该模式中定义的表TAB1也被删除
第03章-关系数据库标准语言SQL

语句 CREATE
功能 创建数据库或数据库对象
ALTER
修改数据库或数据库对象
DROP
删除数据库或数据库对象
说明 不同数据库对象参数不同 不同数据库对象参数不同 不同数据库对象参数不同
SQL的组成(续) ❖ 数据操纵语言DML(Data Manipulation Language):用于执行对数据库检索和更新。
定义基本表(续)
❖ 表的完整性约束条件 创建表时可指定表的完整性约束条件,也称为约束: 列级完整性约束条件 完整性约束条件涉及到该表的当前一个属性列 表级完整性约束条件 完整性约束条件涉及到该表的一个或多个属性列
➢ RDBMS自动检查对表的操作是否违背表的完整性约束条件
学生表Student
数据库 模式
表 视图
模式 表
索引
定义模式(续)
❖ 基本格式: CREATE SCHEMA [<模式名>] AUTHORIZATION <用户名> CREATE、SCHEMA 、AUTHORIZATION为保留字 保留字习惯使用大写 CREATE SCHEMA 为定义模式的语句 <模式名>为所创建的模式的名称 尖括号表示用户提供的参数 方括号表示参数可选 AUTHORIZATION <用户名> 子句用于指定模式的所有者 <用户名>指定一个用户
❖ 也可以使用带指定参数值的命令创建数据库
3.3 数据定义
3.3.1 模式的定义与删除 3.3.2 基本表的定义、删除与修改 3.3.3 索引的建立与删除
定义模式
❖ 模式(SCHEMA) 定义模式实际上是定义了一个命名空间(或容器)。 在这个空间中可以定义该模式包含的数据库对象 例如基本表、视图、索引、存储过程等。 定义模式能更好的管理数据库中的对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机与信息学院
第3章 SQL数据操纵语言
3
第3章 数据操纵语言
3.1.3 使用WHERE子句指定行
使用比较运算符>、<、=、>=、<=、!=、<>
例4 查询定购数量大于10的定单信息。
逻辑运算符AND、OR、NOT
例5 查询要求到货日期在98-5-6或者是98-5-10号
计算机与信息学院
第3章 SQL数据操纵语言
13
计算机与信息学院
第3章 SQL数据操纵语言
12
第3章 数据操纵语言
1.内连接(Inner join)
内连接也叫自然连接,它是组合两个表的常用 方法。自然连接将两个表中的列进行比较,将 两个表中满足连接条件的行组合起来,作为结 果。语法: SELECT 列 FROM 表1 [inner] JION 表2 ON 表1.列=表2.列 试将上面几例改为内联接查询。
❖MAX([DISTINCT | ALL] <列名>)求一列值中 的最大值
❖MIN([DISTINCT | ALL] <列名>)求一列值中 的最小值
❖ 如果指定了DISTINCT,则表示在计算时要取
消指定列中的重复值。
第3章 SQL数据操纵语言
8
计算机所有定单的总交易额。
3.1.4 格式化结果集
❖1 使用AS更改列名
例10 查询所有订单的订单号、产品号和订购该 产品的金额。
❖2使用ORDER BY排序数据
语法:ORDER BY 排序表达式1 [ASCENDING | DESCENDING][,排序表达 式2 [ASCENDING | DESCENDING]…]
例11 对上例查询的结果按订单号排序,同一订 单号的按金额降序排序。
例14 查询产品号为’11’的产品交易发生 的次数和总交易额,平均、最高、最低 交易额。
计算机与信息学院
第3章 SQL数据操纵语言
9
第3章 数据操纵语言
3.1.6 对查询结果分组和筛选
❖1 分组查询结果
GROUP BY子句将查询结果进行分组,分组原 则是按分组列名表的值相等的分为一组。分组 的目的是为了细化集函数的作用对象。如果未 对查询结果分组,则集函数将作用于整个查询
使用[NOT] LIKE 通配符%,代表任意数量的任意字符,?代
表一个任意字符。
例8 查询产品名中含有“Tofu”的所有产品信 息。
❖ 判断空值的查询条件 IS [NOT] NULL ISNULL()函数 例9 查询传真号为空值的所有供应商的信息。
计算机与信息学院
第3章 SQL数据操纵语言
5
第3章 数据操纵语言
3.1.5 使用集函数
❖COUNT(* | [DISTINCT | ALL]<列名>)统计元 组(*)或统计一列中值(列名)的个数
❖SUM([DISTINCT | ALL] <列名>)计算一列值 的总和(该列必须为数值型)
❖AVG([DISTINCT | ALL] <列名>)计算一列值 的平均值(该列必须为数值型)
第三章 SQL数据操纵语言
❖3.1 数据查询 ❖3.2 数据更新
❖ 如没有特别说明本节的所有查询都在 Northwind数据库中进行。
计算机与信息学院
第3章 SQL数据操纵语言
1
第3章 数据操纵语言
3.1 数据查询
❖3.1.1 SELECT语句结构
SELECT <字段列表表达式> [INTO 表名]
计算机与信息学院
第3章 SQL数据操纵语言
6
第3章 数据操纵语言
❖3 使用TOP返回指定行数
使用TOP N(N为整数)返回指定的行,或使用 TOP N PERCENT返回满足查询条件的总记录 的百分比。
例12 查询单价最高的5种商品。
计算机与信息学院
第3章 SQL数据操纵语言
7
第3章 数据操纵语言
的定单信息。
使用[NOT] BETWEEN … AND …
BETWEEN … AND …是一个闭区间。
例6 查询单价在15到20之间的所有产品的信息。
使用[NOT] IN
例7 查询所在州为‘TN’,‘OR’,‘MI’之一
的供应商的信息。
计算机与信息学院
第3章 SQL数据操纵语言
4
第3章 数据操纵语言
计算机与信息学院
第3章 SQL数据操纵语言
2
第3章 数据操纵语言
3.1.2 简单查询
最简单的查询只由SELECT、FROM两个子 句构成。
❖ 1 即指定字段列表表达式,每个之间用逗号 分开,可以使用星号(*)检索所有列。
❖ 例1 查询所有产品的基本信息。 例2 查询所有供应商的名称、所在城市和州。
❖1 使用WHERE条件联接
例19 查询1998年每个月每个员工接收订单的 总额。
例20 查询销往每个国家的总金额。 例21 查询每份订单的公司名称、产品名称。
❖2 使用JOIN联接
FROM <数据源表或视图> [[INNER | LEFT OUTER | RIGHT OUTER | FULL OUTER| CROSS ] JOIN <表名> ON <联接条件>…]
结果,即整个查询结果只有一个函数值 。
例15 查询每个定单的交易额。
例16 查询每种产品的交易发生的次数和交易 额,交易量。
计算机与信息学院
第3章 SQL数据操纵语言
10
第3章 数据操纵语言
❖2 对分组结果筛选
使用HAVING短语,使返回的结果只包含满足 条件的组。HAVING短语只能放在GROUP BY分组子句中,和分组一起使用。
例17 查询交易额超过1000元的定单。
例18 查询单次交易量超过10且交易次数超过 20次的产品。
什么时候该用HAVING筛选条件?其实很简单: 要使用集函数的统计值的就应该用HAVING筛 选,在WHERE子句不能使用集函数。
计算机与信息学院
第3章 SQL数据操纵语言
11
第3章 数据操纵语言
3.1.7 联接查询
FROM <表名或视图名列表>
[WHERE <条件表达式>]
[GROUP BY <分组列表> [HAVING <筛选条件 >]]
[ORDER BY <关键字表达式>[ASC|DESC][, < 关键字表达式>[ASC|DESC] …]]
[TOP <数值表达式>[PERCENT]]
[UNION [ALL]<SELECT 命令>]