保证数据的完整性:


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. 根据指定Word模板生成Word文件

    最近业务需要批量打印准考证信息 1.根据Table数据进行循环替换,每次替换的时候只替换Word中第一个Table的数据, 2.每次替换之后将Word中第一个Table数据进行复制,将复制Table和 ...

  2. javaweb学习第一天 debug

    debug 断点: f5:step into f6:step over f7:step return drop to frame:跳到当前方法的的第一行 resume:跳到下一个断点 watch:观察 ...

  3. 块级格式化上下文(block formatting context)、浮动和绝对定位的工作原理详解

    CSS的可视化格式模型中具有一个非常重要地位的概念——定位方案.定位方案用以控制元素的布局,在CSS2.1中,有三种定位方案——普通流.浮动和绝对定位: 普通流:元素按照先后位置自上而下布局,inli ...

  4. jafka消息结构

  5. UBUNTU9.10下安装TFTP学习笔记一(arm学习SEED-138板子)

    擦,刚刚写的没保存都丢了,郁闷中~~~~ 简单重写 1什么是TFTP .安装TFTP(TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的 ...

  6. Continue To DO!

    (1)Valid Anagram 解题思路: 使用一个数组,首先遍历S相应位置加1,然后遍历T,判断此时如果相应位置为零返回FALSE,否则就减一.T遍历完毕后返回true. 代码如下: public ...

  7. scala学习心得3

    在scala中可以定义函数字面量参数,定义方式如下:

  8. Spring MVC 文件上传

    1.form的enctype=”multipart/form-data” 这个是上传文件必须的 2.applicationContext.xml中 <bean id=”multipartReso ...

  9. 初识ASP.NET CORE:一、HTTP pipeline

    完整的http请求在asp.net framework中的处理流程: Asp.Net HttpRequest--> HTTP.exe--> inetinfo.exe(w3wp.exe)-& ...

  10. 项目Windows服务安装命令:

    sc create YY.SmsPlatform.RemoteDataCenter binPath= "E:\YY.SmsPlatform\YY.SmsPlatform.RemoteData ...