资源描述
实验1 SQL Server的安装与服务器管理
———————————————————————————————— 作者:
———————————————————————————————— 日期:
26
个人收集整理 勿做商业用途
实验1 SQL Server的安装与服务器管理
实验目的
1.了解SQL Server 2005主要技术、新特性、新增功能;
2。掌握SQL Server 2005安装软硬件要求、安装过程及各种主要实用工具的用途。
3。掌握SQL SERVER 2005的安装、启动、登录。
4.服务器注册与连接
实验内容及步骤
一.安装、启动、登录SQL Server 2005
1。安装SQL Server 2005
1)将SQL Server 2005(中文开发版)安装盘插入光驱后,SQL Server 2005安装盘将自动启动安装程序;或手动执行光盘根目录下的Autorun.exe文件,这两种方法都可进行SQL Server 2005的安装。出现如下画面.
图1-1 Microsoft SQL Server安装盘界面
2)单击【下一步】按钮,进入【欢迎使用Microsoft SQL Server 安装向导】界面。
图1—2 Microsoft SQL Server 安装向导界面
3)单击【下一步】按钮,进入【系统配置检查】界面。检查完毕将显示检查结果
图1—3系统配置检查界面
4)检查如果没有错误,单击【下一步】按钮,进入【注册信息】界面
图1-4 安装程序注册信息界面
5)在姓名和公司文本框中输入您的姓名和您公司的名称,单击【下一步】按钮,进入【要安装的组件】界面.
图1-5 安装的组件界面
6)单击【下一步】按钮,进入【实例名】界面。选择默认实例
图1-6实例名界面
7)单击【下一步】按钮,进入【服务帐户】界面
图1-7服务帐户界面
8)选择【使用内置系统帐户】,单击【下一步】按钮,进入【身份验证模式】界面.选择混合模式,并设置密码。
图1—8 身份验证模式界面
9)单击【下一步】按钮,进入【准备安装】界面
图1-9准备安装界面
10)检查设置信息是否正确,如果正确,单击【安装】按钮,进入【安装进度】界面。中间会提示插入第二张盘。
图1—10安装进度界面
11)安装完成后,单击【下一步】按钮,进入【完成Microsoft SQL Server 2005 安装】界面。根据用户选择安装的组件和用户不同的计算机配置,这一过程会持续30~70分钟不等。
2.启动、登录SQL Server 2005
从桌面依次选择【开始】/【所有程序】/【Microsoft SQL Server 2005】/【SQL Server Management Studio】命令,弹出【连接到服务器】对话框,填入相应信息,单击【连接】。
图1—11 连接服务器界面
二. SQL SERVER服务器管理
1.创建服务器组
一个网络系统中,可能有多个SQL Server服务器,可以对这些SQL Server服务器进行分组管理。分组的原则往往是依据组织结构原则,如将公司内一个部门的几个SQL Server服务器分为一组。SQL Server分组管理由SQL Server管理平台来进行。
图1—12 打开新建服务器组对话框
图1-13 新建服务器组窗口
2。 服务器注册与连接
在SQL Server管理平台中注册服务器可以存储服务器连接信息,以供将来连接时使用。
有三种方法可以在SQL Server管理平台中注册服务器:
(1)在安装管理平台之后首次启动它时,将自动注册 SQL Server 的本地实例;
(2)可以随时启动自动注册过程来还原本地服务器实例的注册;
(3)可以使用 SQL Server管理平台的“已注册的服务器"工具注册服务器。
在注册服务器时必须指定以下选项,如图1—14所示:
(1)服务器的类型。
(2)服务器的名称。
(3)登录到服务器时使用的身份验证的类型,以及登录名和密码(如果需要)。
(4)注册了服务器后要将该服务器加入到其中的组的名称。
图1—14新建服务器注册窗口
要和已注册的服务器实现“连接”,则需要使用右键单击一个服务器,指向“连接”,然后单击“对象资 源管理器” 如图1—15所示。与连接服务器相反的是断开服务器,只要在所要断开的服务器上单击右键,选择“断开”即可。注意断开服务器并不是从计算机中将服务器删除,而只是从SQL Server管理平台中删除了对该服务器的引用。需要再次使用该服务器时,只需在SQL Server管理平台中重新连接即可。
图1-15连接已注册的服务器
实验2数据库的创建与管理
实验目的
1。掌握SQL Server Management Studio 工具的使用;
2.掌握SQL Server中数据库的概念、数据库文件的类型以及系统数据库;
3。熟悉创建数据库的两种方法,掌握用SSMS创建数据库的操作;
4。掌握查看、修改数据库属性的方法;
5。掌握缩小、更名与删除数据库的方法
6。掌握数据库分离与附加。
实验内容及步骤
一 .SQL Server Management Studio的使用
Management Studio 是为 SQL Server 数据库管理员和开发人员提供的新工具。此工具由 Microsoft Visual Studio 内部承载,它提供了用于数据库管理的图形工具和功能丰富的开发环境.Management Studio 将 SQL Server 2000 企业管理器、Analysis Manager 和 SQL 查询分析器的功能集于一身,还可用于编写 XML 语句.
1。 启动SQL Server Management Studio
在【开始】菜单上,依次指向【所有程序】、Microsoft SQL Server 2005,再单击SQL Server Management Studio,出现如图2—1所示的【连接到服务器】对话框
图2—1 连接到服务器对话框
1)在【连接到服务器】对话框中提供5种服务器类型,包括数据库引擎、Analysis Services、Reporting Services、SQL Server Mobile及Integration Services,验证默认设置,再单击【连接】按钮,出现如图2—2所示的“Microsoft SQL Server Management Studio”界面。
2)默认情况下,Management Studio 中将显示三个组件窗口。
.已注册的服务器——列出的是经常管理的服务器。
。对象资源管理器--是服务器中所有数据库对象的树状视图.
.文档窗口——是 Management Studio 中的最大部分。
图2-2 Microsoft SQL Server Management Studio界面
二.数据库管理
1创建数据库
在SQL Server2005创建数据库有两种方法:
1)使用SQL Server管理平台创建数据库
(1)启动“SQL Server Management Studio”。
(2)在【对象资源管理器】的树状结构中右击【数据库】,在出现的快捷菜单中选择【新建数据库】菜单项,如图2-3所示。
(3)出现【新建数据库】窗口,如图2—4所示。
图2-3 创建数据库界面
(4)在图2—4【常规】选项页的【数据库名称】处输入“teaching”,在【逻辑名称】下输入主数据库文件的逻辑名称为“teaching_data”,在【初始大小】下可以设置主数据库文件的大小,单击【自动增长】下的【浏览】按钮,出现如图2-5所示的【更改自动增长设置】对话框。
(5)在图2—4中的【路径】下单击【浏览】按钮,出现如图2—6所示的【定位文件夹】对话框。
图2—4新建数据库窗口
图2—5 更改自动增长设置对话框 图2-6 定位文件夹对话框
(7)在该对话框中可以改变文件存放路径,本例选择默认路径,设置好后单击【确定】按钮。
(8)在数据库文件框中的第二行可以同样设置日志文件。
(9)可以单击【添加】按钮增加数据库的数据文件及日志文件,如图2—7所示建立了一个主数据库文件teaching_data、一个辅助数据库文件teaching_data1、两个日志文件teaching_log和teaching_log1。
(10)在图2-7中也可以单击【删除】按钮删除设置错误的数据库文件。
(11)在图2—7中左侧选择【选项】页,出现如图2—8所示的【选项】界面。
(12)在图2-8中显示数据库的各选项及其值。图2—9显示了【文件组】界面。
(13)设置好各项后单击【确定】按钮,返回SQL Server Management Studio界面,数据库创建完成,如图2-10所示。
图2—7 添加数据库文件界面 图2—8 选项界面
图2-9 文件组界面 图2—10 teaching数据库创建完成界面
2)使用Transact—SQL语言创建数据库
使用Transact—SQL语句创建数据库的语法如下:
CREATE DATABASE database_name
[ ON
[PRIMARY]
( [NAME = logical_file_name,]
FILENAME = ‘os_file_name’
[,SIZE = size]
[,MAXSIZE = {max_size|UNLIMITED}]
[,FILEGROWTH = growth_increment])[,…n]
<filegroup>::=
FILEGROUP filegroup_name <filespec〉 [,…n]
LOG ON
(NAME = logical_file_name,
FILENAME = ‘os_file_name’
SIZE = size,
MAXSIZE = {max_size | UNLIMITED},
FILEGROWTH = growth_increment)]
例1 创建一个student数据库,其中主文件组包含主要数据文件student1_dat和次要数据文件student2_dat。有两个次要文件组:studentGroup1包含两个次要数据文件student1Fi1_dat 和 studentFi2_dat, studentGroup2包含student2Fi1_dat和student2Fi2_dat两个次要数据文件.日志的逻辑文件名为student_log,此日志文件存储在c:\mssql\data\studentlog.ldf中.
CREATE DATABASE student
ON PRIMARY
(NAME = student1_dat,
FILENAME = ‘c:\student1_dat.mdf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%),
(NAME = student2_dat,
FILENAME = ‘c:\student2_dat.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%),
FILEGROUP studentGroup1
( NAME = student1Fi1_dat,
FILENAME = ‘c:\student1Fildt.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5) ,
( NAME = student1Fi2_dat,
FILENAME = ‘c:\student2Fildt.ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5),
FILEGROUP studentGroup2
(NAME = student2Fil_dat,
FILENAME = ‘c:\SG2Fi1dt。ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5),
(NAME = student2Fi2_dat,
FILENAME = ‘c:\SG2Fi2dt。ndf’,
SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5)
LOG ON
(NAME = ‘student_log',
FILENAME = ‘c:\studentlog.ldf',
SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB)
2使用ALTER DATABASE语句修改数据库
使用Transact—SQL语句修改数据库的语法如下:
Alter database databasename
{add file〈filespec〉[,…n] [to filegroup filegroupname]
|add log file <filespec>[,…n]
|remove file logical_file_name [with delete]
|modify file <filespec〉
|modify name=new_databasename
|add filegroup filegroup_name
|remove filegroup filegroup_name
|modify filegroup filegroup_name
{filegroup_property|name=new_filegroup_name}}
例2 更改数据库student时为student添加一个辅助文件,文件名为studentfz,存储在c:\ studentfz.ndf中,初始大小为3MB,最大值为50MB,增长量为3MB。
USE student
ALTER DATABASE student
ADD FILE
(NAME = studentfz,
FILENAME=’c:\studentfz。ndf',
SIZE=3MB,
MAXSIZE=50,
FILEGROWTH=3)
例3向数据库student中添加一个含有2个文件的文件组
USE student
GO
ALTER DATABASE student ADD FILEGROUP studentfg1
GO
ALTER DATABASE student
ADD FILE
(NAME=studentfz1,
FILENAME='C:\studentfz1。ndf',
SIZE =5MB,
MAXSIZE=50MB,
FILEGROWTH =5),
(NAME=studentfz2,
FILENAME=’C:\studentfz2。ndf',
SIZE =5MB,
MAXSIZE=50MB,
FILEGROWTH =5)
TO FILEGROUP studentfg1
例4向student数据库中添加2个5MB的日志文件
USE student
GO
ALTER DATABASE student
ADD LOG FILE
(NAME =studentlog2,
FILENAME=’c:\studentlog2.ldf',
SIZE =5MB,
MAXSIZE = 10MB,
FILEGROWTH =5),
(NAME =studentlog3,
FILENAME=’c:\studentlog3。ldf’,
SIZE =5MB,
MAXSIZE = 10MB,
FILEGROWTH =5)
3使用DROP DATABASE语句修改数据库
使用Transact-SQL语句删除数据库的语法如下
Drop语句可以从SQL Server中一次删除一个或多个数据库。其语法如下:
Drop database database_name[,…n]
例5 删除数据库student中的一个文件studentfz.ndf
USE student
GO
ALTER DATABASE student REMOVE FILE studentfz
例6 删除student数据库
DROP DATABASE student
4 。查看、修改数据库属性
1) 使用图形工具查看
在【对象资源管理器】窗口中右击要查看的数据库名称,在级联菜单中选择属性,会出现如图2-11所示的数据库属性对话框。通过选择左侧的不同选项,可以查看数据库的相应信息和修改相应参数.
2)使用SQL语句查看
可以通过系统存储过程查看数据库信息。
语法格式:EXEC sp_helpdb [database_name]
若缺省数据库名则显示所有数据库信息.
图2-11 teaching数据库属性对话框
例7查看教学数据库的信息.
EXEC sp_helpdb teaching
结果如图2—12所示。
例8 EXEC sp_helpdb
结果如图2—13所示
图2—12 teaching数据库信息
图2—13 所有数据库信息
例9创建教学管理“JXGL”数据库。
1)在查询窗格中输入如下命令,然后单击“运行"钮执行该命令.
CREATE DATABASE JXGL;
2) 清空查询窗格后,在JXGL数据库中建立STUDENT表,并插入记录,然后执行。
CREATE TABLE STUDENT
( Sno char(5) not null unique,
Sname char(20) not null unique,
Ssex char(1),
Sage int,
Sdept char(20));
INSERT INTO STUDENT VALUES(‘95001’,'李勇’,'M’,20,’CS’);
INSERT INTO STUDENT VALUES(‘95002’,’刘晨’,’F',19,'IS’);
INSERT INTO STUDENT VALUES(‘95003’,’王敏’,'F’,18,’MA’);
INSERT INTO STUDENT VALUES(‘95004',’张立’,’M’,18,’IS');
3) 清空查询窗格后,JXGL数据库中建立COURSE表,并插入记录,然后执行。
CREATE TABLE COURSE
( Cno char(2) not null PRIMARY KEY(Cno),
Cname char(20),
Cpno char(2),
Ccredit smallint);
INSERT INTO COURSE VALUES(‘1',’数据库’,’5',4);
INSERT INTO COURSE VALUES(‘2',’数学’,' ’,2);
INSERT INTO COURSE VALUES(‘3',’信息系统’,'1’,4);
INSERT INTO COURSE VALUES(‘4’,’操作系统’,'6’,3);
INSERT INTO COURSE VALUES(‘5’,’数据结构’,’7',4);
INSERT INTO COURSE VALUES(‘6',’数据处理',' ’,2);
INSERT INTO COURSE VALUES(‘7’,’C语言’,'6’,4);
4) 清空查询窗格后,JXGL数据库中建立SC表,并插入记录,然后执行。
CREATE TABLE SC
( Sno char(5) not null,
Cno char(2) not null,
Grade smallint,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno) REFERENCES STUDENT(Sno),
FOREIGN KEY(Cno) REFERENCES COURSE(Cno));
INSERT INTO SC VALUES(‘95001’,‘1’,92);
INSERT INTO SC VALUES(‘95001’,‘2’,85);
INSERT INTO SC VALUES(‘95001',‘3’,88);
INSERT INTO SC VALUES(‘95002’,‘2’,90);
INSERT INTO SC VALUES(‘95002’,‘3',80);
5) 查看三个表中的内容。
分别执行以下命令,查看STUDENT、COURSE和SC数据表中的内容。
SELECT * FROM STUDENT;
SELECT * FROM COURSE;
SELECT * FROM SC;
6) 修改数据表结构。
①向STUDENT表增加“入学时间”列,其数据类型为日期型,用SELECT命令查看表中内容。
ALTER TABLE STUDENT ADD SCOME DATETIME;
SELECT * FROM STUDENT;
②删除“入学时间”列,再用SELECT命令查看表中内容。
ALTER TABLE STUDENT DROP COLUMN SCOME;
SELECT * FROM STUDENT;
(9) 删除数据表。
DROP TABLE SC;
DROP TABLE STUDENT;
DROP TABLE COURSE;
(10) 删除数据库命令.
切换到其他任意数据库,然后可用如下命令删除JXGL数据库。
DROP DATABASE JXGL;
练习题
1.创建数据库,用SSMS创建数据库
1)创建数据库Student:
2)右击数据库,单击【新建数据库】
3)输入数据库名称Student
4)选择【数据文件】标签,增加一个文件student1,设置初始大小为5MB
5)选择【事务日志】标签,增加一个日志文件student1_log,初始大小为5MB
6)单击【确定】按钮,开始创建数据库
2.用Transact-SQL语句创建数据库
打开信件查询窗口,创建数据库Student1。数据库的参数如下表所示。
参数
参数值
数据库名称
Student1
数据库逻辑文件名
Student1_dat
操作系统数据文件名
C:\mssql\data\Student1_dat。mdf
数据文件的初始大小
10MB
数据文件最大值
50MB
数据文件增长量
原来的20%
日志逻辑文件名
Student_log
操作系统日志文件名
C:\mssql\data\Student1_log.ldf
日志文件初始大小
5MB
日志文件的最大值
25MB
日志文件增长量
5MB
1)设置数据库选项:
使用企业管理器修改数据库选项。右击数据库,单击“属性",选择“选项”标签,弹出如图所示窗体,选中“数据库为只读”复选框.这样数据库就变为只读数据库。然后打开查询
2)收缩数据库:
使用企业管理器收缩数据库。右击数据库,选择“任务",单击“收缩数据库”,弹出图示窗体。键入收缩量。使用T—SQL语句压缩数据库.打开查询分析器键入
DBCC SHRINKDATABASE(student,2)将student数据库压缩成为2MB。
3)更改数据库:
打开新建查询窗口,更改数据库student,参数如下:
参数
参数值
数据库名
Student
增加的文件组名
StudentFG1
增加的文件1的逻辑名
Studentdat3
文件1在磁盘中的目录
C:\tdat3.ndf
文件1的初始大小
5MB
文件1的最大值
50MB
文件1的增长量
5MB
增加的文件2逻辑名
Studentdat4
文件2磁盘中的目录
C:\tdat4。ndf
文件2初始大小
5MB
文件2最大值
50MB
文件2增长量
5MB
新增日志逻辑文件名
Studentlog2
日志文件在磁盘中的目录
D:\studentlog。ldf
日志文件初始值
5MB
日志文件最大值
100MB
日志文件增长量
5MB
实验3数据表的创建与管理
实验目的
1. 掌握SQL Server 2005数据表的类型、数据类型。
2. 掌握SQL Server 2005使用图形界面和使用SQL语句创建数据表的两种方法。
3. 掌握数据表结构的查看、修改及删除的操作.
4. 掌握数据的完整性,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
({〈column_definition〉|column_name AS computed_column_expression|
<table_constraint〉}[,…n])
[ON{ filegroup|DEFAULT}]
[TEXTIMAGE_ON { filegroup|DEFAULT}]
<column_definition>::={column_name data_type}
[COLLATE <collation_name〉]
[[DEFAULT constant_expression]
|[IDENTITY[(seed,increment )[NOT FOR REPLICATION]]]]
[ROWGUIDCOL]
[〈column_constraint>][。。。n]
例1创建了一个工人信息表,它包括工人编号、姓名、性别、出生日期、职位、工资和备注信息。
SQL语句的程序清单如下:
CREATE TABLE worker
(number char(8) not null,
name char(8) NOT NULL,
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 建立一个SC表,定义SNO,CNO共同组成SC的主键
程序清单如下:
CREATE TABLE SC
(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(
id char(8),
name char(10),
sex char(2),
constraint pk_id primary key(id),
constraint uk_identity unique(name)
)
3)检查约束
检查约束对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性.
当使用检查约束时,应该考虑和注意以下几点:
• 一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关;
• 一个表中可以定义多个检查约束;
• 每个CREATE TABLE语句中每个字段只能定义一个检查约束;
• 在多个字段上定义检查约束,则必须将检查约束定义为表级约束;
• 当执行INSERT语句或者UPDATE语句时,检查约束将验证数据;
• 检查约束中不能包含子查询。
例4建立一个SC表,定义SCORE 的取值范围为0到100之间。
程序清单如下:
CREATE TABLE SC
(SNO CHAR(5),
CNO CHAR(5),
SCORE NUMERIC(5,1) CONSTRAINT SCORE_CHK CHECK(SCORE〉=0 AND SCORE 〈=100))
4)默认(DEFAULT)约束
默认约束指定在插入操作中如果没有提供输入值时,则系统自动指定值。默认约束可以包括常量、函数、不带变元的内建函数或者空值。使用默认约束时,应该注意以下几点:
(1)每个字段只能定义一个默认约束;
(2)如果定义的默认值长于其对应字段的允许长度,那么输入到表中的默认值将被截断;
(3)不能加入到带有IDENTITY属性或者数据类型为timestamp的字段上;
(4)如果字段定义为用户定义的数据类型,而且有一个默认绑定到这个数据类型上,则不允许该字段有默认约束.
例5为 dept字段创建默认约束。
程序清单如下:
CREATE TABLE SC
(SNO CHAR(5) NOT NULL,
CNO CHAR(5) NOT NULL,
SCORE NUMERIC(3),
Dept char(10) constraint con_dept default ‘计算机’
)
5) 外部键约束
外键 (FOREIGN KEY) 是用于建立和加强两个表数据之间的链接的一列或多列。外部键约束用于强制参照完整性。当使用外部键约束时,应该考虑以下几个因素:
• 外部键约束提供了字段参照完整性;
• 外部键从句中的字段数目和每个字段指定的数据类型都必须和REFERENCES从句中的字段相匹配;
• 外部键约束不能自动创建索引,需要用户手动创建;
• 用户想要修改外部键约束的数据,必须有对外部键约束所参考表的SELECT权限或者REFERENCES权限;
• 参考同一表中的字段时,必须只使用REFERENCES子句,不能使用外部键子句;
• 主键和外部键的数据类型必须严格匹配
例6 建立一个SC表,定义SNO,CNO为SC的外部键。
程序清单如下:
CREATE TABLE SC
(SNO CHAR(5) NOT NULL
CONSTRAINT S_FORE FOREIGN KEY REFERENCES S(SNO),
CNO CHAR(5) NOT NULL
CONSTRAINT C_FORE FOREIGN KEY REFERENCES C(CNO),
SCORE NUMERIC(3),
CONSTRAINT S_C_PRIM PRIMARY KEY (SNO,CNO))
6) 空值(NULL)约束
空值(NULL)约束用来控制是否允许该字段的值为NULL.NULL值不是0也不是空白,更不是填入字符串的“NULL”字符串,而是表示“不知道”、“ 不确定”或“没有数据”的意思.
当某一字段的值一定要输入才有意义的时候,则可以设置为NOT NULL。如主键列就不允许出现空值,否则就失去了唯一标识一条记录的作用。空值(NULL)约束只能用于定义列约束.
创建空值(NULL)约束常用的操作方法有如下两种:
展开阅读全文