当前位置:文档之家› 创建表与约束

创建表与约束

创建表与约束
创建表与约束

1、数据的完整性:数据完整性是要求数据库中的数据具有准确性。准确性是通过数据库表的设计和约束来实现的。

A、实体完整性约束

实体完整性约束要求表中的每一行数据都反映不同的实体,不能在表中存在完全相同的数据行。

实现方法:索引、唯一约束、主键约束或标识列属性。

B、域完整性约束

域完整性约束是给定列的输入有效性。

实现方法:限制数据类型、检查约束、输入格式、外键约束、默认值、非空约束。

C、引用完整性

在输入或删除数据行时,引用完整性约束来保持表之间已经定义的关系。

在强制引用完整性时,SQL Server禁止用户进行下列操作:

(1)当主表中没有关联的记录时,将记录添加到相关表中。

(2)更改主表中的值导致相关表中的记录孤立。

(3)从主表中删除记录,但仍存在与该记录匹配的相关记录。

实现方法:通过主键和外键之间的引用关系来实现。

D、自定义完整性约束

用户根据具体应用来定义特定的规则。如定义学生年龄必须在10到30之间。

实现方法:定义规则、存储过程或触发器

2、主键:一个表中只能有一个主键,主键保证了表中行的唯一性。一个表中可以没有主键,但一般会设置一个主键。

外键:外键是子表中对应的主键的列,外键强调了应用完整性。

3、检查约束也叫CHECK约束,用于定义列中可接受的数据或者格式,例如scores表中的score数值应当为0~100,如果不满足要求应当不允许输入。

方法:在设计scores表时,右击选择“CHECK约束”,在出现的对话框中单击“添加”按钮,添加一个新的约束。然后单击“表达式”右侧的小按钮,在弹出的“CHECK约束表达式”对话框中输入:

0<=score and score<=100

sno like ‘2009[1-9][1-9][1-9][1-9][1-9][1-9]’

SEmail LIKE ‘%@%’

Sage>=10 and Sage<=50

4、导入和导出数据:右击数据库,选择“任务”中的“导出数据”选项,在向导中选择数据库,单击“下一步”;输入文件名称并确定文件相关选项;选择是否用一条查询语

句进行复制;选择表名并设置文本文件的格式;确定是否立即运行,是否保存该转换设置,单击“下一步”一直到完成。

总结:

?创建数据库表需要确定表的列名、数据类型、是否允许为空,还需要确定主键、必要的默认值、标识列和检查约束。

?创建表的过程是规定数据列属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)的过程。

?如果建立了主表和子表的关系,则:

?子表中的相关项目数据,在主表中必须存在

?主表中相关项的数据更改了,则子表对应的数据项也必须随之更改

?在删除子表之前,不能够删除主表

实验二、创建数据库及表、完整性约束

2.数据库设计 创建文件组,将分散储存的文件指定到同一文件组FILEGROUP下。将表的索引和表构建在同一个架构SCHEMA下,可以减小数据库表的大小,以提升表查询效率。 示例代码 sql> CREATE DATABASE 销售管理 ON PRIMARY ( NAME = SalesData, FILENAME = 'C:\DB\SalesData_1.mdf', SIZE = 50MB, MAXSIZE = UNLIMITED, FILEGROWTH = 20% ), ( NAME = SalesD, FILENAME = 'D:\DB\SalesData_2.ndf', SIZE = 50MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10 MB ) LOG ON ( NAME = SalesLog, FILENAME = 'D:\DB\SalesLog.ldf', SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 10MB ) alter database 销售管理 add filegroup f1 alter database 销售管理 add file (NAME = SalesData,FILENAME = 'C:\DB\SalesData_1.mdf'), (NAME = SalesD,FILENAME = 'D:\DB\SalesData_2.ndf') to filegroup f1 CREATE SCHEMA Sales; GO; CREATE TABLE Sales.Region (Region_id int NOT NULL, Region_Name char(5) NOT NULL) WITH (DISTRIBUTION = REPLICATE); GO 3.为电话字段创建用户定义数据类型 sql>create type telephone from varchar(11) not null

实验二--通过SQL语句创建与管理数据表word版本

实验二 一、实验目的 (1)掌握查询分析器的使用。 (2)掌握通过SQL语句创建表的方法。 (3)掌握通过SQL语句修改表结构的方法。 (4)掌握通过SQL语句添加、修改、删除表数据的方法。 二、实验内容 1、通过SQL语句删除表 用SQL语句在数据库Student_info中删除实验一创建的Student表、Course表、SC表。 1、选择Student_info数据库,在该数据库环境中“新建查询”,然后完成删除操作 2、分别填写如下SQL语言 ①、drop table Student ②、drop table Course

③、drop table SC 3、删除操作完成 2、通过SQL语句创建表 用SQL语句在数据库Student_info中创建实验一中的Student表、Course表、SC表,结构如实验一中表2、表3、表4(即创建出空表即可)所示 ①、创建Student表 create table Student( Sno char(8)primary key, Sname varchar(8)not null, Sex char(2)not null, Birth smalldatetime not null, Classno char(3)not null, Entrance_date smalldatetime not null, Home_addr varchar(40) )

②、创建Course表 create table Course( Cno char(3)primary key, Cname varchar(20)not null, Total_perior smallint check(Total_perior>0), Credit tinyint check(Credit<=6 and credit>0) ) ③、创建SC表 create table SC( Sno char(8)not null, Cno char(3)not null, Grade tinyint check(Grade>=0 and Grade<=100), primary key(Sno,Cno), foreign key(Sno)references Student(Sno), foreign key(Cno)references Course(Cno) ) 3、通过SQL语句管理表结构 (1)添加和删除列 a. 给Student表增加身高(以米单位)Stature列,类型为numeric(4,2),允许为空

创建表与约束

1、数据的完整性:数据完整性是要求数据库中的数据具有准确性。准确性是通过数据库表的设计和约束来实现的。 A、实体完整性约束 实体完整性约束要求表中的每一行数据都反映不同的实体,不能在表中存在完全相同的数据行。 实现方法:索引、唯一约束、主键约束或标识列属性。 B、域完整性约束 域完整性约束是给定列的输入有效性。 实现方法:限制数据类型、检查约束、输入格式、外键约束、默认值、非空约束。 C、引用完整性 在输入或删除数据行时,引用完整性约束来保持表之间已经定义的关系。 在强制引用完整性时,SQL Server禁止用户进行下列操作: (1)当主表中没有关联的记录时,将记录添加到相关表中。 (2)更改主表中的值导致相关表中的记录孤立。 (3)从主表中删除记录,但仍存在与该记录匹配的相关记录。 实现方法:通过主键和外键之间的引用关系来实现。 D、自定义完整性约束

用户根据具体应用来定义特定的规则。如定义学生年龄必须在10到30之间。 实现方法:定义规则、存储过程或触发器 2、主键:一个表中只能有一个主键,主键保证了表中行的唯一性。一个表中可以没有主键,但一般会设置一个主键。 外键:外键是子表中对应的主键的列,外键强调了应用完整性。 3、检查约束也叫CHECK约束,用于定义列中可接受的数据或者格式,例如scores表中的score数值应当为0~100,如果不满足要求应当不允许输入。 方法:在设计scores表时,右击选择“CHECK约束”,在出现的对话框中单击“添加”按钮,添加一个新的约束。然后单击“表达式”右侧的小按钮,在弹出的“CHECK约束表达式”对话框中输入: 0<=score and score<=100 sno like ‘2009[1-9][1-9][1-9][1-9][1-9][1-9]’ SEmail LIKE ‘%@%’ Sage>=10 and Sage<=50 4、导入和导出数据:右击数据库,选择“任务”中的“导出数据”选项,在向导中选择数据库,单击“下一步”;输入文件名称并确定文件相关选项;选择是否用一条查询语

实验一创建数据库和表

实验一创建数据库和表 1、目的和要求 (1)了解SQL Server数据库的逻辑结构和物理结构。 (2)了解表的结构特点 (3)了解SQL Server的基本数据类型。 2、实验内容 (1)实验题目 ①创建一个新的数据库。创建用于企业管理的员工数据库,数据库名称为YGGL。 ②在创建好的数据库YGGL中创建数据表。考虑到数据库YGGL中包含员工的信息、部分信息以及员工的薪水信息,所以数据库YGGL应该包含三个表:Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 3、实验步骤 (1)在对象资源管理器中创建数据库YGGL。 (2)删除数据库YGGL。 ①界面操作删除数据库 删除数据库YGGL时,右键单击数据库,弹出菜单点击“删除”,弹出“删除对象”窗口,确认删除。 ② T-SQL语句删除数据库 在代码空白处右击鼠标,弹出菜单选择“执行(X)”或者键盘“F5”运行代码,在下方会显示运行成功。 此时在左侧“对象资管理器”中右键点击“数据库”选择刷新数据库,会发现数据库“PX”已经删除。 注意:当执行过一遍代码时,也就是执行了T-SQL语句删除数据库后再次执行代码会出现这样的警告。原因是由于执行过一遍T-SQL语句,进行操作的数据库已经被删除,不存在。 (3)使用T-SQL语句创建数据库YGGL。 新建查询后,在窗口中输入上面代码,右键代码空白处执行。然后在“对象资源管理器”中查看。如果“数据库”列表中并未列出YGGL数据库,则单击右键“数据库”,选择“刷新”选项,“数据库”列表中就会出现创建的YGGL数据库。 (4)在对象资源管理器中创建表。 ①创建表。Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 在对象资源管理器中选择创建的数据库“YGGL”,展开数据库YGGL,选择“表”,右键

图书管理系统--创建数据库和表

1管理员表(L_Administrator) 字段名字段说明数据类型约束备注 a_id 管理员编号int Primary Key Identity(1000,1) a_name 管理员姓名nvarchar(20) Not null a_pwd 管理员密码varchar(20) Not Null */ use Library go create table L_Administrator( a_id int not null primary key Identity(1000,1), a_name nvarchar(20) not null, a_pwd varchar(20) not null); /* 2职务类型表(L_Duty) 字段名字段说明数据类型约束备注 d_id 职务编号int Primary Key Identity(1000,1) d_name 职务名称nvarchar(20) Not null d_maxcount 最大借阅数量tinyint Not Null */ use Library go create table L_Duty( d_id int not null primary key Identity(1000,1), d_name nvarchar(20) not null, d_maxcount tinyint not null); /* 3读者表(L_Reader) 字段名字段说明数据类型约束备注 r_id 读者编号bigint Primary Key r_name 读者姓名nvarchar(20) Not Null r_pwd 读者密码varchar(20) Not Null r_sex 读者性别bit Not Null r_typeid 职务类型int Foreign Key 职务类型表的主键 r_academy 所在院系nVarchar(20) r_major 专业nVarchar(20) r_contact 联系方式Varchar(20) r_email 邮箱nvarchar(20) r_photo 读者照片nVarchar(100) 存的是读者照片的路径*/ use Library

SQL建表语句约束

一、基础(建表、建约束、关系) 约束(constraint)是microsoft sql server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在sql server 中有5 种约束:主关键字约束(primary key constraint)、外关键字约束(foreign key constraint)、惟一性约束(unique constraint)、检查约束(check constraint)和缺省约束(default constraint)。 (最后几页介绍sql基础约束) 1、说明:创建数据库 create database database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device use master exec sp_addumpdevice disk, testback, c:\mssql7backup\mynwind_1.dat --- 开始备份 backup database pubs to testback 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) --建表、建约束、关系 create table tableok ( col1 int, col2_notnull int not null, col3_default nchar(1) not null default(男), --默认男 col4_default datetime not null default(getdate()), --默认得到系统时间 col5_checkintnot null check(col5_check>=18 and col5_check<=55), --添加约束,数据值在18到55之间 col6_checknchar(9) not null check(col6_check like msd0902[0-9][^6-9]), --添加约束,数据值前7位必须是?msd0902?,倒数第两位可以是0-9中任意一个数字,最后一位不是6-9之间的数字。 cola_primary nchar(5) not null primary key, --建立主键 colb_unique int unique, --唯一约束 col7_identity int not null identity(100,1), --自增长,从100开始,每列值增加1个 col8_identity numeric(5,0) not null identity(1,1) --自增长,从1开始,每列值增加1个,最大值是5位的整数 col9_guid uniqueidentifier not null default(newid()) --使用newid()函数,随机获取列值 ) --alter

实验一创建数据库及关系表数据完整性约束

实验一创建数据库及关系表、数据完整性约束 一、实验目的 1.???掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作; 2.???掌握在SQL Server中使用图形化工具创建数据库的方法; 3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句; 4.掌握修改表结构的语句。 5.掌握数据完整性约束的功能。 二、实验内容和步骤 1.创建符合如下条件的数据库: 数据库的名字为:Students 数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下; 文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。 实验结果: 2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL 语句,并查看执行结果。 实验结果: 3.写出实现如下操作的SQL语句,并查看执行结果: (1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。 (2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。 (3)删除学生表的专业列。 (4)为教师表添加主码约束,其主码列为:教师号。 实验结果: 4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。(1)图书表,结构如下: 书号:统一字符编码定长类型,长度为6,主码, 书名:统一字符编码可变长类型,长度为30,非空, 第一作者:普通编码定长字符类型,长度为10,非空, 出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现) 印刷数量:小整型,取值范围:1000~5000,默认为4000, 价格:定点小数,小数部分一位,整数部分3位。 实验结果: (2)书店表,结构如下: 书店编号:统一字符编码定长类型,长度为6,主码, 店名:统一字符编码可变长类型,长度为30,非空, 电话:普通编码定长字符类型,12位长,取值形式:010-8位数字 地址:普通编码可变长字符类型,40位长。前两个字符必须是:北京。 实验结果: (3)图书销售表,结构如下: 书号:统一字符编码定长类型,长度为6,非空, 书店编号:统一字符编码定长类型,长度为6,非空,

Oracle基础练习题及答案(表约束)

练习作业 创建表emp1,字段如下 eno char(3), ename char(6) sex char(2) age number(2) dno char(3) 并插入如下数据 1 ,TOM ,男,21 ,’001’ 2 ,JERRY ,男,21 ,’002’ 3 ,KATE ,女,21 ,’003’ 4 ,MARY ,女,21 ,’004’ 5 ,JACK ,男,21 ,’005’ i.在eno字段上创建主键约束 ii.在ename字段上创建非空约束 iii.创建检查约束判断age在18到60岁之间的男性或者age在18到55岁之间的女性iv.在dno字段上创建唯一性约束 create table emp1( eno char(3) primary key, ename char(6) not null, sex char(2), age number(2), dno char(3) unique, constraint sex_age check( ((age between18and60) and sex='男') or ((age between18and55) and sex='女')) ) insert into emp1 values('1','TOM','男',21,'001') insert into emp1 values('2','JERRY','男',21,'002');

insert into emp1 values('3','KATE','女',21,'003'); insert into emp1 values('4','MARY','女',21,'004'); insert into emp1 values('5','JACK','男',21,'005'); v.创建和emp1表字段相同的emp_bak表,将emp_bak表的eno字段与emp表的eno字段创建外键约束 create table emp_bak as select * from emp1 where1=2 alter table emp_bak add constraint v foreign key(eno) references emp1(eno); 1、请创建一个表,表名为phone,表结构如下 电话号码(PHONENUM VARCHAR2(8)) 电话费(PAY number(8,2)) 号码等级(NUMLEVEL VARCHAR2(4)) 费用日期(PAYDATE varchar2(12) create table phone ( phonenum varchar2(8), pay number(8,2), numlevel varchar2(4), paydate varchar2(12) ) 1)插入以下两条数据. 123456, 600, pt04, 20051220 888888, 900, pt05, 20051019. insert into phone values('123456',600,'pt04', '20051220'); insert into phone values('888888',900,'pt05', '20050919');

实验一创建数据库及关系表数据完整性约束

一、实验目的 1.???掌握SQL Server 数据库管理系统的使用,能够在该环境中进行日常数据库操作; 2.???掌握在SQL Server 中使用图形化工具创建数据库的方法; 3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句; 4.掌握修改表结构的语句。 5.掌握数据完整性约束的功能。 二、实验内容和步骤 1.创建符合如下条件的数据库: 数据库的名字为:Students 数据文件的逻辑文件名为:Students_dat ,存放在用户盘某目录下; 文件的初始大小为:5MB增长方式为自动增长,每次增加1MB 实验结果: 2.在已建立的Students 数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL 语句,并查看执行结果。 实验结果: 3 .写出实现如下操作的SQL 语句,并查看执行结果: 1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char (4) 2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0?255)。3)删除学生表的专业列。 4) 为教师表添加主码约束,其主码列 为: 教师号。 实验结果: 4.在Students 数据库中,编写建立满足完整性要求的定义表的SQL 语句,执行并观察执行结果。 ( 1 )图书表,结构如下: 书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30 ,非空,第一作者:普通编码定长字符类型,长度为10,非空, 岀版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现) 印刷数量:小整型,取值范围:1000?5000,默认为4000 , 价格:定点小数,小数部分一位,整数部分 3 位。 实验结果: ( 2 )书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12 位长,取值形式:010-8 位数字地址:普通编码可变长字符类型,40 位长。前两个字符必须是:北京。实验结果: ( 3 )图书销售表,结构如下: 书号:统一字符编码定长类型,长度为6,非空, 书店编号:统一字符编码定长类型,长度为6,非空,销售日 期:小日期时间型,非空,默认值为系统当前日期, 销售数量:微整型,取值大于0,主码(书号,书店编号,销售日期);书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。 实验结果:

数据库及数据库表的创建与管理

《数据库技术》上机实验 实验三数据库及数据库表的创建与管理 一、实验目的 熟悉和掌握数据库的创建和连接方法; 熟悉和掌握数据表的建立、修改和删除; 加深对表的实体完整性、参照完整性和用户自定义完整性的理解。 二、实验软件平台 Windows XP/7/8/10操作系统; 安装了SQL SERVER 三、实验内容 背景材料:在以下实验中,使用学生-课程数据库(school),它描述了学生的基本信息、课程的基本信息及学生选修课程的基本信息。(要求使用命令的方式创建) 1.创建学生-课程数据库create database school Sno:char(9) Sname: varchar(6) Ssex:char(2) Sage:tinyint Sdept:char(2) Sno为主键,姓名不能为空,性别只能取男或女,年龄大于等于0。 Cno为主键,课程名不能为空,先行课可以为空,学分大于等于0 Sno:char(9) Cno:varchar(3) grade: float 主键是课程号和学号思考?成绩可以为空么?为什么? 5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。[文件操作的方 式直接保存即可,这部分不用写在“四实验结果”中] 温馨提示:到这部分内容做完为止,可以用数据库的备份功能将所建好的数据库及数据库表完全备份下来,下周的实验课程会利用这个表结构。或者直接保存题5的SQL语句也可以,下次课直接执行这些sql文件,也可以达到保存的目的。 6.在表S上增加“出生日期”属性列。 7.删除表S的“年龄”属性列。 8.删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 9.修改C表,将学分的约束改为0到5之间 10.修改S表的性别的类型,设置为char(1),并将约束改为0和1

列级约束与表级约束

列级约束与表级约束 在SQL Server中有5种约束: 主键约束(primary key constraint) 唯一性约束(unique constraint) 检查约束(check constraint) 缺省约束(default constraint) 外部键约束(foreign key constraint) 在SQL SERVER中, (1)对于基本表的约束分为列约束和表约束 约束是限制用户输入到表中的数据的值的范围,一般分为列级约束与表级约束。 列级约束有六种:主键Primary key、外键foreign key 、唯一unique、检查checck、默认default 、非空/空值not null/ null 表级约束有四种:主键、外键、唯一、检查 列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名; 表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用’,’分隔,定义表约束时必须指出要约束的那些列的名称。完整性约束的基本语法格式为: [ CONSTRAINT <约束名> ] <约束类型> 约束名:约束不指定名称时,系统会给定一个名称。 (2)列级约束与表级约束的区别 如果完整性约束涉及到该表的多个属性列,必须定义在表级上,否则既可以定义在列级也可以定义在表级。 简而言之: 列级约束:列级约束是行定义的一部分,只能应用于一列上。 表级约束:表级约束是独立于列的定义,可以应用在一个表中的多列上。 (3)列级约束与表级约束在SQL中的用法(即如何在SQL中定义约束) 在创建表时定义约束: CREATE TABLE table_name ({ -------列级约束定义 |column_name AS computed_column_expression -------计算列定义 | ------表级约束定义 }[,….n] )

数据库和表数据库表的基本操作和表级约束约束条件-实验报告

《数据库系统概论》实验报告 题目:实验一 数据库和表数据库 /表的基本操 作和表级约束约束条件 姓名 班级 学号 日期 2010.9.29 一. 实验内容和步骤结果 1.在Student 数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986年出生的学生的视图,视图中包括学号,性别,成绩这三个信息: 2.用两种不同的SQL 语句创建课本128页第11题中要求的视图(视图名:V_SPJ ) 方法一: CREATE VIEW V_SPJ AS SELECT SNO ,PNO ,QTY FROM SPJ WHERE JNO in( SELECT JNO FROM J 表 WHERE JNAME ='三建')

方法二: CREATE VIEW V_SPJ AS SELECT SNO,PNO,QTY FROM SPJ,J表 WHERE SPJ.JNO=J表.JNO AND JNAME='三建'

3.用SQL语句完成课本128页第11题中对视图V_SPJ的查询(1) SELECT PNO,QTY FROM V_SPJ

(2) SELECT PNO,QTY FROM V_SPJ WHERE SNO='S1'

4.用T-SQL语句操作视图的数据。(15分,每题5分) (1) 给视图V_SPJ中增加一条数据(基本表中有插入的数据即可)。 INSERT INTO V_SPJ VALUES('S0','P0','100')

