数据库实验指导书-新版-参考(6)

2018-11-22 20:04

任课教师 周学时 学分 CHAR INT INT 8 二、内容要点分析 1、创建表

CREATE TABLE [数据库名.拥有者.] 表名 (<字段定义>[,?n])

<字段定义>::={字段名 数据类型} [[DEFAULT 常量表达式]

|[IDENTITY [(种子,增量)]] ]

[<字段约束>][?n] 2、修改表

ALTER TABLE 表名

{[ ALTER COLUMN /*对现有字段属性进行修改*/ 字段名 新数据类型 [(精度[,小数位数])] [ NULL | NOT NULL ]

| ADD /*添加字段*/ {字段定义|字段名 AS 计算字段表达式}[,?n] | DROP COLUMN 字段名[,?n] /*删除字段*/ | ADD CONSTRAINT 约束名称 /*添加约束*/ | DROP CONSTRAINT 约束名称 /*删除约束*/ 3、查看表结构信息

[EXEC] Sp_help 表名 4、删除表

DROP TABLE 表名[,?n]

三、实验作业

1、在查询分析器中使用T-SQL语句创建“学生”、“学期成绩”表和“课程注册”表。 2、显示创建后各表的结构情况。 3、修改表:

(1)在“学生”表添加一个“备注”字段。

(2)将“学生”表中“专业”字段的数据类型修改为VARCHAR,长度为30。 (3)删除“学期成绩”表中的“备注”字段。

(4)将“学生”表中的“地区来源”字段名称修改为“学生来源”,其余不变。 创建“课程注册”表范例:

Use 学生信息 Go

Create table 课程注册 (课程编号 char(2) not null, 课程名称 char(10), 任课教师 char(8), 周学时 int null,

- 26 -

学分 int null) Go

内容二 设置数据完整性

一、内容要点分析

1、 用户定义的完整性是应用领域需要遵守的约束条件。约束是SQL SERVER提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。

主键约束(PRIMARYKEY)---用来强制数据的实体完整性,唯一标识表中的每行记录。特点:每个表只能有一个主键,可以是一列或多列的组合。主键值必须唯一并且不能为空。

唯一约束(UNIQUE)---用来强制数据的实体完整性,限制表的非主键列中不允许输入重复值。特点:一个表中可以定义多个唯一约束,可以是一列或多列的组合。空值可以出现在某列中一次。

外键约束(FOREIGNKEY)---用来强制数据的参照完整性,维护相关联的表之间数据的一致性关系。特点:可以是一列或多列的组合,虽不是该表的主键,但却是另一个表的主键。

检查约束(CHECK)---用来强制数据的域完整性。特点:使用逻辑表达式来限制表中的列可以接受哪些数据值。

默认约束(DEFAULT)---用来强制数据的域完整性,为表中某列建立一个默认值。特点:使用默认约束可以提高输入记录的速度。

自动编号标识(IDENTITY)---指定列是否是标识列。

特点:‘标识’、‘标识种子’及‘标识递增量’用来设置字段的自动编号属性。一个表只能创建一个标识列。不能对标识列使用绑定默认值和DEFAULT约束。必须同时指定种子和增量,或者两者都不指定。默认值(1,1)。能够成为标识列的数据类型有int、smallint、tinyint、numeric和decimal等系统数据类型;如果其数据类型为numeric和decimal,不允许出现小数位数。 ★‘标识’为‘是’或‘否’。

★ 标识种子:指定标识列的初始值。 ★ 标识递增量:指定标识列的增量值。 2、规则

规则是一种数据库对象,用来限制输入值的取值范围,实现强制数据的域完整性。用于执行与 CHECK 约束相同的功能。 规则与CHECK约束的区别:

规则需要单独创建后绑定到列上;CHECK约束可在CREATE TABLE或ALTER TABLE语句中作为表的一部分进行指定。

一列只能应用一个规则,但可有多个CHECK约束 规则一旦定义,就可多次被应用。

注:要创建与原有规则同名的新规则,必须在创建新规则之前将原有规则除去,而在除去规则之前,必须首先解除绑定。 (1)规则的创建

CREATE RULE 规则名称 AS 条件表达式 说明:

条件表达式包含一个变量。每个局部变量的前面都有一个 @ 符号。该表达式引用通过

- 27 -

UPDATE 或 INSERT 语句输入的值。在创建规则时,可以使用任何名称或符号表示值,但第一个字符必须是 @ 符号。 (2)规则的绑定

SP_BINDRULE '规则名称', '表名.字段名'

SP_BINDRULE '规则名称', '自定义数据类型名' 说明: 1) 规则必须与表字段的数据类型兼容。 2) 当一个字段上同时绑定规则和默认值时,默认值应该满足规则的要求。 (3)规则的解绑

SP_UNBINDRULE '表名.字段名'

SP_UNBINDRULE '自定义数据类型名' (4)规则的删除

DROP RULE 规则名称[,?n] 3、默认

