第四章关系数据库语言
(3)查询语句中的投影操作
在SELECT子句中可以决定哪些列出现在结果关
系中,这相当于关系代数中的投影运算。
具体办法:在SELECT子句之后不是写“*”,而
是根据需要列出在FROM子句中声明的诸关系的属性。
例:
SELECT xh,xm
//选定字段
FROM stu_info
//选定数据库中的表
WHERE xbm='女'
(1)简单的无条件查询
设某个数据库中有表stu_info,请把该表中的所 有记录的所有属性查询出来:
SELECT *
// *表示所有字段,是通配符
FROM stu_info // 选定数据库中的表
(2)简单的条件查询 请查找stu_info表中所有的女生的信息。
SELECT * FROM stu_info WHERE xbm='女' //设定条件
第四章 关系数据库语言SQL
• 4.1 SQL简介 • 4.2 查询语句 • 4.3 数据更新 • 4.4 数据定义 • 小结
4.1 SQL简介
SQL是结构化查询语言(Structured Query Language)的缩写, 是一种面向关系数据库的国 际标准语言,在当前数据库领域中应用最为广泛和 成功,美国国家标准局ANSI在1986年将SQL作为 关系数据库系统的标准语言,后被国际标准化组织 (ISO)采纳为国际标准。现在很多大型数据库都 实现了SQL语言。
( 3 ) 1 9 8 9 年 ISO 对 SQL-86 进 行 补 充 , 推 出 SQL-89 标 准 , 也 称 SQL1。
(4)1992年ISO又推出SQL-92标准,亦称SQL2。
(5)1999年起ANSI陆续公布增加了面向对象功能的新标准SQL-99 (亦称SQL3)的12个标准文本。
4.1.2 SQL语言的特点
(1)非过程化:SQL语言是非过程化语言,在SQL语言中,只要求用户提 出“做什么”,而无需指出“怎样做”。SQL语句操作的过程由系统自 动完成。
(2)一体化:SQL可以操作于不同层次模式,集数据定义语言(DDL)、 数据操纵语言(DML)、数据控制语言(DCL)为一体。用SQL语言可 实现DB生命周期的全部活动,其中包括建立数据库、建立用户账号、定 义关系模式、查询及数据维护、数据库安全控制等。
( 3 ) 1 9 8 1 年 IBM 推 出 了 商 用 关 系 数 据 库 SQL/DS, 并 将 其 改 名 为 SQL,由于它功能丰富,语言简洁,因此倍受用户及计算机工业 界欢迎,被众多计算机公司和软件公司所采用。
(4)目前SQL语言不仅用于小型数据库如Foxpro、Access,而且 更广泛用于各种大型数据库,如Sysbase、SQL Server、Oracle、 Informix、DB2、Ingres等。
(3)两种使用方式,统一的语法结构: 两种使用方式: 自含式语言与嵌入式语言
• 自含式方式就是联机交互使用方式; • 嵌入式方式是指SQL语句嵌入某种高级程序设计语言的程序中,以实现
数据库操作。
尽管这两种使用方式不同,但SQL语言的语法结构基本是一致的。
4.1.3 SQL语言的书写准则
遵从某种准则可以提高语句的可读性,通常遵循的准 则主要有: • SQL语句对大小写不敏感,但关键字常用大写 • SQL语句可写在一行上,但为便于理解,增强条理性, 常习惯于每个字句占用一行 • 关键字不能在行与行之间分开,很少采用缩写形式 • SQL中的数据项需同时列出时,分隔符用“,”;字符 或字符串常量的定界符用单引号“ ' ”表示
4.2 查询语句
• 4.2.1 基本查询 • 4.2.2 使用列表达式 • 4.2.3 WHERE从句的进一步使用 • 4.2.4 数据汇总 • 4.2.5 连接查询 • 4.2.6 嵌套查询 • 4.2.7 联合查询 • 4.2.8 使用系统内置函数的查询
总述
SQL的核心是数据查询。 对于数据库的查询操作是通过 SELECT 查询命令 实现的,它的基本形式由
SQL在发展中经历了一系列标准化过程:
( 1 ) 1 9 8 2 年 美 国 国 家 标 准 局 ( American National Standard Institute,简称ANSI)开始制订SQL标准。
(2)1986年10月ANSI的数据库委员会X3H2批准了SQL作为关系数 据库语言的美国标准;同年ANSI公布SQL语言的第一个标准SQL86,并于次年由国际标准化组织(International Standardization Organization,简称ISO)通过SQL-86标准。
SELECT-FROM-WHERE 查询块组成,多个查询块可以嵌套执行。
SQL查询指定语查句询的对象完整语法描述指如定要下显:示的属性列
SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] …
[ WHERE <条件表达式> ]
4.1.1 SQL语言的发展
SQL的发展历程主要有以下几个阶段:
( 1 ) 1 9 7 4 年 由 Boyce 和 Chamberlin 提 出 , 当 时 称 为 SEQUEL (Structured English Query Language)。
(2)1975~1979 年 IBM 公 司 对 SEQUEL 进 行 了 修 改 , 并 由 San Jose Research Laboratory研制了著名的关系数据库管理系统原 型Syste
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ];
筛选出只有满足指
查询结果按指
定条件的组
定列的值分组 对查询结果表按指列值
的升序或降序排序
4.2.1 基本查询
• 最基本的查询就是从指定的表中找出符 合条件的记录。这样的查询由 SELECT 和 FROM 短语构成无条件查询,或由 SELECT、FROM 和 WHERE 或其他短 语构成条件查询。