(2)修改视图V_SPJ中的任意一条数据的供应数量。UPDATE V_SPJ SET QTY=10 WHERE SNO='S1'AND PNO='P1'

实验七完整性约束的创建

实验七完整性约束的创建 一、实验目的 理解数据库完整性约束的概念,掌握SQL Server 2008的完整性约束的类型及相应的创建技术。 二、实验内容 1、定义和管理主键约束。 2、定义和管理唯一性约束。 3、定义和管理检查约束。 4、定义和管理外键约束。 5、定义和管理默认值约束。 三、实验指导 在关系数据库中,实体完整性约束、参照完整性约束和域完整性约束是必须满足的完整性约束条件。在SQL Server中,通过建立“约束”等措施来实现数据完整性约束,约束包括:主键(PRIMARY KEY)约束、唯一性(UNIQUE)约束、检查(CHECK)约束、默认值(DEFAULT)约束和外键(FOREIGN KEY)约束。约束的建立可以通过对象资源管理器进行操作,也可以利用T-SQL语句进行设置。 (一)主键(PRIMARY KEY)约束 主键约束指在表中定义一个主键来唯一标识表中每一行数据。 1、在SQL Server Management Studio中设置和修改主键 在表设计器中,单击要定义为主键的列的行选择器(如果要选择多列,在单击其他列的行选择器时按住Ctrl键)。然后右键单击该列的行选择器,选择“设置主键”命令,自动创建名为“PK_”(后跟表名)的主键索引。如图7.1所示。 2、利用T-SQL语句定义和修改主键 实验7.1 在教学管理数据库JXGL中创建学生表S的同时定义主键。 在数据库引擎查询文档中输入以下语句: USE JXGL GO CREATE TABLE S (

Sno char(8) PRIMARY KEY, Sname char(8), Sex char(2), Sage smallint, Sdept varchar(50) ) GO 注意:如果要设置多列的组合为主键,需要把主键定义为表级完整性约束。 图7.1 利用表设计器管理主键 实验7.2 在定义数据表S时没有定义主键,则需要添加主键。 在数据库引擎查询文档中输入以下语句: USE JXGL GO ALTER TABLE S ADD CONSTRAINT PK_Sno PRIMARY KEY clustered(Sno) GO 单击“执行”按钮则执行该程序段,这样就创建了名字为PK_Sno的主键。(二)唯一性(UNIQUE)约束

实验六 数据表的创建和管理(sql)

实验六: 数据表的创建和管理 实验目的 熟练掌握SQL Server Management Studio的使用和使用T-SQL语句创建和删除数据表、修改表结构,更新数据。学会使用SQL Server查询分析器接收T-SQL语句并进行结果分析。实验内容 分别使用SQL Server Management Studio和T-SQL语句创建和删除数据表、修改表结构,更新数据。 实验步骤: 创建用于学生管理数据库,数据库名为XSGL,包含学生的基本信息,课程信息和选课信息。数据库XSGL包含下列3个表: (l)student:学生基本信息。 (2)course:课程信息表。 (3)sc:学生选课表。 各表的结构分别如表1、表2和表3所示。 表3 学生选课表:sc 一. 数据库的建立: 1.用可视化界面建立: (a)在SQL SERVER2005中用Management Studio-新建数据库; 2.命令方式建立:

(a)在SQL SERVER2005中,在新建查询中使用T-SQL语句:(在做如下操作前,请将第一实验建立的XSGL数据库删除) 二. 表的建立: 1.用可视化界面建立: 在SQL SERVER2005中用Management Studio—数据库—XSGL—表—右键—新建表; 2.命令方式建立: 在SQL SERVER2005 中的”新建查询”编辑窗口中用下列SQL语句: 三. 表数据的添加: 1. 用可视化方法: I: 在SQL SERVER2005中用Management Studio—数据库—XSGL—表-表名—右键-打开表-返回所有行;

输入下列数据: 2. 在SQL SERVER2005”新建查询” 的编辑窗口中使用下列SQL 语句插入数据:

数据库实验报告完整性约束

数据库实验报告完整性约束

大连海事大学 数据库原理课程实验大纲 实验名称:实验七完整性实验学时: 2 适用专业:智能科学与技术 实验环境: Microsoft SQL server 2014 1实验目的 (1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。 (2)掌握完整性约束的运行检查机制。 (3)掌握参照完整性的级联删除和修改方法。(4)掌握正确设计关系模式完整性约束的方法。 2实验内容 2.1 掌握实体完整性约束的创建和使用方法 (1)创建表时定义由一个属性组成的主键(给约束命名)。 (2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。 (3)删除以上两个主键约束。 (4)利用ALTER TABLE语句定义上述两个主键。

2.2 掌握参照完整性约束的创建和使用方法 (5)创建表时定义一个列级参照完整性约束(给约束命名)。 (6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。 (7)设计数据更新语句检查参照完整性约束是否起作用。 (8)删除上述完整性约束。 (9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。 2.3 掌握用户自定完整性约束的创建和使用方法 (11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用? (12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用? (13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?

第4章 数据表的创建和管理

第4章数据表的创建和管理——例题解答 例4-2-1:在数据库STUDENT中创建一个学生基本信息表(名为t_student),表中各列的要求如表4-2-1所示。 表4-2-1 学生基本信息表(名为t_student)组成 实现的步骤如下: (1)在SQL Server Management Studio中新建一个查询页面。 (2)输入以下程序段并执行此查询: USE STUDENT GO CREATE TABLE t_student ( s_number char(10) not null, s_name char(8), sex char(2) default '男' , birthday datetime, polity char(4) ) GO 如果系统的输出结果为:“命令已成功完成。”,则表明t_student数据表已经创建成功了。 例4-3-1:为t_student2表中的s_number字段创建非空约束。 程序清单如下: USE STUDENT GO CREATE TABLE t_student2( s_number char(10) NOT NULL, s_name char(8), sex char(2), phonenum int

) 例4-3-2:在数据库STUDENT中创建一个t_student3表,并定义s_number为主键。增加主键后,就限定了该记录中不能插入编号相同的两个或者多个数据信息,从而保证了表中的记录信息是唯一的。 程序清单如下: USE STUDENT GO CREATE TABLE t_student3( s_number char(10) PRIMARY KEY, s_name char(8), sex char(2), birthday datetime, polity char(4) ) 例4-3-3:创建一个学生信息表t_student4,其中s_name字段具有唯一性。 程序清单如下: USE STUDENT GO CREATE TABLE t_student4 ( s_number char(10) PRIMARY KEY, s_name char(8), sex char(2) , birthday datetime, polity char(4), constraint uk_name unique(s_name) ) 例4-3-4:创建一个学生信息表t_student5,其中输入性别字段值时,只能接受“男”或者“女”,而不能接受其他数据。 程序清单如下: USE STUDENT GO CREATE TABLE t_student5( s_number char(10), s_name char(8), sex char(2), phonenum int, CONSTRAINT chk_sex CHECK(sex in ('男','女'))

实验一创建数据库及关系表数据完整性约束精编版

实验一创建数据库及关系表数据完整性约束精 编版 MQS system office room 【MQS16H-TTMS2A-MQSS8Q8-MQSH16898】

实验一创建数据库及关系表、数据完整性约束 网工1203熊健羲 一、实验目的 1.???掌握SQLServer数据库管理系统的使用,能够在该环境中进行日常数据库操作; 2.???掌握在SQLServer中使用图形化工具创建数据库的方法; 3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句; 4.掌握修改表结构的语句。 5.掌握数据完整性约束的功能。 二、实验内容和步骤 1.创建符合如下条件的数据库: 数据库的名字为:Students 数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下; 文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。 实验结果: 2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。 实验结果: 3.写出实现如下操作的SQL语句,并查看执行结果: (1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。 (2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。 (3)删除学生表的专业列。 (4)为教师表添加主码约束,其主码列为:教师号。 实验结果: 4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。 (1)图书表,结构如下: 书号:统一字符编码定长类型,长度为6,主码, 书名:统一字符编码可变长类型,长度为30,非空, 第一作者:普通编码定长字符类型,长度为10,非空, 出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现) 印刷数量:小整型,取值范围:1000~5000,默认为4000, 价格:定点小数,小数部分一位,整数部分3位。 实验结果: (2)书店表,结构如下: 书店编号:统一字符编码定长类型,长度为6,主码, 店名:统一字符编码可变长类型,长度为30,非空, 电话:普通编码定长字符类型,12位长,取值形式:010-8位数字 地址:普通编码可变长字符类型,40位长。前两个字符必须是:北京。

实验2-1、基本表的创建与约束机制

实验二基本表的创建与约束机制 一、实验目的 1、熟悉SQL语言的基本语法 2、掌握T-SQL语句创建、修改表的方法及建立约束的方法 3、掌握使用SSMS创建、修改表的方法及建立约束的方法 4、掌握T-SQL语句对表中数据进行操作 5、会利用SSMS对表中数据进行操作 6、理解并掌握五种约束机制的基本概念 二、实验内容和要求 在SQL Server 2005中用SSMS和T-SQL语句两种方式建立并管理数据库,进行实验所要求的各种操作,所有的SQL操作均在以自己姓名命名的数据库里进行,请完成下列操作。 【基本知识拓展,请认真阅读,完成并理解实验任务】 (一)数据库的基本概念 ①数据库文件 SQL Server 2005中的文件通常有两种类型:逻辑文件名和物理文件名。 1、逻辑文件名是在所有T-SQL语句中引用物理文件时所使用的名称。逻辑文件名必须符合 标识符的命令规则,而且数据库中的逻辑文件名必须是唯一的。 2、物理文件名是包括目录路径的物理文件名。它必须符合操作系统的命名规则。逻辑文件名和物理文件名是一一对应的,其对应关系由SQL Server系统来维护。 SQL Server 2005数据库文件有3类: (1)主数据文件(也称主文件):主数据文件主要用来存储数据库的启动信息、部分或全部数据,是数据库的关键文件。主数据文件是数据库的起点,包含指向数据库中其他文件的指针。每个数据库都有一个主数据库文件。主数据库文件推荐扩展名为.mdf。 (2)次要数据文件(也称辅助数据文件):除主数据文件以外的所有其他数据文件都是次要数据文件。用于存储主数据文件中未存储的剩余数据和数据库对象。一个数据库可以没有,也可以有多个次要数据文件。次要数据文件推荐扩展名为 .ndf。 (3)事务日志文件(简称日志文件):存放用来恢复数据库所需的事务日志信息,每个数据库必须有一个或多个日志文件。事务日志文件推荐扩展名为.ldf。 ?一般情况下,一个数据库可以只有一个主数据库文件和一个事务日志文件组成,如果数据库很大,则可以设置多个次要数据文件和多个日志文件,并将它们放在不同的磁盘上,以便提高数据存取和处理的效率。 ?【注意】SQL Server 2005不强制使用文件扩展名,但使用上述推荐扩展名,有利于标识文件的各种用途和类型。

建立表和定义完整性约束

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称数据库系统及应用 项目名称建立表和定义完整性约束 班级 学号 姓名 实验日期 2015/10/27

一、实验目的与要求:熟练掌握表的建立和数据完整性约束的定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。 实验要求:(1)用CREATE DATABASE命令建立数据库(自己命名数据库的名称)。 (2)用CREATE SCHEMA命令建立架构(自己命名架构的名称)。 (3)在定义的架构下参考课本138页图5-1所示的样本数据库和表5-8具体要求使用TABLE命令建立表并定义完整性约束。 (4)使用ALTER TABLE命令按如下要求修改表结构: ①为学生表增加一个“平均成绩”字段,类型为短整形,默认是空值; ②为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值; ③将院系表的名称字段的类型修改为varchar(30)。 ④为教师表增加一个工资字段,类型为5位整数、2位小数的数值型。 二、实验方法:(代码) --create database create database 学生管理系统 create table yuanxi ( 编号 smallint primary key, 名称 char(20) unique not null, 负责人 char(10), 办公地点 char(20) ) --drop table yuanxi create table xuesheng (

学号 char(8) primary key, 院系 smallint foreign key references yuanxi(编号), 姓名 char(10) not null, 性别 char(2) check (性别 = '男' or 性别 = '女'), 生源 char(6), 状态 char(4) check (状态 = '正常' or 状态 = '留级' or 状态 = '休学' or 状态 = '退学') ) create table jiaoshi ( 教师编号 char(8) primary key, 院系 smallint foreign key references yuanxi(编号), 姓名 char(10) not null, 性别 char(2) check (性别 = '男' or 性别 = '女'), 职称 char(6) check (职称 = '教授' or 职称 = '副教授' or 职称 = '讲师' or 职称 = '助教'), 专业 char(10) ) create table kecheng ( 课程编号 char(8) primary key, 课程名称 char(20) not null, 负责讲师 char(8) foreign key references jiaoshi(教师编号), 学时 smallint not null, 课程性质 char(10) check(课程性质 = '公共基础' or 课程性质 = '专业基础' or 课程性质 = '专业选修' or 课程性质 = '任意选修') ) create table xuanke ( 学号 char(8) foreign key references xuesheng(学号), 课程编号 char(8) foreign key references kecheng(课程编号),

相关主题
文本预览
相关文档 最新文档