保证数据的完整性:


3.1数据完整性概述:

  数据完整性的意义:我们知道数据库能防止储存垃圾数据,RDBMS实现该功能主要是通过维护数据完整性来实现的。根据数据完整性实施方法我们将其分为四类:实体完整性、域完整性、引用完整性、自定义的完整性。

  1. 实体完整性:一个表中的一行和它代表的一行完全一致,那么我们就说该表具有完整性。
  2. 域完整性:指给定列的输入有效性,如:限制类型(通过数据类型)、格式(检查约束)、可能值(外简约束、检查约束、默认值定义、非空约束)。
  3. 引用完整性:实体与实体之间的联系在表中用外键表示。
  4. 自定义完整性:可以自定义不属于其他任何完整性分类的特定业务规则。

3.2数据完整性的实现:

  1. 创建非空约束,字段后面加not null如:id int not null;
  2. 设置主键约束,primary key如:id int primary key not null;
  3. 设置唯一约束,unique如:phoneNo varchar(11) unique;
  4. 指定默认值,default如:address varchar(30) default '不知道电话号码' not null;
  5. 设置检查约束,check给定插入数据一个范围要求。如:Age int check (Age between 10 and 100);年龄范围在10到100岁之间。
  6. 使用自动编号,identity如:id int identity(1000 1) primary key not null;自动编号1到1000。
  7. 理解引用完整性和外键约束foreign key 约束链接的两个列必须是相同的数据类型。如:有两张表friend和phone。friend表中有主键friendId,phone表中有字段friendId,那么建立外键形式如:foreign key (friendId) references friend(friendId);此外键是健在表phone中的,前面的friendId是指phone表中的字段friedId,后面才是friend表中的主键friendId。有外键约束的表是不能删除被其他表引用的表,如果要删除首先必须是去掉引用关系。
  8. 对已经存在的表实施数据完整性。前面我们知道可以通过alter table 添加或者删除列,当然也可以添加、删除主键、外键、其他约束。语法如:alter table friend drop constraint unq_name;(删除唯一约束)。又如:alter table friend add constraint pk_friendName primary key(name);(添加主键约束语句)

总结上述知识:非空、主键约束、唯一约束、自动编号、外键约束等是经常会用到的。这些知识是必备的技能,被问到的可能性相对较低。

数据库知识整理<三>的更多相关文章

  1. 数据库知识整理<六>

    聚合函数与分组 6.1使用聚合函数进行数据统计: 聚合函数常见的有以下几种: count:返回该结果集中行的数目. sum:返回结果集中所有值的总和. avg:返回结果集中所有值的平均值. max:返 ...

  2. 数据库知识整理<一>

    关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...

  3. 数据库知识整理<八>

    联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...

  4. 数据库知识整理<五>

    简单的数据查询: 5.1查询的基本结构: Sql语句:select [distinct] (* | column [alias],...) from table [where condition] [ ...

  5. 数据库知识整理<二>

    又继续写的博客,希望自己能坚持每天写博客.分享自己的点滴,对自己成长有帮助.今天下午高强度打了三个小时篮球,小腿都抽筋了.很爽,失落的心情似乎变得开明了一些.想到了一句话:“像SB式的坚持总会有好的收 ...

  6. 数据库知识整理<四>

    使用DML语句更改数据: 所谓DML语句是指数据库操作语句,其中包括的是对数据库数据的修改.删除.插入. 4.1添加新数据: 插入单行的记录:基本的SQL语句为-insert into <表明& ...

  7. 数据库知识整理<七>

    组合查询: 7.1使用子查询: 嵌套在其他查询中的查询,我们称之为子查询.子查询本身也可能包含一个子查询.子查询也称为内部查询,而包含子查询的语句也称为外部查询. 所有的子查询可以被分为两个类别:子查 ...

  8. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  9. MySQL 索引知识整理(创建高性能的索引)

    前言: 索引优化应该是对查询性能优化的最有效的手段了.索引能够轻易将查询性能提高几个数量级. // 固态硬盘驱动器有和机械硬盘启动器,有着完全不同的性能特性: 然而即使是固态硬盘,索引的原则依然成立, ...

随机推荐

  1. jquery tmpl遍历

    最近发现大家用模板渲染一些顺带逻辑功能代码块时,用jquery tmpl较多,遇到了一些问题,现在就个人以前研究过的一切常用功能作介绍,主要针对遍历,其它的大家可以自行浏览一起网站,如:http:// ...

  2. mvc中Scripts.Render、Styles.Render

    一.配置BundleConfig.cs文件 1.首先要在App_Start 里面BundleConfig.cs 文件里面 添加要包含的css文件 2.BundleConfig就是一个微软新加的 一个打 ...

  3. highcharts相关属性

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. 码农谷 找出N之内的所有完数

    题目描述 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数". 编程序找出N之内的所有完数, ...

  5. eclipse与myeclipse恢复已删除的文件和代码

    1.类文件的恢复 选择项目后右键-->选择Restore from Local history-->出现下面的界面: 勾选后按Restore就恢复了,真的很强大很方便:但我没有就此罢手,我 ...

  6. TCP控制拥塞的四种算法:慢开始,拥塞避免,快重传,快恢复

    我们在开始假定: 1:数据是单方向传递,另一个窗口只发送确认. 2:接收方的缓存足够大,因此发送方的大小的大小由网络的拥塞程度来决定. 一:慢开始算法和拥塞避免算法 发送方会维持一个拥塞窗口,刚开始的 ...

  7. JS驗證兩位小數

    function SizeCheck(Textdiv) {                var fg = true;                str = $("#" + T ...

  8. 项目支持Servlet3.0的新特性

    一.Servlet3.0介绍 Servlet3.0是Java EE6规范的一部分,Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述 ...

  9. Flat UI

    Flat :平的; 单调的; 不景气的; 干脆的; 免费的WEB界面工具组件库

  10. 使用CocoaPods配置工程

    1.首先搭建环境,配置CocoaPods,具体请参考 http://code4app.com/article/cocoapods-install-usage 2.打开终端,输入 cd 空格 把工程拖入 ...