任课教师 周学时 学分 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 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据库实验指导书-新版-参考(6)在线全文阅读。
相关推荐: