数据库知识整理<三>
保证数据的完整性:
3.1数据完整性概述:
数据完整性的意义:我们知道数据库能防止储存垃圾数据,RDBMS实现该功能主要是通过维护数据完整性来实现的。根据数据完整性实施方法我们将其分为四类:实体完整性、域完整性、引用完整性、自定义的完整性。
- 实体完整性:一个表中的一行和它代表的一行完全一致,那么我们就说该表具有完整性。
- 域完整性:指给定列的输入有效性,如:限制类型(通过数据类型)、格式(检查约束)、可能值(外简约束、检查约束、默认值定义、非空约束)。
- 引用完整性:实体与实体之间的联系在表中用外键表示。
- 自定义完整性:可以自定义不属于其他任何完整性分类的特定业务规则。
3.2数据完整性的实现:
- 创建非空约束,字段后面加not null如:id int not null;
- 设置主键约束,primary key如:id int primary key not null;
- 设置唯一约束,unique如:phoneNo varchar(11) unique;
- 指定默认值,default如:address varchar(30) default '不知道电话号码' not null;
- 设置检查约束,check给定插入数据一个范围要求。如:Age int check (Age between 10 and 100);年龄范围在10到100岁之间。
- 使用自动编号,identity如:id int identity(1000 1) primary key not null;自动编号1到1000。
- 理解引用完整性和外键约束foreign key 约束链接的两个列必须是相同的数据类型。如:有两张表friend和phone。friend表中有主键friendId,phone表中有字段friendId,那么建立外键形式如:foreign key (friendId) references friend(friendId);此外键是健在表phone中的,前面的friendId是指phone表中的字段friedId,后面才是friend表中的主键friendId。有外键约束的表是不能删除被其他表引用的表,如果要删除首先必须是去掉引用关系。
- 对已经存在的表实施数据完整性。前面我们知道可以通过alter table 添加或者删除列,当然也可以添加、删除主键、外键、其他约束。语法如:alter table friend drop constraint unq_name;(删除唯一约束)。又如:alter table friend add constraint pk_friendName primary key(name);(添加主键约束语句)
总结上述知识:非空、主键约束、唯一约束、自动编号、外键约束等是经常会用到的。这些知识是必备的技能,被问到的可能性相对较低。
数据库知识整理<三>的更多相关文章
- 数据库知识整理<六>
聚合函数与分组 6.1使用聚合函数进行数据统计: 聚合函数常见的有以下几种: count:返回该结果集中行的数目. sum:返回结果集中所有值的总和. avg:返回结果集中所有值的平均值. max:返 ...
- 数据库知识整理<一>
关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...
- 数据库知识整理<八>
联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...
- 数据库知识整理<五>
简单的数据查询: 5.1查询的基本结构: Sql语句:select [distinct] (* | column [alias],...) from table [where condition] [ ...
- 数据库知识整理<二>
又继续写的博客,希望自己能坚持每天写博客.分享自己的点滴,对自己成长有帮助.今天下午高强度打了三个小时篮球,小腿都抽筋了.很爽,失落的心情似乎变得开明了一些.想到了一句话:“像SB式的坚持总会有好的收 ...
- 数据库知识整理<四>
使用DML语句更改数据: 所谓DML语句是指数据库操作语句,其中包括的是对数据库数据的修改.删除.插入. 4.1添加新数据: 插入单行的记录:基本的SQL语句为-insert into <表明& ...
- 数据库知识整理<七>
组合查询: 7.1使用子查询: 嵌套在其他查询中的查询,我们称之为子查询.子查询本身也可能包含一个子查询.子查询也称为内部查询,而包含子查询的语句也称为外部查询. 所有的子查询可以被分为两个类别:子查 ...
- 【OGG】OGG基础知识整理
[OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...
- MySQL 索引知识整理(创建高性能的索引)
前言: 索引优化应该是对查询性能优化的最有效的手段了.索引能够轻易将查询性能提高几个数量级. // 固态硬盘驱动器有和机械硬盘启动器,有着完全不同的性能特性: 然而即使是固态硬盘,索引的原则依然成立, ...
随机推荐
- Angularjs-Dirty Checking
Angularjs实现了数据双向绑定,就像下面这样: <!doctype html> <htnl ng-app> <head> <script src=&qu ...
- cs11_c++_lab2
Matrix.hh class Matrix { int row; int col; int *p; public: Matrix(); Matrix(int x,int y); ~Matrix(); ...
- shell字符串判空
主要用到两个命令 -n -z if [ -n "$PID" ]; then echo "PID is not empty" fi if[ -z "$ ...
- TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议
前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结. 先来看看我的问题: 这是用tcp ...
- linux网络完全与防护
7.1 网络封包联机进入主机的流程 7.1.1 封包进入主机的流程 1.经过防火墙的分析 iptables 主要功能是封包过滤 主要分析TCP/IP的封包表头来进行过滤的机制 分析的是OSI的第二 ...
- 调用Ria Service中方法的各种方式
前端界面后台: using System; using System.Collections.Generic; using System.Linq; using System.Net; using S ...
- Django自定义分页、bottle、Flask
一.使用django实现之定义分页 1.自定义分页在django模板语言中,通过a标签实现; 2.前段a标签使用<a href="/user_list/?page=1"> ...
- javascript-test1
var AAA = function(name, age) { this.name = name ; this.age = age; } AAA.prototype.getName = functio ...
- Python-类的概念及使用1
1.类:用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. #!/usr/bin/python # -*- coding: UTF-8 -*- cl ...
- [转载]Altium规则详解及设置
在Altium中进行PCB的设计时,经常会使用规则(Rule)来进行限定以确定线宽孔径等参数,此文将简要的介绍规则中的一些标量代表了什么. Electrical——电气规则.安全间距,线网连接等 Ro ...