第03章 SQL语言(3)

  • 格式:pdf
  • 大小:5.95 MB
  • 文档页数:47

聚集函数遇到空值时跳过,只处理非 如果选修1号课的学生有2名没有参加 空值。 考试,DBMS会如何计算平均成绩?
22
)
3.6.1 SELECT命令的格式与基本使用
SELECT [ALL|DISTINCT] [TOP N [PERCENT]]
投影
〈列名〉[AS 别名1] [{,〈列名〉[ AS 别名2]}]
[INTO 新表名]
FROM〈表名1或视图名1〉 [,〈表名2或视图2〉]
[WHERE〈检索条件〉]
选取
EXEC Sp_rename 'T.TI', 'T_Index', 'index'
18
)
3.5.5 使用数据库引擎优化顾问
作用
检查指定查询的处理方式,然后建议如何通过修
改物理设计结构,以改善查询性能
用户界面
• 图形用户界面(GUI) • Dta命令行使用工具
19
)
3.5.5 使用数据库引擎优化顾问

全文索引
• 是目前搜索引擎的关键技术 • 加快大文件信息的搜索速度 • 建立一个词库,每个表仅1个 对XML数据列建立的索引
XML索引
9
)
3.5.3 索引的设计 能否为每一列创建索引?
10
)
3.5.3 索引的设计
1.索引的弊端
(1)维护索引费时
(2)索引占用物理空间 (3)影响更新速度
索引过多或过少均不合适!28ຫໍສະໝຸດ )3.6.2 条件查询
1.比较大小 [例27]查询选修了课程号为C1的学生学号和成绩。 SELECT Sno,Score FROM SC WHERE Cno=‘C1’ [例28]查询成绩高于85分的学生学号、课号和成绩。 SELECT * FROM SC WHERE Score>85
29
)
3.6.2 条件查询
数据库原理及应用
第3章 关系数据库标准语言 --SQL(3)
1
)
复习
表的创建
常用的几种约束
2
)
复习
2.用SQL语句创建数据表
CREATE TABLE <表名> (<列名> <数据类型> [DEFAULT] [列级完整
性约束]
[, …n] [ ,<表级完整性约束条件> ] ) [ ON 文件组名]
3
)
复习
1.完整性约束的基本语法格式
[CONSTRAINT <约束名> ] <约束类型>
NULL/NOT NULL
UNIQUE PRIMARY KEY FOREIGN KEY CHECK
4
)
学习目标
索引的创建与管理 简单查询
5
)
3.5
创建与使用索引
3.5.1 索引概述 3.5.2 索引的类型
3.5.3 创建的设计
25
)
3.6.1 SELECT命令的格式与基本使用
3.消除取值重复的行 在SELECT子句中使用DISTINCT短语。 格式:SELECT [ALL|DISTINCT] 属性列表 FROM 表名 [例6] 查询选修了课程的学生学号。 SELECT ALL Sno FROM SC; SELECT DISTINCT Sno FROM SC;
ASC或DESC,默认为ASC
14
)
3.5.4 索引的使用
[例3-18] 为表SC在SNo和CNo上建立惟一索引。
CREATE UNIQUE INDEX SCI
ON SC(SNo,CNo) [例3-19] 为教师表T在TN上建立聚集索引。
CREATE CLUSTER INDEX TI
ON T(TN DESC)
5.字符串匹配
格式: 属性名 LIKE ‘<匹配串>’
<匹配串>:字符常量+通配符 四种通配符: % :代表任意长度(长度可以为0)的字符串 _ :代表任意单个字符 [ ]:匹配[ ]中的任意一个字符
[^]:不匹配[ ]中的任意一个字符
35
)
3.6.2 条件查询
[例33]查询所有姓张老师的教师号、姓名和职称。 SELECT Tno,TN,Prof
排列的结果存储在表中, 排列的结果不存储在表中 可以有多个 且只有一个
唯一索引
•UNIQUE:建立非聚集唯一索引 •PRIMARY KEY:建立聚集唯一 索引
8
)
3.5.2 索引的类型
视图索引
视图是一虚表 对视图创建唯一聚集索引可 提高查询效率 若基本表的数据很少更新, 视图索引的使用效果最佳
15
)
3.5.4 索引的使用
2.删除索引
在图形界面下删除索引
用DROP INDEX命令删除索引
DROP INDEX <表名.索引名>
[例3-22]删除表SC的索引SCI。 DROP INDEX SC.SCI
16
)
3.5.4 索引的使用
3.修改索引
通常先删除,再创建
4.查看索引
右击 “索引”名称,选择“属性” 用Sp_helpindex存储过程查看索引 表的名称
3.5 创建与使用索引
3.6 数据查询
3.7 数据更新 3.8 视图 3.9 数据控制
21
)
3.6 数据查询
3.6.1 SELECT语句的格式与基本使用 3.6.2 条件查询 3.6.3 统计汇总查询 3.6.4 分组查询 3.6.5 查询排序 3.6.6 数据表连接与连接查询 3.6.7 子查询 3.6.8 合并查询 3.6.9 存储查询结果到表中
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2>[ASC|DESC]]
23
)
3.6.1 SELECT命令的格式与基本使用
1.查询指定列 [例22] 查询全体学生的学号、姓名和年龄。 SELECT Sno,SN,Age FROM S [例25] 查询全体学生的姓名、学号、所在系。
33
)
3.6.2 条件查询
4.确定集合 [例 ] 查询既不是信息,也不是自动化的学生姓名和性 别。 SELECT SN,Sex FROM S WHERE Dept NOT IN ( '信息','自动化' )
WHERE dept !=‘信息’ AND dept !=‘自动化'
34
)
3.6.2 条件查询
FROM T
WHERE TN LIKE '张%'
36
)
3.6.2 条件查询
[例34]查询姓名中第2个字是“雪”的教师工号和姓名 SELECT Tno,TN
FROM T WHERE TN LIKE ‘_雪%'
[例]查询姓名中含有“雪”的教师工号和姓名。
SELECT Tno,TN
FROM T WHERE TN LIKE ‘%雪%'
1.优化工作负荷
检查指定查询的处理方式,然后建议如何通过修
改物理设计结构,以改善查询性能
用户界面
• 图形用户界面(GUI) • Dta命令行使用工具
20
)
第三章 关系数据库标准语言SQL
3.1 SQL语言的基本概念与特点
3.2 了解SQL Server 2000
3.3 创建与使用数据库
3.4 创建与使用数据表
32
)
3.6.2 条件查询
4.确定集合 使用谓词:IN(值表) 或 NOT IN (值表) (值表)是用逗号分隔的一组取值。 [例31]查询选修C1或C2课程的学号、课号和成绩 SELECT Sno,Cno
FROM SC
WHERE Cno IN ('C1', 'C2' ) ;
WHERE Cno ='C1' OR Cno ='C2'
2.多重条件查询 如果有多个查询条件,用逻辑运算符AND、OR 或NOT将条件连接起来。
优先级:NOT、AND、OR
可以用括号改变优先级 [例] 查询计算机系年龄在20岁以下的学生姓名。 SELECT SN FROM S WHERE Dept= ‘计算机' AND Age<20
30
)
3.6.2 条件查询
Sp_helpindex [@objname =] 'name'
[例3-20] 查看表SC的索引。 EXEC Sp_helpindex SC
17
)
3.5.4 查看与修改索引
4.查看索引
用Sp_rename存储过程更改索引名称 Sp_rename ‘数据表名.原索引名’, ‘新索引名'
[例3-21] 更改T表中的索引TI名称为T_Index。
26
)
3.6 数据查询
3.6.1 SELECT语句的格式与基本使用 3.6.2 条件查询 3.6.3 统计汇总查询
3.6.4 分组查询 3.6.5 查询排序 3.6.6 数据表连接与连接查询 3.6.7 子查询 3.6.8 合并查询
27
)
3.6.2 条件查询
常用的比较运算符: 运算符 =, >, <, >=, <=, != ,<> AND, OR, NOT BETWEEN AND IN LIKE IS NULL 含义 比较大小 多重条件 确定范围 确定集合 字符匹配 空值
FROM SC
WHERE Score =''; IS NULL
39
)
3.6 数据查询