您的位置:首页 > 数据库

数据库--保证数据完整型

2016-01-10 19:54 302 查看
1.实体完整性:实体完整性将定义为特定的表的唯一实体。实体完整性强直表的标识列或主键的完整性,它可以通过在表中设置主键约束、唯一约束或标识列属性来实现。

2.域完整性:域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过检查约束)、或可能值的范围(通过外键约束、检查约束、默认值定义、非空约束)。

3.应用完整性:我们必须在有关联的表中,确保一个表的外键的值来源于另一个表中的主键值。引用完整性一般通过外键约束来记录。

4.用户自定义完整性:用户自定义完整性使我们可以定义不属于其他任何完整性分类的特定业务规则。用户自定义完整性可以通过触发器、存储过程等实现。

创建非空约束:如:不允许在Name和PhoneNo列输入NULL值的语法为:

                  CREATE TABLE Friend (Name VARCHAR(50) NOT NULL,

                                   PhoneNo VARCHAR(15) NOT NULL);

 

设置主键约束:主键约束是应用于表的列的一个约束。

              下面的代码创建Friend表,并将一个名为My PrimaryKey的主键约束与列Name关联:

           CREATE TABLE Friend(

              Name      VARCHAR(50)  NOT NULL,

              PhoneNo    VARCHAR(15)  DEFAULT‘不知道电话号码’NOT NULL,

              CONSTRATNT MyprimaryKey PRIMARY KEY (NULL));

              对于符合主键,我们只需要列出都好分隔的参与复合主键所有列即可。

    

             如果我们不想给主键约束提供一个名字,也可以使用如下的语法:

          CREATE TABLE Friend(

             Name      VARCHAR(50)  NOT NULL,

             PhoneNo    VARCHAR(15)  DEFAULT‘不知道电话号码’NOT NULL,

             PRIMARY KEY (NULL));

             另外还可以使用跟简单的方法:

          CREATE TABLE Friend(

             Name      VARCHAR(50) PRIMARY KEY NOT NULL,

             PhoneNo    VARCHAR(15)  DEFAULT‘不知道电话号码’NOT NULL);

        

      为测试上面创建的表,我们可以试着先向该表中添加一个姓名为NULL的记录,然后是两个相同的姓名的记录:

         INSERT INTO Friend (PhoneNo) VALUES ('555 2323');

         INSERT INTO Friend(Name,PhoneNo) VALUES ('ohn Doe','12345678');

         INSERT INTO Friend(Name,PhoneNo) VALUES ('ohn Doe','87654321');

设置唯一约束:指给定列的所有的值必须是唯一的。该列在表中每一行的值必须唯一。表可以有多个唯一约束。

            以上一个PhoneNo为例,我们可以将其作为唯一列,以确保没有朋友有相同的电话号码。实例

           CREATE TABLE Friend(

              Name   VARCHAR(50)  PRIMARY NOT NULL,

              PhoneNo VARCHAR(15) UNIQE);

 

设定默认值:DROP TABLE Friend;

设置检查约束:检查约束是最灵活的约束类型,它允许我们在更改或插入行到数据库时有一个较宽范围的限制。

             

             下面的语句创建Friend表,表中有一个名为Age的列,以及一个名为AgeGonstraint的检查约束,用于防止小于10以及大于100的值进入Age列:

              CREATE TABLE Friend(

              Name    VARCHER(50) PRIMARY KEY NOT NULL,

              PhoneNo  VARCHER(15) DEFAULT '不知道电话号码',

              Age     INT,

              CONSTRAINT  checkAge CHECK (Age BETWEEN 10 and 100));

使用自动编号列:

              CREATE TABLE Friend(

                 Friend INT IDENTITY PRIMARY KEY NOT NULL,

                 Name    VARCHER(50),

                 PhoneNo  VARCHER(15) DEFAULT 'Unknown Phone');

            下面的代码如何向一个已存在的表中删除一个UNIQUE约束,同时添加一个主键约束。在这个列子中,我们同时为主键约束提供一个名字:

               CREATE TABLE Friend(

                  Name    VARCHER(50) NOT NULL,

                  PhoneNo  VARCHER(15),

                  CONSTRAINT unq_name UNIQUE(name);

               ALTER TABLE Friend DROP CONSTRAINT unq_name;

               ALTER TABLE Friend ADD CONSTRAINT pk_FriendName PRIMARY KEY (Name);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库