数据库应用技术教程第三章深入SQL.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12/81
3.2.1 基本语句
❖ 如果明确地只想得到一行结果
在MS-SQL和MySQL中,可以使用不带FROM子句的 SELECT语句;
❖ SELECT 1+2
在Oracle中,不允许没有FROM子句。 系统提供了一个名叫dual的表,保证其中只有一条记录, 不依赖于表的计算可以使用这个表。
DISTINCT | ALL:在整个查询内容前加上DISTINCT,返 回结果中不重复的内容。不重复针对所有要查询的表达 式集合而言。ALL是缺省值,列出包括重复的所有记录。 另外,DISTINCT是一个比较费时间的操作,使用时需慎 重。
10/81
3.2.1 基本语句
❖ 查询的内容可以是字段,也可以是由字段、常数通 过运算符、函数构成的复杂表达式。这种计算要对 表上的所有行都施加运算。
❖ BETWEEN AND ❖ IN ❖ LIKE ❖ NULL的运算
逻辑运算符
❖ NOT AND OR
14/81
其他where条件
❖ 1、BETWEEN … AND …
❖ 如果要限定某个表达式的值在某个区间内,可以使用这个关键字。 例:查询出薪水在1000和2000之间的记录的sid和salary值。
%:表示可以匹配0个或任意多个字符;
_:表示通配一个字符。
6/81
标准与可移植性
❖ 在SQL92标准中定义了四种级别:Entry, Transitional, Intermediate, and Full
❖ 国际标准与各个厂商之间的不兼容性。 ❖ 事实上的不可移植性
字符串连接||与+; 专有的查询关键字 数据类型与函数 特殊语义;
❖ 可移植性神话
7/81
❖ 数字常量的写法和通常程序语言一致,字符 串使用单引号包含,字符串中的单引号使用 两个连续的单引号转义表示,不区分字符和 字符串。
5/81
SQL书写规范
❖ 为便于书写和阅读,通常采用如下的书写规 范:
❖ 1、关键字大写,其他标识符小写
字段名大写???
❖ 2、每个子句单起一行 ❖ 3、使用制表符缩进
SELECT sid, UPPER(sname), salary + 100 FROM sales;
11/81
3.2.1 基本语句
❖ 在某些情况下,也可能使用SQL计算纯粹常量表达 式的值,如检索服务器当前时间。
SELECT SYSDATE, 1+2 FROM sales;
依赖于表中记录的数目,将得到若干行(也可能 是0行)同样的结果。而这一般不是我们想要得 到的结果。
9/81
3.2.1 基本语句
当明确要查询哪些字段的时候,将字段名称列在SELECT 的后面,这样语句含义清楚,性能也有所提高。
[AS] 别名 :别名起到简化作用,通常还作为表达式的标 题。特别是很多使用SQL的开发工具直接使用SELECT语 句中每个查询表达式的名称作为标识符,这种情况下更 需要给出别名。表达式与别名之间的AS是一个冗余的关 键字,可以省略,直接以空白符分隔。
❖ 控制(Data Control Language, DCL )
GRANT, REVOKE, COMMIT,ROLLBACK。
4/81
ቤተ መጻሕፍቲ ባይዱ
SQL的基本语法
❖ SQL语句不区分大小写,可以写在多行,各 个单词之间使用分隔符(空格,回车,制表 符)分隔。
❖ SQL语句中的关键字属于保留字,不能用于 其他地方。
❖ SQL的设计初衷是给高级用户提供一种通用 的、易于学习和理解的数据库操作方式。
❖ 演变为给程序员使用的数据库标准接口。
2/81
SQL的特点
❖ 面向集合的操作方式,是关系代数的实现; ❖ 高度非过程化。只需要提出“What”,不需
要指出“How”; ❖ 上下文无关,运行结果取决于数据; ❖ 语言风格统一,类自然语言,简单易学; ❖ 言语式入嵌是又,言语式含自是既
SELECT sid, salary
FROM sales
WHERE salary BETWEEN 1000 AND 2000;
这是一个闭区间,等于两端值的记录也会被查出来。另外,一般要 求区间前面的值小于后面的值,否则将查不出结果。
❖ 2、IN
IN运算符用来检验某个表达式的值是否包含在一个指定的值集合内。
❖ SELECT SYSDATE, 1+2 FROM dual;
13/81
3.2.2 筛选
❖ 可以使用WHERE子句来筛选出满足某些条件的记 录。
❖ WHERE 逻辑表达式
基本比较运算符
❖ =,>,<,>=,<=,<> ❖ 它们都具有通常的含义。比较运算符的两端都可以是字段或者表达式。
其他相当于比较运算符的结构
3/81
SQL的分类
❖ 查询(Data Query Language, DQL )
SELECT
❖ 操纵(Data Manipulate Language, DML )
INSERT, DELETE, UPDATE
❖ 定义(Data Definition Language, DDL )
CREATE, DROP, ALTER。
3.2 简单SELECT语句
8/81
3.2.1 基本语句
❖ 语法
SELECT [DISTINCT | ALL] [ * | 查询项列表 ] FROM 表名;
❖ 说明
查询项:字段|表达式 [[AS] 别名 ] 无条件:查询出表的所有记录。次序不确定、不稳定,
依赖于数据库的实现。 *:按特定顺序列举所有字段。
例:查询出名字叫Tom、Jack或者Mary的销售员的sid和salary值。
SELECT sid, salary
FROM sales
WHERE sname IN (‘Tom’, ‘Jack’, ‘Mary’);
15/81
❖ 3、LIKE
❖ 如果要对字符串进行通配查找时,需要使用LIKE运算符。它 允许在表达式中使用专门的通配符,表示符合某种规则的结 果。
数据库应用技术 第三章 深入SQL
1/81
3.1 SQL概述
❖ SQL的历史
1970, Structured English Query Language ("SEQUEL"), IBM
1979, Oracle SQL的标准化过程
❖从SQL-86(ANSI)到SQL-2003(ANSI, ISO)
相关文档
最新文档