MySQL实验七 数据完整性

第1关:通过主索引设置实体完整性

本关任务:建立主索引可以保证数据的实体完整性。 即数据表的每行记录不与其他记录重复

 use library;
 #代码开始
 alter table book add primary key txm(txm) ;
 #代码结束
 insert into book(txm,sm) values("P0000001","苏东坡全集");

第2关:通过check设置域完整性

对于图书数据表book(已经建立并插入记录),对于价格字段sj设置约束sjgd,要求价格必须大于0且小于等于5000

 use library;
 #代码开始
 alter table book add constraint sjgd check (sj>0 and sj<=5000);
 #代码结束
 insert into book(txm,sm,sj) values("P0000099","四库全书一",8000);

第3关:设置借阅表和读者表的参照完整性

在借阅表和读者表设置参照完整性 当删除读者表的数据时,借阅表的相关记录一起删除 当修改读者表的读者证号时,借阅表的相关记录的读者证号一起被修改

 use library;
 #代码开始
 alter table borrow add constraint dzzh
 foreign key (dzzh) references reader(dzzh)
 on delete cascade on update cascade;
 #代码结束
delete from reader where dzzh="001";
update reader set dzzh="111" where dzzh="002";
select * from borrow;

第4关:设置借阅表和图书表的参照完整性

在借阅表和图书表设置参照完整性 当借阅表有某个条形码的记录,就不能删除图书表中相关的图书,也不能修改图书表中相关图书的条形码。

 use library
 #代码开始
 ALTER TABLE borrow ADD
 FOREIGN KEY (txm) REFERENCES book(txm) 
 ON DELETE RESTRICT ON UPDATE RESTRICT;
 #代码结束
 delete from book where txm="P0000001";

第5关:建立数据表并设置参照完整性

建立期刊qk数据表和期刊借阅qkjy数据表

在建立期刊借阅数据表时,与读者表建立关联。 当修改读者表的读者证号,借阅期刊表的相关会删除。当删除读者表的读者证号,借阅期刊表的相关记录会删除。 在建立期刊借阅数据表时,同时与期刊表建立关联。不允许修改和删除期刊数据表的相关数据。

use library;
#代码开始
CREATE TABLE qk (
  qktxm VARCHAR(10) PRIMARY KEY,
  qkmc VARCHAR(20) ,
  kh VARCHAR(10) ,
  jh VARCHAR(10) ,
  cbdw VARCHAR(20) ,
  jg DECIMAL(4,1) );
CREATE TABLE qkjy (
  dzzh TINYINT(3) UNSIGNED ZEROFILL,
  qktxm VARCHAR(10),
  jyrq DATE,
  hsrq DATE,
  FOREIGN KEY (dzzh) REFERENCES reader(dzzh) ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (qktxm) REFERENCES qk(qktxm) ON DELETE RESTRICT ON UPDATE RESTRICT
) ;
#代码结束
show create table qkjy;

第6关:删除参照完整性

删除借阅数据表和图书数据表的外键,名字为borrow_ibfk_1

use library; 
#代码开始
ALTER TABLE borrow DROP FOREIGN KEY borrow_ibfk_1;
#代码结束
show create table borrow;

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
MySQL数据完整性控制实验小结 MySQL是目前广泛使用的关系型数据库管理系统,数据完整性保证数据质量和正确性的重要方面。本次实验要介绍如何在MySQL中实现数据完整性控制,包括以下几个方面: 1. 键约束 键约束是表中用来唯一标识每一行数据的一列或一组列,键的值必须唯一且不能为空。在MySQL中,可以通过以下语句创建键约束: ``` CREATE TABLE 表名 ( 列1 数据类型 PRIMARY KEY, 列2 数据类型, ... ); ``` 2. 外键约束 外键约束是表中用来与另一张表建立关联关系的一列或一组列,外键的值必须是另一张表的键值或者为空。在MySQL中,可以通过以下语句创建外键约束: ``` CREATE TABLE 表名1 ( 列1 数据类型 PRIMARY KEY, 列2 数据类型, ... ); CREATE TABLE 表名2 ( 列1 数据类型 PRIMARY KEY, 列2 数据类型, 列3 数据类型, ... FOREIGN KEY (列3) REFERENCES 表名1(列1) ); ``` 其中,表名2中的列3是一个外键,它与表名1的键列1建立了关联关系。 3. 检查约束 检查约束是对表中数据进行条件限制的一种方式,可以通过检查约束来保证数据的正确性。在MySQL中,可以通过以下语句创建检查约束: ``` CREATE TABLE 表名 ( 列1 数据类型, 列2 数据类型, ... CONSTRAINT 检查约束名 CHECK (条件表达式) ); ``` 其中,条件表达式是对列1、列2等列进行限制的条件表达式。 4. 非空约束 非空约束是对表中某一列进行非空限制的一种方式,可以通过非空约束来保证数据的正确性。在MySQL中,可以通过以下语句创建非空约束: ``` CREATE TABLE 表名 ( 列1 数据类型 NOT NULL, 列2 数据类型, ... ); ``` 其中,列1是被设置为非空约束的列。 本次实验通过实例演示了如何在MySQL中实现数据完整性控制,包括键约束、外键约束、检查约束和非空约束。这些约束可以保证数据的正确性和完整性,提高了数据库的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

howell(Python)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值