数据库完整性和约束

数据库的完整性

数据库约束是保证数据库完整性的方法 ,数据库完整性分为实体完整性、域完整性和参照完整性

实体完整性

实体完整性要求表中的主键字段不能为空且不能重复;

域完整性

域完整性要求表中数据都在有效范围内;

参照完整性

参照完整性保证了相关联的表的数据一致性;

约束的使用

约束是保证表中数据完整性和一致性的手段,分为主键约束外键约束检查约束唯一约束非空约束五种;

主键约束

主键约束在每个数据表中只有一个,但主键约束可以有多个列组成;

-- 添加主键约束
alter table table_name add constraints constraint_name primary key(column_name);

-- 移除主键约束
alter table table_name drop constraint constraint_name;

-- 创建表时添加主键
primary key(column_name)

外键约束

外键约束是保证使用外键的数据列与主键约束的数据列一致,可以有多个外键;

-- 创建表时添加外键约束, on delete cascade 代表级联删除
constraint constraint_name foregn key(column_name) reference table_name(column_name)
   on delete cascade;

-- 添加外键约束
alter table table_name add constraint constraint_name foregn key(column_name)
   reference table_name(column_name) on delete cascade;

-- 移除外键约束
alter table table_name drop constraint constraint_name

检查约束

检查约束是保证列数据的正确性

-- 添加检查约束
alter table table_name add constraint constraint_name check(condition)

condition位检查条件,比如限定年龄在18-25 condition就为 age>18 and age<25

唯一约束

唯一约束保证了列上的数据唯一性,与主键约束类似但是唯一约束可以有多个

-- 添加检查约束
alter table table_name add constraint constraint_name unique(condition)

非空约束

非空约束保证列上必须有值

alter table table_name modify column_name not null

练习

-- system 用户
-- 授权/回收用户Flynn 创建表权限
grant create table to flynn;
revoke create table from flynn;

-- flynn 用户
-- 创建t_user表
create table t_user(
   u_name char(10) not null,
   u_age number(5) not null,
   U_password varchar(20) not null
);

-- 添加主键约束
alter table t_user add constraints pk_uname primary key(u_name);

-- 移除主键约束
alter table t_user drop constraint pk_uname;

select * from t_user;

-- 查询一个用户拥有的对象权限
select * from dba_tab_privs where grantee='用户名';

-- 查询一个用户拥有的系统权限
select * from dba_sys_privs where grantee='用户名';

原文地址:https://www.cnblogs.com/f1ynn/p/11619468.html

时间: 2024-11-11 20:03:43

数据库完整性和约束的相关文章

数据库完整性及约束

转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688 1.  数据完整性:常用三种类型的约束保证数据完整性有域(列)完整性.实体完整性.引用完整性. 2.  实体完整性:能够唯一标识表中的第一个记录. 保证方法有主键约束.标识约束.唯一约束. 主键约束与唯一约束添加的基本语法 Alter  table  表名 addconstraint  约束名  约束类型  具体的约束说明 约束名的取名规则:约束类型_约束字段. 比如主键(Primary Key)约束:PK_Stu

30. SQL -- 完整性及约束(1)

完整性及约束 数据完整性: 数据完整性是指数据的精确性和可靠性.它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的.SQL Server 提供了一些工具来帮助用户实现数据完整性,其中最主要的是:约束(Constraint).和触发器(Trigger). 数据完整性约束主要包括四大类: 实体完整性  域完整性 引用完整性 用户自定义完整性 实体完整性: 实体完整性指的是关系数据库中所有的表都必须有主键,而且表中不允许存在如下的记录. u 无主键值的记

数据库表的约束

在设计数据库时,为了确保数据库表中数据的质量,需要考虑数据的完整性(数据的完整性是指数据的正确性和一致性).举个例子:当你要为学生建立一个基本信息表StudentInfo时,这个表中学生的名字可以相同但是学号必须不一样,而他的年龄也得限制在一定范围内,像这样类似的"限制"有很多,如果违反了这些限制就制造了与现实不符的失真数据即破坏了数据的完整性.因为数据库不能自行判断哪些数据失真,所以需要认为添加一些约束来保证数据的完整性. 数据库中对表的约束有五种: 1.主键约束(Primary K

数据库复习3——数据库完整性

数据库复习 CH5 完整性 5.1 完整性约束 数据库完整性是指数据库中数据在逻辑上的一致性.正确性.有效性和相容性,那么完整性约束就是指用户插入.修改和删除操作时,DBMS为了保证数据库逻辑上的一致性.正确性.有效性和相容性所必需要检查的约束条件 C.J.Date在<An Introduction to Database Systems>一书中描述了四种完整性约束: 类型约束 属性约束 关系变量约束 数据库约束 C.J.Date提出的理论多半是建立在他自创的Tutorial D这个概念型数据

复习六——数据库完整性

数据库完整性概念 数据库完整性是指保护数据库中数据的 正确性:数据的合法性 有效性:数据是否在有效范围内 相容性:指表示同一个事实的两个数据应该一致 完整性规则定义 D(Data):约束作用的数据对象 O(Operation):触发完整性检查的数据库操作,立即检查还是延迟检查. A(Assertion):数据对象要满足的断言或语义规则 C(Condition):受A作用的数据对象值的谓词 P(Procedure):违反完整性规则时触发的过程 完整性约束按约束作用类型分类 域完整性 域是一组具有相

第12讲:数据库完整性

大纲: 数据库完整性的概念及分类 SQL语言实现静态(列/关系)完整性 SQL语言实现动态完整性 一.前言 1. 数据库完整性是数据库的一种特性(在任何情况下的正确性.有效性和一致性),其由DBMS保证实现 ①广义完整性:语义完整性.并发控制.安全控制.故障恢复 ②狭义完整性:特指语义完整性,DBMS通常有专门的完整性管理机制与程序来处理语义完整性问题 2. 回顾关系模型中的三个完整性:实体完整性.参照完整性.用户自定义完整性 用户自定义完整性即是上述语义完整性,而这也是我们这讲的主题. 3.

数据库字段的约束

数据库中的约束我归纳了一下有几种据我所知道的列举出来数据库中的字段的约束很有哟个他可以对输入的内容及逆行一个规则 为了防止以后忘了所以现在列举出来给大家和我一个参考 1)主键约束(primary  key) 主键约束通常都是在id字段上使用的他又两个特点不能为空或 不能重复 , 主键约束(primary key) 例如:create table 表名( uid number(20) primary key , uname varchar2(6) ); 2)非空约束(not null) 非空约束,

数据库 chapter 5 数据库完整性

第五章 数据库完整性 数据库的完整性是指数据库的正确性和相容性. 例如,学生学号必须唯一,性别只能是男或女等等: 和数据安全性的区别: 数据的完整性是为了防止数据库中存在不正确的数据,数据库的安全性是保护数据库防止恶意的破坏和非法的存取.因此,完整性检查和控制的防范对象是不合语义的,不正确的数据,防止它们进入数据库.安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取. 为维护数据库的完整性,DBMS必须能够: 提供定义完整性约束条件的机制: 提供完整性检查的方法: 违约处理

项目中客户端,服务端验证,数据库联合唯一约束,事务管理。

项目中有个需求,发布一个活动,记录下参加该活动的id和参与人id,同时调用接口,往收藏夹中添加一条记录,往交易表中添加一条记录.最后根据返回的结果,给出不同的提示信息. 1.如果当前的在jsp页面上面做处理,判断是否参与过.参加过之后,参加按钮不可点.没有参加的情况,参加按钮可以点. 2.jsp客户端加上js处理,参加按钮点击完之后,按钮不可点. 3.在controller中,业务逻辑开始前,再次java判断是否参加过该活动. 4.在数据库中参与表(活动id,参与人id)加上联合唯一约束.根据异