数据库完整性

1.使用不带约束的脚本创建eshop数据库;

2.使用修改表命令将members表的m_address设置为非空,添加如下记录,体会NOT NULL约束的使用:‘wenh’,‘翁磊’,‘男’,‘1970-04-20’,NULL,5500.0,‘888888’

3.在members表中,将m_account设置为主键,并查看对应的索引,添加如下记录,体会PRIMARY KEY约束的作用:

‘liuzc518’,‘翁磊’,‘男’,‘1970-04-20’,‘河南郑州’,5500.0,‘123456’

4.在members表中,为m_name增加UNIQUE约束,添加如下记录,体会UNIQUE约束的作用:‘jjyw’,‘津津有味’,‘男’,‘1970-04-20’,‘河南郑州’,5500.0,‘jjyw’

5.在members表中,为会员增加CHECK约束为:性别只能为男或女。再分别添加如下两条记录,体会CHECK的约束的作用:

'liuzh','刘忠怀','1960-04-20','工','河南郑州',3000.0,'liuzh'

'liujj','刘津津','1980-04-22','女','河南郑州',4400.0,'liujj'

6.在members表和orders表之间创建关系,并将orders表的m_account设置为外键fk_mo,体会FOREIGN KEY约束的作用;

7.创建触发器要求在插入和更新members年龄时检查age是否在15到60之间,如不在15到60,则输出“年龄不合法”提示信息;

8. 创建触发器实现删除会员信息时,要求自动备份被删除的数据到表backupTable中。

--1.使用不带约束的脚本创建eshop数据库;

if exists (select *from sys.databases where name ='eshop')

begin

use master 

drop database eshop

end

create database eshop

--2.使用修改表命令将members表的m_address设置为非空,添加如下记录,体会NOT NULL约束的使用:‘wenh’,‘翁磊’,‘男’,‘1970-04-20’,NULL5500.0,‘888888

use eshop

insert into members

values('wenh','翁磊','','1970-04-20',NULL,5500.0,'888888')

--3.在members表中,将m_account设置为主键,并查看对应的索引,添加如下记录,体会PRIMARY KEY约束的作用:‘liuzc518’,‘翁磊’,‘男’,‘1970-04-20’,‘河南郑州’,5500.0,‘123456

use eshop

alter table members

add constraint pk_members primary key(m_account)

insert into members

values('liuzc518','翁磊','','1970-04-20','河南郑州',5500.0,'123456')

--4.在members表中,为m_name增加UNIQUE约束,添加如下记录,体会UNIQUE约束的作用:‘jjyw’,‘津津有味’,‘男’,‘1970-04-20’,‘河南郑州’,5500.0,‘jjyw

use eshop

alter table members

add constraint un_name unique(m_name)

use eshop

insert into members

values('jjyw','津津有味','','1970-04-20','河南郑州',5500.0,'jjyw')

--5.在members表中,为会员增加CHECK约束为:性别只能为男或女。再分别添加如下两条记录,体会CHECK的约束的作用:'liuzh','刘忠怀','1960-04-20','','河南郑州',3000.0,'liuzh''liujj','刘津津','1980-04-22','','河南郑州',4400.0,'liujj'

use eshop

alter table members

add constraint ck_sex check(m_sex IN('',''))

use eshop

insert into members

valuse('liuzh','刘忠怀','','1960-04-20','河南郑州',3000.0,'liuzh')

use eshop

insert into members

valuse('liujj','刘津津','','1999-04-14','河南郑州',4400.0,'liujj')

--6.在members表和orders表之间创建关系,并将orders表的m_account设置为外键fk_mo,体会FOREIGN KEY约束的作用;

use eshop

alter table orders

add constraint fk_mo foreign key(m_account)

references members(m_account)

--7.创建触发器要求在插入和更新members年龄时检查age是否在1560之间,如不在1560,则输出“年龄不合法”提示信息;

create trigger tr_age

ON members

for insert,update 

as

declare @age INT

select @age = year(getdate())-year(m_birth)

from inserted

if @age not between 15 and 60

begin

rollback transaction

raiserror('年龄不合法',16,10)

end

--8. 创建触发器实现删除会员信息时,要求自动备份被删除的数据到表backupTable中。

create trigger s2

ON members

for delete 

as

      print '开始备份数据,请稍后......'

      insert into backupTable( M_account ,M_name ,M_birth ,M_sex ,M_address ,M_salary ,M_password) 

       select   from M_account ,M_name ,M_birth ,M_sex ,M_address ,M_salary ,M_password deleted

     IF (@@error = 0)

        begin

           print '备份数据成功,备份表中的数据为:'

           select * from backupTable

           print '备份数据成功,交易表中的数据为:'

           select * from members

        end

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL是一种关系型数据库管理系统,也是一个开源的数据库软件。它提供了多种机制来确保数据库完整性。在MySQL中,可以使用约束条件来对数据进行验证和限制,以防止不符合规范的数据进入数据库。这些约束条件包括主键约束、唯一约束、非空约束和外键约束等。通过定义这些约束条件,可以确保数据库中存储的数据正确、有效和相容。 同时,MySQL提供了一些可视化的数据表工具,如sqlyog和navicat,可以用来查看和管理数据表。这些工具可以帮助用户更方便地进行数据库操作,包括查看表结构、查询数据、插入数据和执行SQL语句等。 总之,MySQL提供了多种机制来确保数据库完整性,并且提供了可视化的数据表工具来方便用户进行数据库管理和操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql exercise two 已创建数据库、表](https://download.csdn.net/download/life_boy/88250497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MySQL数据完整性(2)](https://blog.csdn.net/qq_62606197/article/details/129889965)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Mysql数据库完整性](https://blog.csdn.net/chengchuanji/article/details/89165999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

简单编程王子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值