创建数据库表与约束.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程号 1 5 1 2 ……
成绩 80 75 90 60 ……
……
4、自定义完整性约束
用户根据具体应用来定义特定的规则。 如定义学生年龄必须在10到30之间。 实现方法:定义规则、存储过程或触 发器。
二、主键(Primary Key)和外键(Foreign Key) 1、主键 表中有一列或几列组合的值能用来唯一地标识 表中的每一行,这样的一列或者多列的组合叫做表 的主键。 如:学号可以作为学生表的主键,课程号可以 作为课程表的主键,(学号,课程号)作为成绩表 的主键(组合键) 说明:(1)一个表只能有一个主键,主键约束确保 了表中的行是唯一的。 (2)表中可以没有主键,但是通常情况下应 当为表设置一个主键。
2.1 表相关的几个基本概念
2、域完整性约束 域完整性约束是给定列的输入有效性。 实现方法:限制数据类型、检查约束、 输入格式、外键约束、默认值、非空约束。 例如:学生的成绩若定义为整数类型 则不能输入带小数的分数;学生选修的课 程必须是课程表中实际存在的课程。
3、引用完整性
在输入或删除数据行时,引用完整性约束来保持表 之间已经定义的关系。 在强制引用完整性时, SQL Server禁止用户进行 下列操作: (1)当主表中没有关联的记录时,将记录添加到相关表 中。 (2)更改主表中的值导致相关表中的记录孤立。
思考: • 在主键列输入的数值,允许为空吗?
• 一个表可以有多个主键吗?
• 在一个学校数据库中,如果一个学校内 允许重名的学员,但是一个班级内不允 许学员重名,可以组合班级和姓名两个 字段一起来作为主键吗?
2、外键
简单地说,就是“子表”中对应于 “主表”的列,在子表中称为外键或者引 用键。它的值要求与主表的主键或者唯一 键相对应,外键用来强制引用完整性。例 如在成绩表中,学号为外键。一个表可以 有多个外键。
Unicode(统一码)数据类型用两个字节表 示一个字符。它几乎可以表示世界上所有的字符 集。 具体说明如下:
数据类型 char(n)
说明
固定长度的非Unicode字符数据,n必 须是一个1~8000之间的整数。 varchar(n) 可变长度的非Unicode字符数据,n必 须是一个1~8000之间的整数。 text 可变长度的非Unicode长文本数据,最 大长度为231-1个字符。 nchar(n) 固定长度的Unicode字符数据,n必须 是一个1~4000之间的整数。 nvarchar(n) 可变长度的Unicode字符数据,n必须 是一个1~4000之间的整数。 ntext 可变长度的Unicode长文本数据,最大 长度为230-1个字符。
二、SQL Server 中常用的数据类型 1、数字数据类型
数据类型 bigint int Smallint tinyint bit 说明 从-263~263-1 的整型数据,存储大小为8个字 节 从-231~231-1 的整型数据,存储大小为4个字 节 从-215~215-1 的整型数据,存储大小为2个字 节 从0~255 的整型数据,存储大小为1个字节 只能包括0、1或NULL,可以用bit数据类型 代表TRUE或FALSE、YES或NO。
数据类型 decimal[(p[,s])]
说明 带定点精度和小数位数的数值数据类型。p表示精 度,指定小数点左边和右边可以存储的十进制数字 的最大个数。精度必须是1到38之间的整数。s表示 小数位数,指定小数点右边可以存储的十进制数字 的最大个数。小数位数必须是从0到p之间的整数, 默认小数位数为0。 同decimal[(p[,s])] 从-1.79E+308~1.79E+308之间的浮点数字数据。 n为用于存储科学计数法float数尾数的位数,同时 指示其精度和存储大小。n必须为1~53之间的值。
(3)从主表中删除记录,但仍存在与该记录匹配的相关 记录。
实现方法:通过主键和外键之间的引用关系来实现。
学号 学生表: (主表) 200901
姓名 李爽
性别 女 女 女 男
年龄 19 18 19 20
……
200902 吴小兰 200903 张丽娟 200904 赵华
学号 成绩表: (子表) 200901 200901 200902 200903 ……
numeric[(p[,s])] float[(n)]
real
从-3.40E+308~3.40E+308之间的浮点数字数据。 存储大小为4字节。
2、文本数据类型
可以存储由任意字母、符号或数字字符组成 的数据。根据字符长度可以分为固定长度、可变 长度两种,根据字符定义方法又分为非Unicode 数据类型和Unicode数据类型两种。
输完各列信息以后,单击保存按钮,输入 表名称:students。在对象资源管理器中展开 “表”节点即可看到students已经存在。
这只是建立了表的框架,还Βιβλιοθήκη Baidu要输入记录 数据。方法:在students上右击选择“打开 表”,依次输入各条记录。 在students表中,我们用到了nchar和 datetime两种数据类型,在SQL Server 中提 供了丰富的数据类型供我们选择。下面介绍一 下常用的数据类型。
2.2 建立数据库表
一、创建数据库表 在SQL Server Management Studio 中,展开“studentdb”数据库节点,然后 在“表”上右击选择“新建表”,在出现 的表设计器中可以输入表中各列的信息, 如列名、数据类型、是否允许空,如下图 所示:
图2-1 在SQL Server Management Studio中创建students表
第二章 创建数据库表与约束
内容提要
2.1 表相关的几个基本概念
2.2 建立数据库表
2.3 建立表间关系
2.4 建立检查约束 2.5 导入和导出数据 2.6 删除表
一、数据完整性 数据完整性是要求数据库中的数据具有准 确性。准确性是通过数据库表的设计和约束来实 现的。 SQL Server提供了以下4种类型的约束 (Constraint): 1、实体完整性约束 实体完整性约束要求表中的每一行数据都反 映不同的实体,不能在表中存在完全相同的数据 行。 实现方法:索引、唯一约束、主键约束或标 识列属性。