数据库中的约束条件
来源:互联网 发布:山西快乐十分软件 编辑:程序博客网 时间:2024/05/10 21:57
数据库约束是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具。一般来说有以下几种实现方式:1、检查约束:通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。比如以下的表定义:CRATE TABLE student(id serial,name varchar(10),scrore integer CHECK (scrore > 0));定义分数不能小于0。也可以在表级定义:CHECK (字段1 秘字段2之间的关系)2、非空约束:这个大家应该很熟悉了。直接在字段后面加上:NOT NULL。3、唯一约束:定义一个唯一约束但是它并不包括NULL值。直接在字段定义后加入UNIQUE即可定义一个唯一约束。4、主键约束:SQL 92建议在建立一个表时定义一个主键:它其实就是:唯一约束+非空约束。5、外键:所有约束里数这个约束最有意思了:比如说有这样一件事,你需要做一个学生查询的网页。那么为了方便,你将建立三个数据表:一个是学生情况表:CREATE TABLE student(id serial primary ke,name varchar(10),.......);一个表是记录所开的课程CREATE TABLE class(class_id varchar(5) primary key,describe varchar(20).....);一个表是记录学生成绩的表:CREATE TABLE score(id integer references student,class_id varchar(5) references class,score integer CHECK (score > 0));这个时候你会发现以下几件事:如果你在成绩表里输入不存在的学生和课程,数据系统将拒绝。如果你要删除一个学生,但是他已经在成绩表里有记录,数据库将拒绝删除这个学生的记录。那么我们现在来看,前面一个对我们是有利的,因为谁都不想一个学生无缘无故的有了一个成绩的记录,但是在删除的时候就会比较麻烦了,有时候我的确是想删除这个学生。那么我总不能在应用程序里照顾得那么周到吧。不要紧我们在定义数据表的时候只在外键那一样加入以下控制就OK了,我们来重新定义数据表 scoreCREATE TABLE score(id integer references student ON UPDATE CASCADE ON DELETE CASCADE, //我们希望在学生记录改变时自动改变分数记录,在删除学生级联删除分数记录class_id varchar(5) references class ON UPDATE CASCADE ON DELETERESTRICT, //我们希望在改变课程时自动改变分数记录表里关于课程的引用,但是不希望删除课程时级联删除分数。.....);这样我们就可以很好做到数据完整了。
0 0
- 数据库中的约束条件
- 如何更新数据库中的约束条件
- Sqlite数据库约束条件详解
- MySQL笔记-数据库约束条件
- 数据库五大约束条件
- SQL Server中的约束条件
- sql中的约束条件
- mySql数据库外键约束条件
- oracle 查询数据库的约束条件
- 约束条件
- 数据库面对不同业务逻辑约束条件的选择
- oracle数据库 如何查询某个表的约束条件
- 数据库探索之旅——完整性约束条件
- 数据库用seq语句从创建数据库到给表添加约束条件
- 数据库用seq语句从创建数据库到给表添加约束条件(改进)
- 降低约束条件
- Oracle_6 约束条件
- 约束条件(constraint)
- toj 4065 The Coco-Cola Store
- poj 3070 矩阵快速幂
- AsyncTask处理机制的源码分析
- .Net语言 APP开发平台如何在webview中加载网页
- RatingBar设置不可点击
- 数据库中的约束条件
- selectindexchanged select valuechanged textchanged
- C#基本数据类型
- 读书笔记-《大话数据结构》第三章 线性表之链式存储结构
- 关于登陆或者注册界面EditText的设置
- 【集群】故障切换 [待修改]
- 计算机网络基础知识
- mysql创建函数(从别的地方复制过来)
- 二叉树递归/非递归遍历