数据库基础——(SQLserver)约束
Posted 微雨11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库基础——(SQLserver)约束相关的知识,希望对你有一定的参考价值。
数据库
定义:一些存储在硬盘上的数据文件
内存:
计算机临时存储的一些数据
.net - SQL Server
php - mysql
Java - Oreacl
数据库中的数据类型:
int decimal(长度,小数位数)
bit - 布尔型 1 - true 0 - false
datetime - 时间日期型
nvarchar(长度) 500 max 字符串
varchar(长度)
text - 长文本
-------------------------------------------
关系型数据库
四种约束:
1、主键约束:
设置某一列为主键列
不允许重复,不允许为空,一个表有且只有一个主键列
2、外键约束:(建立表和表之间关系的最重要的约束)
当前表的某一列被其它表的某一个主键列/唯一列所约束
当前表被约束的这一列里面的内容不允许超出约束它的列里面的内容
要作为主约束列来约束其它表的列,这一列必须是 主键列/唯一列/
3、唯一约束:
设置一列为唯一列,让这一列的数据不能重复
4、Check约束:
编写表达式,来约束某一列其中的值的范围
&& - and
|| - or
------------------------------
作业:
1、常用数据库类型
1. IBM 的DB2
2、搜一下关系型数据库的特点
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库的时候,你能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。
3、四种约束总结
1、CHECK 约束
在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式。例如,可以要求 authors 表的 postcode 列只允许输入六位数字的邮政编码。
CHECK 约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列。
当除去某个表时,对这个表的CHECK 约束也将同时被去除。
CHECK 约束的限制
CHECK 约束不接受计算结果为 FALSE 的值。因为 空值的计算结果为 UNKNOWN,所以如果 赋值表达式中存在这些值,则约束可能会被覆盖而不起作用。例如,假设对 int 列 MyColumn 应用一个约束,指定 MyColumn 只能包含值 10(即 MyColumn = 10)。如果将值 NULL 插入到 MyColumn, 数据库引擎将插入 NULL 且不返回错误。
如果 CHECK 约束检查的条件对于表中的任何行都不是 FALSE,它将返回 TRUE。如果刚创建的表没有任何行,则此表的任何 CHECK 约束都视为有效。这种情况可能会产生意外结果,如下面的示例所示。
CREATE TABLE CheckTbl (col1 int, col2 int);GOCREATE FUNCTION CheckFnctn()RETURNS intAS BEGIN DECLARE @retval int SELECT @retval = COUNT(*) FROM CheckTbl RETURN @retvalEND;GOALTER TABLE CheckTblADD CONSTRAINT chkRowCount CHECK (dbo.CheckFnctn() >= 1 );GO 添加的 CHECK 约束指定表 CheckTbl 必须至少包含一行。但是,因为表中不包含任何可供检查此约束的条件的行,所以 ALTER TABLE 语句将成功。
执行 DELETE 语句时不验证 CHECK 约束。因此,使用特定类型的 CHECK 约束对表执行 DELETE 语句时可能会产生意外结果。例如,假设对表 CheckTbl 执行下列语句。
INSERT INTO CheckTbl VALUES (10, 10)
GO
DELETE CheckTbl WHERE col1 = 10;
即使 CHECK 约束指定表 CheckTbl 必须至少包含 1 行,DELETE 语句也会成功。
2、主键约束
主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符.(非空,惟一)例如:altertablememberaddconstraintPK_member_member_noprimarykeyclustered(member_no)主键列的数据类型不限,但此列必须是唯一并且非空。如该表中已有主键为1000的行,则不能再添加主键为1000。人工或程序不好控制的时候,也可以设置主键列为自动增长列。
主键的作用
主键是一个表中能标识唯一行的标志(也有其他方法表示唯一行,如唯一列)。
主键主要用在查询单调数据,修改单调数据和删除单调数据上。
一般做程序的时候,都将表的主键设置为int型的可自增的列,这样在 编程的时候,很容易区分数据。
3、唯一约束
唯一约束SQL实现
唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。
创建唯一约束
在服务器资源管理器中,选择要将唯一约束添加到的表,再从“数据库”菜单中单击“打开表定义”。
该表在“表设计器”中打开。
从“表设计器”菜单中单击“索引/键”。
在“索引/键”对话框中单击“添加”。
在网格中单击“类型”,再从属性右侧的下拉列表框中选择“唯一键”。
当保存表时,将在数据库中创建该唯一约束。
创建唯一约束可确保在不参与主键的特定列中不输入重复值。当唯一约束和主键都强制唯一性时,如果满足下列条件,则应将唯一约束而不是主键约束附加到表上:
1.希望在列或列的组合中强制唯一性。可将多个唯一约束附加到表,但是只能将一个主键约束附加到表。
2.希望在允许空值的列中强制唯一性。可将唯一约束附加到允许空值的列,但是只能将主键约束附加到不允许空值的列。当将唯一约束附加到允许空值的列时,请确保在约束的列中最多有 一行包含空值。
对字段使用了unique约束,可以当主健在数据库中使用
4、外键
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
作用
保持 数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。
软道语录
外键就是指另外表中的主键 。
以上是关于数据库基础——(SQLserver)约束的主要内容,如果未能解决你的问题,请参考以下文章