第5章 数据库的高级应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.4
5.5
– 掌握索引、视图、游标、存储过程、触发器 及事务的修改及删除方法
数据库原理与SQL Server
5.3 视
图
【课堂任务】
– 本节要理解视图的作用及使用。
5.3
– 视图的概念及作用 – 视图的创建、修改和删除
5.4
5.5
数据库原理与SQL Server
5.3.1 视图概述
视图(虚拟表)
命令中的参数含义如下:
– Column:声明视图中使用的列名。如果省略,就使
5.3
用基表的列名作为视图的列名,也可在 Select_statement语句中指定列名。 – WITH ENCRYPTION:给系统表syscomments中视 图定义的SELECT命令加密。这个选项可用于提高 SQL Server系统的安全性。
• BEGIN • { • sql_statement|statement_block
5.3
– 通常将系统全局变量的值赋给局部变量以便 保存和处理。全局变量以两个@符号开头。 – 例如:@@error,@@rowcount等等。 – 用户可以通过全局变量来检测系统的参数值 。 – 例:SELECT @@version:记录当前版本信 息。
5.4
5.5
数据库原理与SQL Server
1、常量与变量
1、常量与变量
【例】
– USE grademanager
5.3
– GO – DECLARE @sex char(2)
5.4
– SET @sex='女’ – SELECT sno,sname,sdept
5.5
– FROM student – WHERE ssex=@sex
数据库原理与SQL Server
5.4
5.5
数据库原理与SQL Server
5.3.5 视图的删除
【例5-6】 删除视图V1_student。
– DROP VIEW V1_student
5.3
– 提示:
5.4
5.5
• ① 删除视图时,将从系统目录中删除视图的定义 和有关视图的其他信息,还将删除视图的所有权 限。 • ② 使用DROP TABLE删除的表上的任何视图都 必须用DROP VIEW命令删除。
数据库原理与SQL Server
5.3.4 视图的修改
1、使用SSMS修改视图(鼠标右键选择修改)
2、使用T-SQL语句修改视图
5.3
– ALTER VIEW view_name [(Column[,…n])] – [WITH ENCRYPTION] – AS select_statement – [WITH CHECK OPTION]
5.4
5.5
数据库原理与SQL Server
3. Transact-SQL流程控制
1) BEGIN…END语句块
5.3
5.4
– BEGIN…END可以定义Transact-SQL语句块,这些 语句块作为一组语句执行,允许语句嵌套。关键字 BEGIN定义Transact-SQL语句的起始位置,END定 义同一块Transact-SQL语句的结尾。 – 它的语法格式如下。
Biblioteka Baidu5.4
ALTER VIEW V1_student AS SELECT sno,sname FROM student
5.5
数据库原理与SQL Server
5.3.5 视图的删除
1.使用SSMS删除视图
5.3
2.使用Transact-SQL语句删除视图
– DROP VIEW {view} [,…n] – 提示:DROP VIEW命令可以删除多个视图 ,各视图名之间用逗号分隔。
数据库原理与SQL Server
5.4 Transact-SQL编程基础
2. 表达式
5.3
– 在Transact-SQL语言中,表达式由变量、常 量、运算符、函数等元素组成。表达式可以 在查询语句中的任何位置使用。 – 例如,检索数据的条件,指定数据的值等。
5.4
5.5
数据库原理与SQL Server
– 给变量赋值,其语法如下:
• Set @变量名称=表达式 5.4 • Select @变量名称=表达式[,…n]
• 其中,@变量名称是除cursor、text、ntext、image外的任何类型 变量名。
5.5
– 例:
• DECLARE @hello char(20) • Set @hello=‘hello,China!’
5.3
– 2. 使用Transact-SQL语句创建视图
CREATE VIEW view_name [(Column [,…n])] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION]
5.4
5.5
数据库原理与SQL Server
5.3.2 视图的创建
1、常量与变量
5.3
5.4
– 常量,也称为文字值或标量值,是指程序运 行中值始终不改的量。在Transact-SQL程序 设计过程中,定义常量的格式取决于它所表 示的值的数据类型。
5.5
数据库原理与SQL Server
5.4 Transact-SQL编程基础
1、常量与变量
5.3
– 变量,就是在程序执行过程中,其值是可以改变的量 。可以利用变量存储程序执行过程中涉及的数据。
5.3
– 该视图的定义涉及了student表、course表和sc表。
CREATE VIEW v_student AS SELECT A.sno,sname,cname,degree FROM student A,course B,sc C WHERE A.sno=C.sno AND B.cno=C.cno AND cname='数据库' – 视图定义后,可以像基本表一样进行查询。 – 例:若要查询以上定义的视图v_student,可以使用命令: SELECT * FROM v_student
韩山师范学院
第5章 数据库的高级应用
任课人:cws
章节内容
5.1架构
5.2 索引
5.3
5.3 视图
5.4 Transact-SQL编程基础 5.5 存储过程
5.5
5.4
5.6 触发器 5.7 事务 5.8 锁
数据库原理与SQL Server
2
数据库的高级应用
学习目标:
5.3
– 了解索引、视图、游标、存储过程、触发器 及事务的作用 – 掌握索引、视图、游标、存储过程、触发器 及事务的创建方法
5.4
5.5
数据库原理与SQL Server
5.3.3 视图的使用
视图的使用
5.3
– 主要包括视图的检索、通过视图对基表进行 插入、修改、删除操作。
• 视图的检索几乎没有什么限制:同基本表 • 对通过视图实现表的插入、修改、删除操作则有 一定的限制条件。
5.4
5.5
数据库原理与SQL Server
5.3.3 视图的使用
【例5-3】 利用视图向表student中插入一条数据
– 创建视图
5.3
• CREATE VIEW V1_student AS
• SELECT sno,sname, speciality
• FROM student
5.4
– 向表中插入一条数据,脚本如下:
• INSERT INTO V1_student
2) 局部变量
5.3
– 局部变量是作用域局限在一定范围内的 Transact-SQL对象。 – 局部变量被引用时要在其名称前加上标志@ ,而且必须先用DECLARE命令定义后才可 以使用。
5.4
5.5
数据库原理与SQL Server
1、常量与变量
2) 局部变量
– 声明局部变量 ,其语法如下:
5.3 • DECLARE @变量名 变量类型 [,@变量名 变量类型]
1、常量与变量
Go命令
5.3
– GO不是sql语句,是sqlcmd和osql实用工具及 SSMS编译器可识别的命令; – 作用:是将当前批的sql语句信号;当前批处 理由上一个GO命令后所有语句组成;
5.4
5.5
– 批处理:指多条语句放在一起依次执行,批 处理语句之间用GO隔开;
– GO命令不能和SQL语句同一行中,但可包含 注释;
5.3
– (1) 视图定义中的FROM子句包含两个或多个表,且 SELECT选择列表达式中的列包含来自多个表的列。 – (2) 视图的列是从集合函数派生的。 – (3) 视图中的SELECT语句包含GROUP BY子句或 DISTINCT选项。 – (4) 视图的列是从常量或表达式派生的。
5.4
5.5
5.5
5.4
– AS:说明视图要完成的操作。
数据库原理与SQL Server
5.3.2 视图的创建
命令中的参数含义如下:
– Select_statement:定义视图的SELECT命令。
5.3
• 注意:视图中的SELECT命令不能包括INTO、ORDER BY 等子句。临时表也不能在查询中引用。
5.3.1 视图概述
使用视图具有如下优点:
– (1) 简化对数据的操作
5.3
– (2) 自定义数据 – (3) 数据集中显示 – (4) 导入和导出数据
5.4
– (5) 合并分割数据
5.5
– (6) 安全机制
数据库原理与SQL Server
5.3.2 视图的创建
视图创建方法
– 1. 使用SSMS创建视图(演示)
5.5
5.4
– 提示:如果在创建视图时使用了WITH ENCRYPTION选项和WITH CHECK OPTION选项 ,则在使用ALTER VIEW命令时,也必须包括这些 选项。
数据库原理与SQL Server
5.3.4 视图的修改
【例5-5】 修改例5-3中的视图V1_student 。
5.3
5.4
– WITH CHECK OPTION:强制所有通过视图修改的 数据满足Select_statement语句中指定的选择条件。
5.5
– 视图创建成功后,可以在SSMS视图窗口中看到新定
义的视图名称。视图可以由一个或多个表或视图来定
义。
数据库原理与SQL Server
5.3.2 视图的创建
【例5-2】 有条件的视图定义。定义视图v_student,查 询所有选修数据库课程的学生的学号(sno)、姓名 (sname)、课程名称(cname)和成绩(degree)。
数据库原理与SQL Server
1、常量与变量
2) 局部变量
– 提示:
5.3
• ① SELECT语句给局部变量赋值,可以一次给多 个变量赋值;而SET 一次只能给一个变量赋值。 • ② 局部变量的输出可以使用PRINT。 • ③ 声明一个变量后,该变量将被初始化为NULL 。
5.5
5.4
数据库原理与SQL Server
5.3
5.4
– 是从一个或者几个基本表或者视图中导出的 虚拟表,是从现有基表中抽取若干子集组成 用户的“专用表”,这种构造方式必须使用 SQL中的SELECT语句来实现。
5.5
– 在定义一个视图时,只是把其定义存放在数 据库中,并不直接存储视图对应的数据,直 到用户使用视图时才去查找对应的数据。
数据库原理与SQL Server
数据库原理与SQL Server
5.4 Transact-SQL编程基础
【课堂任务】
– 本节要熟悉Transact-SQL语言。
5.3
• Transact-SQL的语法规范 • Transact-SQL的语言基础 • 常用函数
5.4
• 游标的基本操作
5.5
数据库原理与SQL Server
5.4 Transact-SQL编程基础
• VALUES('20050203','王小龙','计算机应用')
5.5
– 通过基本表,查询是否插入了该条记录:
• SELECT *
• FROM student WHERE sname='王小龙'
数据库原理与SQL Server
5.3.3 视图的使用
如果视图以下属性,则插入、更新或删除基表 将失败:
5.4 Transact-SQL编程基础
【例】
5.3
5.4
5.5
数据库原理与SQL Server
5.4 Transact-SQL编程基础
3. Transact-SQL流程控制
5.3
– 结构化程序设计语言的基本结构是顺序结构 、条件分支结构和循环结构。 – 在Transact-SQL语言中,流程控制语句就是 用来控制程序执行流程的语句,也称流控制 语句或控制流语句。
– 变量由变量名和变量值构成,其类型与常量一样。变 量名不能与命令和函数名相同
5.4
5.5
– 在SQL Server 2008系统中,存在两种类型的变量: 一种是系统定义和维护的全局变量;另一种是用户定 义用来保存中间结果的局部变量。
数据库原理与SQL Server
1、常量与变量
1) 系统全局变量