数据库-实验3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验3数据表的创建与管理
实验目的
1.掌握SQL Server 2005数据表的类型、数据类型。
2.掌握SQL Server 2005创建数据表的不同方法。
3.使用图形界面和使用SQL语句。
4.掌握数据表结构的查看、修改及删除的操作。
5.掌握数据的完整性,6个完整性约束的应用。
实验内容及步骤
一、表的创建
1.利用SQL Server管理平台创建表
在SQL Server管理平台中,展开指定的服务器和数据库,打开想要创建新表的数据库,右击表对象,并从弹出的快捷菜单中选择“新建表”选项,如图3-1所示。在图3-1的对话框中,可以对表的结构进行更改,设置主键及字段属性,使用SQL Server管理平台可以非常直观地修改数据库结构和添加数据。在表中任意行上右击,则弹出一个快捷菜单,如图3-2所示。
图3-1 新建表对话框图3-2 设置字段属性对话框
2. 利用create命令创建表
使用create命令创建表非常灵活,它允许对表设置几种不同的选项,包括表名、存放位置和列的属性等。其完整语法形式如下:
CREATE TABLE [database_name.[owner].|owner.]table_name
({
[ON{ filegroup|DEFAULT}]
[TEXTIMAGE_ON { filegroup|DEFAULT}]
[COLLATE
[[DEFAULT constant_expression]
|[IDENTITY[(seed,increment )[NOT FOR REPLICATION]]]]
[ROWGUIDCOL]
[
例1创建了一个工人信息表,它包括工人编号、姓名、性别、出生日期、职位、工资和备注信息。SQL语句的程序清单如下:
CREATE TABLE worker (
number char(8)not null,
wname char(8)NOT NULL, --此处不能用name
sex char(2)NULL,
birthday datetime null,
job_title varchar(10)null,
salary money null,
memo ntext null);
3完整性约束
约束是SQL Server提供的自动保持数据库完整性的一种方法,它通过限制字段中数据、记录中数据和表之间的数据来保证数据的完整性。在SQL SERVER 中,对于基本表的约束分为列约束和表约束。
列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用’,’分隔,定义表约束时必须指出要约束的那些列的名称。
完整性约束的基本语法格式为:
[CONSTRAINT constraint_name(约束名)] <约束类型>
约束不指定名称时,系统会给定一个名称。在SQL Server 2005中有6种约束:主键约束(primary key constraint)、惟一性约束(unique constraint)、检查约束(check constraint)、默认约束(default constraint)、外部键约束(foreign key constraint)和空值(NULL)约束。
1)主键(PRIMARY KEY)约束
PRIMARY KEY约束用于定义基本表的主键,它是惟一确定表中每一条记录的标识符,其值不能为NULL,也不能重复,以此来保证实体的完整性。PRIMARY KEY与UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别:
①在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个
UNIQUE约束;
②对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列
都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。不能为同一个列或一组列既定义UNIQUE约束,又定义PRIMARY KEY约束。
PRIMARY KEY既可用于列约束,也可用于表约束。
例2 建立一个SC1表,定义SNO,CNO共同组成SC的主键,程序清单如下:
CREATE TABLE SC1 (
SNO CHAR(5)NOT NULL,
CNO CHAR(5)NOT NULL,
SCORE NUMERIC(3),
CONSTRAINT SC_PRIM PRIMARY KEY(SNO,CNO));
2)惟一性约束
惟一性约束用于指定一个或者多个列的组合值具有惟一性,以防止在列中输入重复的值。定义了UNIQUE约束的那些列称为唯一键,系统自动为唯一键建立唯一索引,从而保证了唯一键的唯一性。当使用惟一性约束时,需要考虑以下几个因素:使用惟一性约束的字段允许为空值;
➢一个表中可以允许有多个惟一性约束;
➢可以把惟一性约束定义在多个字段上;
➢惟一性约束用于强制在指定字段上创建一个惟一性索引;
➢默认情况下,创建的索引类型为非聚集索引。
例3创建一个学生信息表,其中name字段具有惟一性。
create table student (
sid char(8),
sname char(10),
sex char(2),
constraint pk_id primary key(sid),
constraint uk_identity unique(sname));