数据库系统原理与应用(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13.1 约束 SQL Server2005提供了多种强制数据完整性 的机制
PRIMARY KEY约束
FOREIGN KEY约束
UNIQUE约束
CHECK约束
NOT NULL约束
13.1 约束 1.PRIMARY KEY约束 可以约束标识列或列集,这些列或列集的 值唯一地标识表中的行。 CREATE TABLE department /*部门表*/ ( dno int PRIMARY KEY, /*部门号为主键*/ dname char (20), /*部门名*/ )
14.5 存储过程的管理 1.查看存储过程 使用SQL Server管理控制器 使用系统存储过程
1) sp_help name 显示存储过程的参数及数据类型 2) sp_helptext name 显示存储过程的源代码 3) sp_depends name 显示和存储过程相关的数据库 对象 4) sp_stored_procedures 返回当前数据库中的存储 过程列表
数据库系统原理与应用
第八讲
上节课的回顾

E-R模型的设计及向关系模型的转换


E-R模型中的三个组织成分 : 实体、属性、联系 实体之间的三种联系 把E-R图转换成关系模式
第十二章 视图
12.1 创建和删除视图 12.2 使用视图 12.3 视图定义的修改和信息查看
12.1 创建视图和删除视图
14.5 存储过程的管理
14.1 概述 存储过程是在数据库服务器端执行的一 组T-SQL语句的集合,经编译后存放在数据 库服务器端。 SQL Server 2005提供3种存储过程: 用户存储过程:用户编写的可重复用的TSQL功能模块 系统存储过程:由系统提供,常用sp_为前 缀 扩展存储过程:用户使用编程语言创建的 外部例程
12.2 使用视图 书上例12.5
12.2 使用视图 3.通过视图修改基表中的数据
12.2 使用视图 4.通过视图删除基表中的数据
12.3 视图定义的修改和信息查看 一、视图定义的修改
SQL Server2005提供了2种方法来修改视图:
使用SQL Server控制管理器
使用ALTER VIEW语句 ALTER VIEW view_name [ ( column [, …n] ) ]
13.1 约束
13.1 约束 3.UNIQUE约束 可以列集内强制执行值的唯一性。如果列 有 UNIQUE 约束, SQL Serevr 将确保数据除 NULL外的所有值均唯一。 CREATE TABLE table5 ( c1 int UNIQUE, c2 int )
13.1 约束
13.1 约束 4.CHECK约束 通过限制用户输入的值来加强域完整性。 指定应用于列中输入的所有值的布尔条件, 拒绝所有不为TRUE的值。 限定f2只能为 CREATE TABLE table6 0到100 (f1 int , f2 int NOT NULL CHECK(f2>=0 and f2<=100) )
[ WITH view_attribute [,…n] ]
AS select_statement [WITH CHECK OPTION]
12.3 视图定义的修改和信息查看 二、视图重命名
SQL Server2005提供了2种方法来重命名视图:
使用SQL Server控制管理器
使用存储过程sp_rename sp_rename [@objname=] ‘object_name’, [@newname=] ‘new_name’ [, [@objtype=] ‘object_type’] 其中:object_name为视图的当前名称 new_name为视图的新名称 object_type为重命名对象的类型,默认值为NULL
13.1 约束
如在创建表时指定了主键,SQL Server 会自动创建一个“PK_”且后跟表名的主键索 引,这个索引默认是聚集索引,同时也是一 个唯一索引。
13.1 约束
13.1 约束 2.FOREIGN KEY约束 可以约束表之间的关系,为表的一列或多 列数据提供参照完整性。
CREATE TABLE worker /*职工表*/ ON ACTION: 指定删除 ( no int PRIMARY KEY, /*编号为主键 */ 因错误而失败。另一 name char (8), /* 姓名 */ 个选项CASCADE:指 sex char (2), /*性别*/ 定删除已删除行的外 dno int /*部门号 */ 键的所有行。 FOREIGN KEY REFERENCES department (dno) ON DELETE NO ACTION, address char (30), /*地址*/ )
表示返 回参数
14.4 存储过程的参数 例:设计存储过程stud1_degree,能根据学号和 课程号来返回成绩等级。
14.4 存储过程的参数 4.存储过程的返回值 存储过程在执行后会返回一个整型值, 如为0则表示执行成功,如为负则表示出 错。 例:EXEC @i = stud1_degree '101', '3-105', @dj OUTPUT
14.2 创建存储过程 1.使用SQL Server管理控制器创建
14.2 创建存储过程 2.使用CREATE PROCEDURE创建 CREATE PROC[EDURE] 存储过程名 [;number] [{@parameter data_type} [VARYING] [=default] [OUTPUT] ][,…n] [WITH {RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION} ] [FOR REPLICATION] AS sql_statement […n]
12.1 创建视图和删除视图 一、创建视图
SQL Server2005提供了2种方法来创建视图:
使用SQL Server控制管理器
使用CREATE VIEW语句
12.1 创建视图和删除视图
CREATE VIEW view_name [ ( column [, …n] ) ]
[ WITH view_attribute [,…n] ]
12.3 视图定义的修改和信息查看 三、查看视图的信息
SQL Server2005提供了2种方法来查看视图信息:
使用SQL Server控制管理器
使用存储过程sp_helptext sp_helptext [@objname=] ‘object_name’,
第十三章 数据库完整性
数据库完整性是确保数据库中的数据的一致 性和正确性 13.1 约束 13.2 默认值 13.3 规则
14.3 执行存储过程 例:执行存储过程stud_degreewenku.baidu.com
14.4 存储过程的参数 1.在存储过程中使用参数 例:设计存储过程maxno,以学号为参数, 输出指定学号学生的所有课程中最高分和对 应的课程名。
14.4 存储过程的参数 执行存储过程 方式1:EXEC maxno 105 方式2:EXEC maxno @no=105
视图在数据库中是作为一个独立的对象进行存储 的。视图和查询很相似,但也有区别:
存储方式:视图存储为数据库设计的一部分,而查询则不是 更新结果:对视图和查询的结果集更新限制是不同的 排序结果:可以排序任何查询结果,而视图只有包括TOP子 句时才能排序 参数设置:可以为查询创建参数,但不能为视图创建参数 加密:可以加密视图,但不能加密查询。
可以一次删除一个或多个视图
12.2 使用视图 1.使用视图进行数据查询 SELECT * FROM st1_degree 2.通过视图向基表中插入数据
一般只针对简单的视图。要符合下面条件: 需要有插入数据的权限 对于视图中未引用的字段,数据表应该允许为空 或有默认值 视图不能包含多个字段值的组合以及统计函数 视图不能包含DISTINCT或GROUP BY 不能在一个语句中对多个基表使用数据修改语句
14.5 存储过程的管理 2.修改存储过程 ALTER PROC[EDURE] 存储过程名[参数列 表] AS sql_statement 3.重命名存储过程 sp_rename 原存储过程名,新存储过程名 4.删除存储过程 DROP PROCEDURE 存储过程列表
自学要求与上课安排
●自学与上机内容: 自学第15章 ●上机内容: 完成上机实习:做完上机练习7的第七 部分。 做的快的同学可做上机练习7的第八部 分。
12.1 创建视图和删除视图 书上例12.2创建名为st1_degree的视图,包括 所有学生的姓名、课程和成绩。
12.1 创建视图和删除视图 二、删除视图
SQL Server2005提供了2种方法来删除视图:
使用SQL Server控制管理器
使用DROP VIEW语句
DROP VIEW {view_name} [,…n]
14.4 存储过程的参数 2.在存储过程中使用默认参数 例:设计存储过程maxno1,以学号为参数, 学号默认为101,输出指定学号学生的所有课 程中最高分和对应的课程名。
14.4 存储过程的参数 3.在存储过程中使用返回参数 例:设计存储过程average,返回指定学号的代 表姓名和平均分的2个参数@st_name、@st_avg
14.2 创建存储过程 例:创建存储过程stud_degree用于检索所有 学生的成绩记录
14.3 执行存储过程 [EXEC[UTE]] [@return_status = ] {存储过程名 [;number]| @procedure_name_var} [[@parameter=]{value | @variable [OUTPUT] | [DEFAULT]] [,…n] [WITH RECOMPILE] 其中OUTPUT指定存储过程必须返回一个参数 DEFAULT根据过程的定义提供参数的默认值 WITH RECOMPILE强制编译新的计划
ALTER TABLE table8 ADD CONSTRAINT con1
DEFAULT getdate() FOR C3
13.2 默认值 2.使用默认对象
默认对象是单独存储的,删除表时 DEFAULT 约束会自动删除,但默认对象不会删除。
13.3 规则 规则限制了可以存储在表中或者用户定义数 据类型的值。
规则与CHECK约束功能基本相同,但一个列 只能应用一个规则,却可以应用多个CHECK约 束。CHECK可作为CREATE TABLE语句的一 部分进行指定,而规则以单独的对象创建,然 后绑定到列上。
13.3 规则
第十四章 存储过程
14.1 概述 14.2 创建存储过程 14.3 执行存储过程 14.4 存储过程的参数
使用CREATE DEFAULT创建默认对象, 然后使用存储过程sp_bindefault来绑定到指 定列上
13.2 默认值 1.创建表时指定默认列 1)使用SQL Server管理控制器
性别默 认为男
13.2 默认值 2)使用T-SQL语言
默认为10
默认为当 前日期
也可以通过ALTER TABLE来给列加上默认值:
AS select_statement [WITH CHECK OPTION] 其中WITH CHECK OPTION是强制视图上执行的所 有数据修改都必须符合select_statement设置的准则。 view_attribute:ENCRYPTION,防止将视图作为SQL Server复制的一部分发布;SCHEMABINDING,把视 图绑定到架构上;VIEW_METADATA,指定为引用 视图的查询请求浏览模式的元数据时,返回有关视图 的元数据信息,而不是基表或表。
13.1 约束
13.1 约束 5.列约束和表约束 列约束被指定为列定义的一部分,且仅适 用于那个列 表约束的声明与列的定义无关,适用于表 中一个以上的列 当一个约束中必须包含一个以上的列时, 必须使用表约束
13.2 默认值 SQL Server2005提供了两种使用默认值的 方法
创建表时指定默认值
相关文档
最新文档