使用默认创建称为默认值的对象。当绑定到列或用户定义数据类型时,如果插入时没有明确提供值,默认值便指定一个值,并将其插入到对象所绑定的列中(或者在用户定义数据类型的情况下,插入到所有列中)。它执行一些与使用 ALTER 或 CREATE TABLE 语句的 DEFAULT 关键字创建的默认值定义相同的功能。 默认对象和默认值约束的区别:

默认是独立的数据库对象,而DEFAULT约束的定义和表存储在一起,当除去表时,将自动除去默认值定义。 (1)默认的创建

CREATE DEFAULT 默认名称 AS 常量表达式 (2)默认的绑定

SP_BINDEFAULT '默认名称', '表名.字段名'

SP_BINDEFAULT '默认名称', '自定义数据类型名' 说明:默认必须与表字段的数据类型兼容。 (3)默认的解绑

SP_UNBINDEFAULT '表名.字段名'

SP_UNBINDEFAULT '自定义数据类型名' (4)默认的删除

DROP DEFAULT 默认名称[,?n]

二、实验内容

1、将“课程注册”表的“课程编号”字段设置为主键,主键名为pk_kcbh。“课程名称”字段设置唯一约束,约束名为uk_kcmc。 步骤:

(1)打开查询分析器。

(2)在查询子窗口中输入如下程序代码:

USE 学生信息 GO

ALTER TABLE 课程注册

ADD CONSTRAINT pk_kcbh PRIMARY KEY(课程编号) GO

- 28 -

ALTER TABLE 课程注册

ADD CONSTRAINT uk_kcmc UNIQUE(课程名称) GO

(3)语法检查 (4)运行代码

(5)在查询结果显示窗口查看结果并分析结果。 2、规则的应用

1)创建一个规则,并绑定到“课程注册”表的“课程编号”列,用以限制课程编号的输入范围。 步骤:

(1)打开查询分析器。

(2)在查询子窗口中输入如下程序代码:

USE 学生信息 GO

CREATE RULE KC_RULE

AS @KCBH LIKE '[1-5][0-9]' GO

EXEC SP_BINDRULE 'KC-RULE', '课程注册.课程编号' GO

(3)语法检查 (4)运行代码

(5)在查询结果显示窗口查看结果并分析结果。 2)解除KC_RULE规则的绑定,并删除该规则。 步骤:

(1)打开查询分析器。

(2)在查询子窗口中输入如下程序代码:

USE 学生信息 GO

EXEC SP_UNBINDRULE '课程注册.课程编号' GO

DROP RULE 'KC-RULE' GO

(3)语法检查 (4)运行代码

(5)在查询结果显示窗口查看结果并分析结果。 3、默认的应用

1)创建一个默认,将其绑定到“课程注册”表的“学分”字段,默认值是6。 步骤:

(1)打开查询分析器。

(2)在查询子窗口中输入如下程序代码:

USE 学生信息 GO

CREATE DEFAULT DEF_XF AS 6 GO

- 29 -

EXEC SP_BINDEFAULT 'DEF_XF', '课程注册.学分' GO

(3)语法检查 (4)运行代码

(5)在查询结果显示窗口查看结果并分析结果。 2)解除DEF_XF默认的绑定,并删除该默认。 步骤:

(1)打开查询分析器。

(2)在查询子窗口中输入如下程序代码:

USE 学生信息 GO

EXEC SP_UNBINDEFAULT '课程注册.课程编号' GO

DROP DEFAULT 'DEF_XF' GO

(3)语法检查 (4)运行代码

(5)在查询结果显示窗口查看结果并分析结果。

三、实验作业

1、分析以下代码,领会数据完整性的应用以及注释语句的用法。

create table goods

(货号名称 varchar (20) primary key, --省略constraint则约束名为默认值

库存量 int, /*int数据类型长度固定*/ 供应商 varchr (50),

状态 bit default 0, /*设置默认值*/ 价格 money,

数量 int not null check(数量>0), /*检查约束*/ 电话 varchar (20) unique , /*唯一约束*/ 定单号 int identity(100,1))

--自动编号,初值为(种子),递增量为。

2、在已创建好的各表中创建所需约束,要求如下:

(1)将“学生”表的“学号”字段设置为主键,主键名为pk_xh。并且建立自动编号标识,标识种子值为001。

(2)将“学生”表的“姓名”字段设置为不允许为空值。

(3)将“学生”表的“性别”字段设置默认约束,默认名称为df_xb,其值为‘男’。 (4)将“学期成绩”表的“学号”字段设置为外键,外键名称为fk_xh。

(5)将“学期成绩”表的“课程编号”字段设置为外键,外键名称为fk_kcbh。

(6)将“学期成绩”表的“成绩”字段设置检查约束,约束名为ck_cj,其检查条件为(成绩>=0 AND 成绩<=100)

3、在企业管理器中创建一个“学生档案”数据库,并在该数据库中创建“情况表”和“成绩表”及其约束。其中“情况表”包括如下字段:学号(从2006开始自动递增,递增量为1,主键)、姓名、性别(默认值为“男”)、电话号码、家庭住址(唯一约束)。“成绩表”

- 30 -


数据库实验指导书-新版-参考(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:10级专业英语试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: