-
2021-04-12 18:15:17
关系模型的完整性规则是对关系的某种约束条件。在关系模型中,提供了实体完整性、参照完整性和用户定义的完整性等三项规则。下面将分别介绍MySQL中对数据库完整性三项规则的设置和实现方式。
主要内容:
1)实体完整性
2)用户自定义的完整性
3)参照完整性
实体完整性
实体(entity)是一个数据对象,是指客观存在并可以相互区分的食物,实体完整性规则(Entity intergrity Rule)是指关系的主属性,即主码(主键)的组成不能为空,也就是关系的主属性不能是空值(null)
参照完整性
参照完整性规则(referential lntegrity Rule)就是定义外码(外键)和主码(主键)之间的引用规则,它是对关系间引用数据的一种限制。
参照完整性的定义为:或属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元祖在F上的值只允许两种可能,即要么取空值(F的每个属性值均为空值),要么等于S中某个元祖的主码值。其中,关系R与S可以是不同的关系,也可以是同意关系,而F与K是定义在同一域中。
用户定义的完整性
用户定义完整性规则(User_defined lntegrity Rule)是针对某一应用环境的完整性约束条件,它反映了某一具体应用所涉及的数据应满足的要求。更多相关内容 -
用户自定义完整性
2022-05-12 11:34:48用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。. 主要包括非空约束、唯一约束、检查约束、主键约束、外键约束。 -- 用户自定义完整性 -- unique -- --...用户自定义完整性 定义. 用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。. 主要包括非空约束、唯一约束、检查约束、主键约束、外键约束。
-- 用户自定义完整性 -- unique -- -- 列级 create table student ( sno char(6) primary key, sname varchar(8) unique, ssex char(2), sbirth date, sdept varchar(20) ); insert into student(sno,sname,ssex,sbirth,sdept) values("091001","李志勇","男","2000-09-18","软件工程"); insert into student(sno,sname,ssex,sbirth,sdept) values("091002","李志勇","男","2001-09-18","软件工程"); select * from student; -- 注意这里是sname varchar(8) unique, unique + not null = key PRIMARY -- 表级(就是多个unique 联合, cname,ccredit不能都相同哦, 但是可以有一个不同,或者都不同) create table course ( cno char(3) primary key, cname varchar(20), cpno char(3), ccredit tinyint, constraint u_c_01 unique(cname,ccredit) ); -- insert into course(cno,cname,cpno,ccredit)values("001",null,null,null); -- insert into course(cno,cname,cpno,ccredit)values("002",null,null,null); -- null与null之间互不相同 insert into course(cno,cname,cpno,ccredit)values("001","大学计算机",null,2); insert into course(cno,cname,cpno,ccredit)values("002","大学计算机",null,4); insert into course(cno,cname,cpno,ccredit)values("003","大学计算机","001",4); -- 上面这两条语句, 只有一个能成功, -- drop table course; select * from course; -- 删除unique,必须有名称才可以删除吧, 所以可以在表中定义constraint u_c_01 unique(cname,ccredit),然后进行删除, -- 删除时, 是drop index u_c_01(名称) alter table course drop index u_c_01; -- 其它 -- -- null (not null) -- -- default -- -- zerofill -- -- unsigned -- -- auto_increment -- -- (1) 定义表的创建 drop table student; create table student ( id int(5) zerofill unsigned auto_increment primary key, sno char(6) not null, sname varchar(8) unique, ssex char(2) default "男", sbirth date default "2020-09-18", sdept varchar(20) default "软件工程" ); insert into student(sno,sname)values("091001","郑航飞"); insert into student(sno,sname)values("091002","李志勇"); -- 这里的id是递增的 select * from student; -- (2)修改表的时候用modify(小修改) alter table student modify ssex char(4) not null; -- 修改后表的属性已经变了 insert into student(sno,sname,ssex)values("091003","肖娜","女"); select * from student; -- (3)修改表的时候用change(大修改) alter table student change sbirth sage date default"2021-10-11"; insert into student(sno,sname,ssex)values("091004","谢菲菲","女"); select * from student;
-
用户定义完整性约束
2020-03-31 22:40:152.用户定义完整性约束: 用户定义的完整性规则,包括非空约束、自增约束、默认值约束等、check约束以及触发器约束,本次主要学习非空约束、自增约束、默认值约束,check约束以及触发器约束在这里暂时不做介绍。 ...用户定义完整性约束:
用户定义的完整性规则,包括非空约束、自增约束、默认值约束等、check约束以及触发器约束,本次主要学习非空约束、自增约束、默认值约束,check约束以及触发器约束在这里暂时不做介绍。
非空约束(not null):
非空约束是指字段的值不能为null,null值就是没有值或值空缺,不是空串(‘ ’), 对于使用了非空约束的字段,如果用户在添加数据时没有给其指定值,数据库系统会报错。在mysql中,非空约束的定义可以使用 create table 或alter table语句,在某个列定义后面加上关键字 not null作为限定词,来约束该列的取值不能为空。
(1)创建表时,为字段添加非空约束,语法如下:
create table 表名(
字段名 数据类型 not null,
…,
字段名 数据类型
)engine=存储引擎;
例:在数据库db_school中定义班级表book1时,给字段booknum定义非空约束。
use db_school;
create table book1 (
id int(4),
booknum varchar(6) not null,
name varchar(25)
);
(2)修改表,给已经存在的字段添加非空约束,语法如下:
alter table 表名 modify 字段名 数据类型 not null;例:使用alter table...modify语句给已有字段id添加非空约束。
create table book1 (
id int(4),
booknum varchar(6),
name varchar(25)
);
alter table book1 modify id int not null;(3)修改表,添加新的字段并添加非空约束条件,语法如下:
alter table 表名 add 新字段名 新数据类型not null;
例:已有book1表,向表中新增作者字段author_name, 数据类型为char(10)、非空.
create table book1 (
id int(4),
booknum varchar(6),
name varchar(25)
);
alter table book1 add auther_name char(10) not null;(4)删除表中字段的非空约束,语法如下:
alter table 表名 modify字段名 数据类型 null;
例:已有表book1,删除字段id的非空约束。
create table book1 (
id int(4) not null,
booknum varchar(6),
name varchar(25)
);
alter table book1 modify id int(4) null;默认值(default)约束:
默认值约束用于指定一个字段的默认值。如果没有在该字段值填写数据,则该字段将自动填入这个默认值。
(1)创建表时,给字段增加默认值约束,语法如下:
create table 表名(
字段名 数据类型 default 默认值,
…,
字段名 数据类型
)engine=存储引擎;
例:在数据库db_school中定义成员表persons时,给字段city定义默认值约束。
create table persons(
id_p int ,
lastname varchar(10) ,
firstname varchar(10),
address varchar(100),
city varchar(20) default ‘shanghai’
);
以上创建的表persons中,对城市‘city’给了默认值,在插入数据的时候如果不输入其他值,给一个default,mysql会自动给默认值’shanghai’(2) 修改表,对表中已有的字段设置默认值,语法如下:
alter table 表名 alter 字段名 set default ‘默认值’;
例:使用alter table…alter语句给表persons已有字段id_p添加默认值0
create table persons(
id_p int ,
lastname varchar(10) ,
firstname varchar(10),
address varchar(100),
city varchar(20) default ‘shanghai’
);
alter table persons alter id_p set default 0;(3)修改表,在表中新增字段且为该字段设置默认值,方法如下:
alter table 表名 add 新字段名 新数据类型 default ‘默认值’;
例:给表persons增加字段sex表示性别,char(10),并且设置默认值 ‘男’;
create table persons(
id_p int ,
lastname varchar(10) ,
firstname varchar(10),
address varchar(100),
city varchar(20) default ‘shanghai’
);
alter table persons add sex char(10) default ‘男’;(4)删除表中某个字段的默认值,方法如下:
alter table表名 alter 字段名 drop default;
例:删除表persons性别字段sex的默认值
alter table persons alter sex drop default; -
SQL语句(九)用户自定义完整性
2018-07-20 13:11:421.用户自定义完整性 SQL Server支持的用户自定义完整性主要有NOT NULL(不为空)、UNIQUE(唯一)、NULL(空)、CHECK(检查是否在某一范围之内)。 2.实例 1.定义NULL/NOT NULL约束 CREATE TABLE nation2(/*...1.用户自定义完整性
SQL Server支持的用户自定义完整性主要有NOT NULL(不为空)、UNIQUE(唯一)、NULL(空)、CHECK(检查是否在某一范围之内)。
2.实例
1.定义NULL/NOT NULL约束 CREATE TABLE nation2(/*国家表*/ nationkey INTEGER PRIMARY KEY, /*国家编号*/ name CHAR(25)NOT NULL, /*国家名称*/ regionkey INTEGER REFERENCES region(regionkey),/*地区编号*/ comment VARCHAR(152)NULL /*备注*/ ); 2.定义属性的缺省值 定义零件基本表的制造厂的缺省值为,表示其他厂商 CREATE TABLE part2(/*零件基本表*/ partkey INTEGER PRIMARY KEY, /*零件编号*/ name VARCHAR(100), /*零件名称*/ mfgr CHAR(50)DEFAULT '0', /*制造厂*/ brand VARCHAR(50), /*品牌*/ type VARCHAR(25), /*零件类型*/ size INTEGER, /*尺寸*/ container CHAR(10), /*包装*/ retailprice REAL, /*零售价格*/ comment VARCHAR (23) /*备注*/ ); 3.定义属性UNIQUE约束 定义地区表的地区名称必须唯一的约束 CREATE TABLE region2(/*地区表*/ regionkey INTEGER PRIMARY KEY, /*地区编号*/ name CHAR(25)UNIQUE, /*地区名称*/ comment CHAR(152) /*备注*/ ); 4.使用CHECK 使用CHECK定义订单表中某些属性应该满足的约束 CREATE TABLE orders2(/*订单表*/ orderkey INTEGER PRIMARY KEY,/*订单编号*/ custkey INTEGER,/*顾客编号*/ /*订单状态有中,0表示尚未处理,1表示已经处理*/ orderstatus CHAR(1)CHECK(orderstatus IN('0','1')),/*订单状态*/ totalprice REAL,/*订单总金额*/ orderdate DATE,/*订单日期*/ /*订单优先级有三等,0表示最高,1次之,2表示最低*/ orderpriority CHAR(15)CHECK (orderpriority IN('0','1','2')),/*订单优先级别*/ clerk CHAR(15),/*记账员*/ shippriority INTEGER ,/*运输优先级别*/ comment VARCHAR(79),/*备注*/ ); 5.插入orders2中的一条记录,验证是否违反CHECK 约束 INSERT INTO orders2 VALUES(1,2,'0',200,'2017-11-19','1','lllllll',2,'fast'); SELECT * FROM orders2; UPDATE orders2 SET orderpriority='3' WHERE orderkey=1;
3.注意
任何关系数据库系统都应该支持实体完整性和参照完整性,此外,不同关系数据库根据应用环境的不同,往往还需要一些特殊的条件,用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体数据必须满足的语义要求,个人认为正是有了用户完整性,数据才会更加严谨,使用起来也会更加方便。
-
mysq用户自定义完整性之 添加检查约束。
2017-06-05 11:47:15“检查约束”是关系型数据库中用户自定义完整性的一种,mysql可以通过enum来约束列的取值范围,如下: 创建了一个数据库test,要在test数据库里创建表ttt: use test; create table ttt( id int auto_increment ... -
完整性约束包括哪些?
2021-07-28 21:06:02数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。 分为以下四类: ...4、用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定 -
MYSQL有哪些完整性约束
2020-09-21 20:23:33MYSQL支持的完整性约束 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。 MYSQL中,常用的几种约束: 约束类型: 主键 外键 唯一... -
数据库关系模型完整性约束
2019-12-08 20:47:30一、实体完整性(要求有唯一健) ...二、参照完整性(外键的参照)(引用完整性约束) 参照完整性要求关系中不允许引用不存在的实体。设定相应的更新删除插入规则来更新参考表。 例如表sutdent(有i... -
关系模式的完整性约束
2022-04-23 18:25:25关系模式的完整性约束 -
熟悉和掌握创建三类数据完整性(实体完整性、参照完整性和用户自定义)约束 掌握用命令方式管理数据的基本...
2021-05-04 14:38:081.熟悉和掌握数据库的创建和表的方法 2.熟悉和掌握创建三类数据完整性(实体完整性、参照完整性和用户自定义)约束 掌握用命令方式管理数据的基本操作 -
sqlsever2019:数据完整性约束
2021-12-22 18:54:22sqlsever2019完整性约束详细讲解 -
数据库:DDL,DML,DCL,实体完整性,参照完整性,用户自定义完整性
2018-09-24 18:26:46用来定义表或者改变表的结构,数据类型,表之间的连接,约束等初始化工作上。包括:CREATE DROP ALTER等 DML:数据库操纵语言。对数据库的数据进行操作。包括:DELETE UPDATE INSERT SELECT等 DCL:数据库控制... -
SQL Server中创建表,设置完整性约束
2020-09-23 18:48:503、非空约束:属于列级完整性约束条件,在列定义时设置 。 4、唯一约束:属于列级完整性约束条件,在列定义时设置 。 5、check约束:本例子中没有涉及。比如表S中City只能设置为“北京”或“上海”,则可以进行如下... -
关系的三类完整性约束
2018-03-08 10:08:281.实体完整性若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(不知道、不存在、无...3.用户自定义完整性针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。... -
数据完整性和常见的几种约束
2022-03-16 14:29:32用户定义的完整性关于约束常见的几种约束1.主键约束 (PRIMARY KEY)2.非空约束(NOT NULL)3.自增长约束(AUTO_INCREMENT)4.非负约束(UNSIGNED)5.唯一约束(UNIQUE)6.外键约束(FOREIGN KEY)7.默认值约束(DEFAULT)8.检查... -
完整性约束及其违约处理
2016-12-25 16:17:46完整性约束一共有3种,分别是实体、参照、用户自定义完整性约束~ -
关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义完整性
2021-10-23 17:35:46文章目录实体完整性参照完整性用户定义完整性 实体完整性 定义:若属性A是基本关系R的主属性,则属性A不能取空值(空值就是“不知道”或“不存在”或“无意义”的值) 例: 选修(学号,课程号,成绩) “学号... -
数据库约束——用户定义完整性(User-defined Integrity)
2012-10-29 16:06:48用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。主要包括非空约束、唯一约束、检查约束、主键约束、外键约束 1、非空约束(Not Null Constraint) ... -
数据库完整性(实体完整性、参照完整性、用户定义的完整性、完整性约束命名字句、断言、触发器)
2020-05-18 19:51:48完整性检查:(数据库管理系统中检查数据是否满足完整性约束条件的机制称为完整性检查。) 一般在INSERT、UPDATE、DELETE语句执行后开始检查,也可以在事务提交时检查。 违约处理: 拒绝(NO ACTION)... -
实体完整性参照完整性和用户自定义的完整性分别是怎样体现的
2018-08-13 16:34:41关系的完整性是关系型数据模型结构中的另一组成部分,它分为实体完整性、参照完整性和用户定义完整性三类。在关系数据库中一个关系对应现实世界的一个实体集,关系中的每一个元组对应一个实体。在关系中用主关键字来... -
Sql server 2008 数据库的完整性约束
2020-12-14 20:44:15一、数据库完整性概述 1.数据库的完整性: ①数据库的完整性是指数据的正确性和相容性 ②数据库完整性是防止不合语义或不正确的数据进入数据库 ... 检查数据是否满足完整性约束条件的机制称为完整性 -
数据库完整性(实体完整性,参照完整性,用户定义完整性)
2022-04-25 21:00:21数据库完整性: 指数据库中数据的正确性、相容性 正确性:保证进入数据库的数据是符合语义约束的合法数据 相容性:同一个事实的两个数据应当是一致的 为了维护数据库的定义完整...完整性约束条件的分类 ①就被... -
关于数据库的完整性约束
2011-04-08 20:29:07完整性约束对数据库的重要性; 实体完整性的创建、修改和维护; 域完整性的创建、修改和维护; 参照完整性的创建、修改和维护; 用户定义完整性的创建、修改和维护。 -
数据库实验:用户自定义的完整性
2020-06-21 15:49:00掌握用户自定义完整性的定义和维护方法。 2. 实验内容 针对具体应用语义,选择NULL/NOT NULL、DEFAULT、UNIQUE、CHECK等,定义属性上的约束条件。 3. 实验重点和难点 实验重点:NULL/NOT NULL,DEFAULT。 实验... -
数据库考点之完整性(实体、参照、用户自定义)、触发器
2020-09-27 22:50:08如题:2019年10月 答案:P143,相容性。 -
SQL Server数据完整性全包含(用户自定义数据类型、使用规则、解除和删除规则)
2018-12-24 17:52:30举例:当几个表中要存同种数据类型时,并且保证他们有相同的数据类型、长度和可控性的时候就可以用用户自定义数据类型。 1、数据类型的名称; 2、所基于的系统数据类型; 3、数据类型的可控性。 个人理解:其实... -
关系数据模型的三大完整性约束
2021-07-09 12:53:11要想了解这三类完整性约束,先要了解什么是数据完整性。 数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误信息。保证输入的数据... -
数据库关系模型的三类完整性约束
2019-02-25 10:12:10关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性 实体完整性 定义:实体完整性是用于保证关系数据库中每个元组都是可区分的,唯一的。 它的意思就是说数据表中每一行都应该有办法... -
数据库原理 数据库完整性-用户自定义完整性
2020-02-29 20:16:44属性上的约束条件 元组上的约束条件 小结