《数据库应用技术 SQL Server 2005基础篇》总结2(第零次更新:2012年06月16日)
(2012-06-16 15:19:56)
标签:
数据库应用技术sqlserver2005 |
分类: Z_专升本 |
感谢在百忙之中无私奉献的“耿彦晓”童鞋,及为本文奉献的骚年们。
--------------------------------------------------------------------------------------------------
第五章
连接查询概述
交叉连接 |
无条件连接 |
内连接 |
有条件连接 |
外连接 |
保留舍弃记录 |
自连接 |
与自身连接 |
课后习题:P120页2
⑴
A. SELECT name FROM stud_info
WHERE birthday>'01/01/1987' AND (mark<500 OR mark >560)
B. SELECT name FROM stud_info
WHERE birthday<'01/01/1987' AND mark <500 AND mark >560
C. SELECT name FROM stud_info
WHERE birthday<'01/01/1987' AND mark <500 OR mark >560
D. SELECT name FROM stud_info
WHERE birthday<'01/01/1987' AND mark BETWEEN 500 AND 560
⑵
SELECT stud_info.name, stud_id FROM stud_info s WHERE stud_id = '0401040123'
A.
B.
C.
D.
⑶
SELECT teacher_id, name FROM teacher_info WHERE age = (SELECT MAX(age) FROM teacher_info)
A. 1
B.
C.
0
D. 256
⑷
A. SUM
B. AVG
C. GREATEST
D. COUNT
⑸
①
②
③
④
A.
B.
C.
D.
⑹
A. ORDER BY
B. WHERE
C. SELECT
D. FROM
⑺
A.
IN
B.
>=
C. LIKE
D. <=
⑻
①
②
③
④
⑤
⑥
⑦
A.
B.
C.
D.
⑼
①
②
③
④
A.
B.
C.
D.
3.
⑴
SELECT
FROM
⑵
--在‘成绩表’中插入
INSERT
VALUES('0401010717','代燕','0401010104',60)
⑶
SELECT
FROM
WHERE
⑷
SELECT
FROM
WHERE
⑸
SELECT
FROM
WHERE
⑹
SELECT
FROM
ORDER
⑺
--显示班全体学生的基本信息
SELECT
FROM
WHERE
--统计班总人数
SELECT
FROM
WHERE
GROUP
⑻
SELECT
FROM
WHERE
GROUP
⑼
SELECT
FROM
WHERE
⑽
SELECT
FROM
WHERE
⑾
SELECT
FROM
WHERE
⑿
SELECT
FROM
WHERE
GROUP
HAVING
⒀
SELECT
FROM
WHERE
⒂
SELECT
FROM
WHERE
ORDER
⒃
SELECT
FROM
WHERE
⒅
SELECT
FROM
ORDER
⒆
UPDATE
SET
WHERE
⒇
--删除信息表中的数据
DELETE
WHERE
--------------------------------------------------------------------------------------------------
第六章
视图的概念(简答)
视图是基于某个查询结果的一个虚拟表,只是用来查看数据的窗口而已。
视图与真正的表很类似,也是由一组命名的列和数据行所组成,其内容由查询所定义。但是视图并不是以一组数据的形式存储在数据库中,数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基表中。
当基表中的数据发生变化时,从视图中查询出来的数据也随之改变。
视图的优点和缺点(简答)
优点:数据保密、简化数据查询操作
缺点:当更新视图中的数据时,实际上是对基表的数据进行更新。当从视图中插入或者删除时,情况也是这样。但是,某些视图是不能更新数据的
书上例题
【示例6.1】针对表stud_info创建一个简单视图。
CREATE
AS
SELECT
FROM
课后习题
(1)
A. WHERE
C. WITH CHECK OPTION
B. WITH ENCRYPTION
D. CREATE VIEW
(2)
CREATE VIEW stud_view
AS
SELECT * FROM stud_info
WHERE substring(stud_id,3,2) = '01'
A. SELECT
C. SELECT, DELETE
B. SELECT, UPDATE
D. SELECT, INSERT
(3)
A. WITH UPDATE
C. WITH CHECK OPTION
B. WITH READ ONLY
D. WITH ENCRYPTION
(4)
中的
A. WITH CHECK OPTION
C. WITH NO UPDATE
B. WITH READ ONLY
D.
(5)
A.
sp_helptext
B.
sp_depends
C.
sp_help
D. sp_rename
(6)
①
②
③
④
⑤
⑥
A.
B.
C.
D.
------------------------------------------------------------------------------------------------
第七章
索引的概念(简答)
索引是以数据表的列为基础建立的数据库对象,它保存着表中排序的索引列,并且记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑或物理排序。
索引的优缺点(简答)
优点:
一,通过唯一性索引,可保证数据的唯一性。
二,加快数据检索的速度。
三,加速表和表之间的连接。
缺点:
一,创建和维护耗费时间。
二,占物理空间。
三,对表中的数据维护时,索引也要动态的维护,降低数据的维护速度。
聚集索引、非聚集索引(简答)
聚集索引:行的物理存储顺序与索引顺序完全相同,即索引的顺序决定了表中行的存储顺序,因为行是经过排序的,所以每个表中只能有一个聚集索引。
非聚集索引:并不在物理上排列数据,即索引中的逻辑顺序并不等同于表中行的物理顺序,索引仅仅记录指向表中行的位置的指针,这些指针本身是有序的,通过这些指针可以在表中快速地定位数据。
(选择)
一个数据表中至多有建立一个聚集索引。
建立索引的思路
1.主键字段
2.外键字段
3.经常在where中用到的字段
4.较少涉及、重复值较多,不建立索引
5.text、ntext、image、bit类型,不建立索引
索引视图
具有聚集索引的视图称为索引视图。
创建索引视图
Create
With
As
Select_statment
P161页
1.(4)用下列语句建立表adresses。当表被建立时,将自动建立多少个索引?
CREATE
(
)
答:当表被建立时,将自动建立
P161页
2.(1)为课程信息表(lesson_info)的课程号(course_id)创建索引course_id_idx。
答:
CREATE
ON
-------------------------------------------------------------------------------------------------
第八章
存储过程(简答)
当开发一个应用程序时,为了易于修改和扩充方便,我们经常会将负责不同功能的语句集中起来而且按照用途分别独立放置,以便能够反复调用,而这些独立放置且拥有不同功能的语句,即是“过程”。
SQLServer的存储过程是一组完成特定功能的T-SQL语句集,经编译后以特定的名称存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。
存储过程特点(简答)
1.允许模块化的程序设计
2.更快的执行速度
3.有效降低网络流量
4.较好的安全机制
存储过程类型(选择或填空)
1.系统存储过程:
系统存储过程放在master数据库中。
sp_helptext:显示存储过程和其他对象的文本。
2.本地存储过程
3.临时存储过程:
1)本地临时存储过裎:
2)全局临时存储过程:
4.远程存储过程
存储过程创建方法(程序)
1.不带参数的存储过程
格式:
CREATE
AS
存储过程的执行格式:
EXEC
例题:P187页
创建一个存储过程,使其调用后能返回年龄为
本信息。
——创建
CREATE
AS
SELECT
WHERE
——执行
EXEC
2.带参数的存储过程,带返回值的存储过程
CREATE
[{@输入和输出参数的名称}
AS
例题:P187页
针对学生基本信息表(stud_info),创建一个按性别统计人数的存储过程。
——创建
CREATE
@in_sex
AS
BEGIN
IF
SELECT
FROM
WHERE
ELSE
SELECT
FROM
WHERE
END
——执行
DECLARE
EXEC
SELECT
复习课例题:
ALTER
AS
SELECT
FROM
WHERE
——执行
DECLARE
EXEC
SELECT
触发器(简答)
触发器是一种在数据表或视图被修改时自动执行的内嵌存储过程,主要通过事件进行触发的,而存储过程可以通过存储过程名字被直接调用。当对某个表进行UPDATE、INSERT、DELETE这些操作时,SQLServer就会自动执行触发器所定义的SQL语句。
触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。
书上例题
【示例8.12】在数据库student的表teacher_info上创建一个teacher_trigger1触发器,当执行INSERT操作时该触发器被触发。
CREATE
ON
FOR
AS
RAISERROR('unauthorized',10,1)
【示例8.13】在数据库student的表teacher_info上建立一个名为teacher_trigger3的触发器,该触发器将被操作UPDATE所激活,该触发器不允许用户修改表的name列。
CREATE
ON
FOR
AS
【练习8.9】在数据库student的表teacher_info上建立一个名为teacher_trigger4的DELETE触发器,该触发器将实现对表teacher_info中删除记录的操作给出报警,并取消当前的删除操作。
CREATE
ON
FOR
AS
BEGIN
END
-------------------------------------------------------------------------------------------------
第九章
事务
事务是由一系列的数据查询操作或更新操作构成的。从用户的观点来看,根据业务规则,这些操作是一个整体,不能分割,即要么所有的操作都顺利完成,要么一个也不要做。绝不能只完成了部分操作,而还有一些操作没有完成。事务中任何一个语句执行时出错,系统都会返回到事务开始前的状态。
事务的特性
1.原子性
一个事务中的所有操作是一个逻辑上不可分割的单位。事务必须作为工作的最小单位,其所进行的操作要么全部执行,要么全部不执行。
2.一致性
事务结束时,必须使所有数据处于一致性状态。数据库中数据满足各种完整性规则。
3.隔离性
一个事务所做的修改,必须与其他事务所做的修改隔离。
4.持久性
一个事务一旦完成全部操作,它对数据库的所有更新操作的结果反映到数据库中。
书上例题
【示例9.2】
建立一个名为student_manager1的事务,事务将为课程号最后两位为06的多媒体技术课程、所有学生成绩进行FLOOR(SQRT(grade)*10)处理。
DECLARE
SELECT
BEGIN
GO
UPDATE
GO
COMMIT
【示例9.3】
使用事务处理方式对表stud_grade执行更新操作,成功则提交事务,失败则取消事务。
BEGIN
UPDATE
SET
IF
ELSE
锁
锁作为一种安全机制,用以封锁正被一个事务修改的数据,防止其他用户访问到“不一致”的数据。锁机制能够控制多个用户的并发操作,可以防止用户读取正在由其他用户更改的数据或者多个用户同时修改同一数据,从而确保事务完整性和数据库一致性。
锁的控制方法
常用锁:排它锁和共享锁。
排它锁(X,写锁)
若事务T对数据对象A加上X锁,则只允许T读取和修改A。其它事务不能再对A加任何类型的锁,直到T释放A上的X锁。
排它锁用于数据修改操作,用以确保不会同时对同一资源进行并发修改。排它锁锁定的资源不能被其他并发事务读取或修改,形成独享。
共享锁(S,读锁)
若事务T对数据对象A加上S锁,则事务T可以读A,但不能修改A。其它事务职能再对A加上S锁,而不能加X锁,直到T释放A上的S锁。
共享锁用于只读操作,它允许多个并发事务读取一个资源,但是任何其他事务都不能修改锁定的数据。
锁的粒度
锁对象的大小称为锁粒度。锁对象可以是逻辑单位,这时的粒度可以是数据库、表、记录或列。
锁协议
锁协议是指每个事务的执行可以分为两个阶段:加锁阶段和解锁阶段。
游标及优点(简答)
游标是一种处理数据的方法,为了查看或者处理结果集中的数据,游标提供了在结果集中向前或者向后浏览数据的能力。
优点:游标是基于逐行操作结果集的方法,它对SELECT语句的查询结果集中的记录行逐行处理,而不是整个结果集作同一处理,并基于游标的当前位置,更新或删除表或视图中的行。
使用游标步骤
1.声明或创建游标
2.打开游标
3.推进游标指针
4.逐行处理游标指针所指向的行数据。
5.关闭和释放游标。
书后习题
(7)
USE
GO
DECLARE
FOR
--打开游标
OPEN
FETCH
WHILE
BEGIN
END
Close
DEALLOCATE
(8)
USE
GO
DECLARE
FOR
OPEN
FETCH
DELETE
CLOSE
DEALLOCATE
--------------------------------------------------------------------------------------------------
《数据库应用技术 SQL Server 2005基础篇》考前分析:http://blog.sina.com.cn/s/blog_44f64c70010106ur.html。
《数据库应用技术 SQL Server 2005基础篇》总结1:http://blog.sina.com.cn/s/blog_44f64c7001010br8.html。
PS:
PPS:
PPPS:本人水平有限,难免出现错误。如您发现错误,请批评指正。