实验五 数据库完整性约束的实现与验证

 题目

  1. 在实验四的基础上,重新创建以下三个表:
    会员表:member(memno,memname,address,telephone,username,userpwd),主码为memno,属性memname不能取空值
    员工表:employee(empno,empname,depno,sex,telephone,username,userpwd),主码为empno,depno参照部门表department的主码属性depn
    部门表:department(depno,depname,manager,deptotal),主码为depno,属性depname不能取空值
  2. 为employeea表的empname属性添加不能取空值的约束,并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果
  3. 为department表的manager属性增加参照完整性约束,要求该属性参照员工表employee的主码属性empno,并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果
  4. 为订单表orders增加主码约束,主码为orderno, 并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果
  5. 为会员表member属性列username添加取唯一值的约束,约束名为UK1,删除约束,并举例实践验证增加约束前后DBMS的违约处理机制,写出具体的实验数据、步骤和结果
  6. 为员工表employee的属性列username增加取唯一值的约束,并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果
  7. 创建一个性别只能取“男”或“女”的规则并把其绑定到员工表employee的属性sex上,并说明使用规则定义完整性约束与直接使用create语句或alter语句定义完整性约束的区别
  8. 定义一个默认值,并绑定在员工表employee的userpwd属性上,要求userpwd属性的默认取“123456”

步骤如下:

 1在实验四的基础上,重新创建以下三个表:

会员表:member(memno,memname,address,telephone,username,userpwd),主码为memno,属性memname不能取空值

CREATE TABLE member (

    memno INT PRIMARY KEY,

    memname VARCHAR(100) NOT NULL,

    address VARCHAR(255),

    telephone VARCHAR(20),

    username VARCHAR(50),

    userpwd VARCHAR(50)

);

  

员工表:employee(empno,empname,depno,sex,telephone,username,userpwd),主码为empno,depno参照部门表department的主码属性depno

.CREATE TABLE employee (

    empno INT PRIMARY KEY,

    empname VARCHAR(100),

    depno INT,

    sex CHAR(1),

    telephone VARCHAR(20),

    username VARCHAR(50),

    userpwd VARCHAR(50),

    FOREIGN KEY (depno) REFERENCES department(depno)

);

部门表:department(depno,depname,manager,deptotal),主码为depno,属性depname不能取空值

 CREATE TABLE department (

    depno INT PRIMARY KEY,

    depname VARCHAR(100) NOT NULL,

    manager VARCHAR(100),

    deptotal INT

);

  

2. 为employeea表的empname属性添加不能取空值的约束,并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果

首先执行如下sql命令,添加约束

alter table employee 

add constraint CK_employee_empname check (empname IS NOT NULL);

 验证违约处理机制:

尝试插入如下数据:

INSERT INTO employee (empname, depno, sex, telephone, username, userpwd) 

VALUES (NULL, 1, '男', '15510810888', 'zhangsan', '123456');

返回结果:

消息515,级别16,状态2,第1 行

不能将值NULL 插入列'empname',表'ecommerce.dbo.employee';列不允许有Null 值。INSERT 失败。

语句已终止。

  1. 为department表的manager属性增加参照完整性约束,要求该属性参照员工表employee的主码属性empno并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果

首先在employee中插入数据

INSERT INTO employee (empno, empname, depno, sex, telephone, username, userpwd) VALUES

(1, 'John Doe', 101, 'M', '1234567890', 'johndoe', 'password123'),

(2, 'Jane Smith', 102, 'F', '0987654321', 'janesmith', 'password456');

添加约束条件

ALTER TABLE department

ADD CONSTRAINT fk_manager

FOREIGN KEY (manager) REFERENCES employee(empno);

再次插入empno中不存在的数据

INSERT INTO department (depno, depname, manager, deptotal) VALUES

(202, 'Finance', 3, 20);

  1. 为订单表orders增加主码约束,主码为orderno, 并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果

注:orders有member和product的外键

首先在member中插入数据

insert into member values(1,'zhangsan','2156','165','zhangsan','13546');

再在product中插入数据

INSERT INTO product (prono, proname, brand, stock, supno, price, cost, catno, ontime, status)

VALUES (1, '华为', '华为', 20, 14001, 4988, 4488, 101, '2021-01-01', 0);

然后插入数据

insert into orders values(1,1,1,1,1.1,1.1,'2000-01-01','2020-02-02')

设置主键

ALTER TABLE orders

ADD CONSTRAINT pk PRIMARY KEY (orderno);

再次添加数据

insert into orders values(1,1,1,1,1.1,1.1,'2000-01-01','2020-02-02')

  1. 为会员表member属性列username添加取唯一值的约束,约束名为UK1,删除约束,并举例实践验证增加约束前后DBMS的违约处理机制,写出具体的实验数据、步骤和结果

首先插入一组数据,此数据zhangsan是没有加的之前

INSERT INTO member  VALUES (2,'zhangsan','饭都花园','032', 'zhangsan','3516');

查看数据中是否含有重复的username导致约束无法成立。

SELECT * FROM member;

加入约束

alter table member 

add constraint UK1 unique(username) 

再次插入上述相同数据
INSERT INTO member  VALUES (2,'zhangsan','饭都花园','032', 'zhangsan','3516');

删除约束

alter table member

drop constraint UK1

再次插入数据INSERT INTO member  VALUES (2,'zhangsan','饭都花园','032', 'zhangsan','3516');

6.为员工表employee的属性列username增加取唯一值的约束,并举例实践验证DBMS的违约处理机制,写出具体的实验数据、步骤和结果

先检查数据库中是否存在重复数据。

select*from employee

没有后插入相关约束

alter table employee

add unique(username)

insert into employee(empno,depno,username)values(4,1,'zhangsi')

7创建一个性别只能取“男”或“女”的规则并把其绑定到员工表employee的属性sex上

添加约束条件check

ALTER TABLE employee

ADD constraint chek_sex check(sex in('男','女'))

将数据进行插入

insert into employee values(5,'zhangsan',101,'男','56165','zhangsi','123456')

将不符合规则的数据插入

8定义一个默认值,并绑定在员工表employee的userpwd属性上,要求userpwd属性的默认取“123456”

添加默认语句

ALTER TABLE employee

ALTER COLUMN userpwd  DEFAULT '123456';

insert into employee values(7,'lisi',1,'男','123','lisi',)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/770270.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go语言工程管理

本文内容为Go工程创建和配置开发及简单程序示例。 目录 工程管理 GOPATH 配置GOPATH GOROOT 新建系统变量 配置go工程 添加go path 简单的程序实现 程序代码 开始运行 运行结果 内容解析 总结 工程管理 GOPATH go语言的项目,需要有特定的目录结构进行…

ArmPiPro-环境变量

V0.0 2024-07-04 V0.1 加入开发环境和PI4关于ROS的环境变量的对比 1.我们可以用env | grep ROS来查看Pi4中的ROS环境变量 如下图所示,不理解的,抛给AI快速了解一下。 2.ArmPiPro安装的ROS是ROS1-melodic 3.在开发时,需要在笔记本电脑上开一…

visual studio远程调试

场景一(被远程调试的电脑) 确定系统位数 我这里是x64的 找到msvsmon.exe msvsmon.exe目录位置解释: “F:\App\VisualStudio\an\Common7\IDE\”是visual studio所在位置、 “Remote Debugger\”是固定位置、 “x64”是系统位数。 拼起来就是…

uni-app上传失败超出文件限制解决方法-分包处理-预加载

分包背景 当你的上传出现一下错误: Error: 系统错误,错误码:80051,source size 2089KB exceed max limit 2MB [20240703 10:53:06][wxbf93dfb6cb3eb8af] [1.06.2405010][win32-x64] 说明你主包太大需要处理了,一下两种方法可以…

【LeetCode:841. 钥匙和房间 + DFS】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

嵌入式Linux系统编程 — 6.4 信号集

目录​​​​​​​ 1 信号集概念 2 sigemptyset、sigfillset初始化信号集 3 sigaddset、sigdelset向信号集中添加/删除信号 4 sigismember函数测试信号是否在信号集中 1 信号集概念 在Linux系统中,信号集(signal set)用于表示一组信号…

001:开源交易系统开发实战开篇

本专栏采用融入【主力思维】的方法学,包含数据抓取、特征模型开发、历史验证回归测试、每日动态风险评估管理等技术,较大的增强股票投资胜率,让IT开发者拥有一套实用的属于自己思路的专用交易软件。 先简要介绍下系统运行的成果和项目架构&a…

java版本ERP管理系统源码 Spring Cloud ERP_ERP系统_erp软件_ERP管理系统

在当今数字化时代,企业对高效、稳定且易于扩展的管理系统的需求日益增长。为了满足这一需求,我们精心打造了一款基于Java技术的ERP(Enterprise Resource Planning)管理系统。该系统充分利用了Spring Cloud Alibaba、Spring Boot、…

基于Java中的SSM框架实现小型企业人事管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现小型企业人事管理系统演示 摘要 人才是企业发展的核心力量,所以人事管理是企业管理中一项重要的任务。传统的人事管理系统不仅效率慢而且极易出错,使管理者不能清楚的了解每一位员工的详细情况,对企业的发展形成了不…

ctfshow-web入门-命令执行(web119、web120、web121、web122)

目录 1、web119 2、web120 3、web121 4、web122 1、web119 采用 118 的 payload,回显 evil input,说明新增了过滤 单独测试一下,是 PATH 、BASH 被过滤了 在上一题的基础上,我们再介绍一个内置变量:$RANDOM 它会…

【日记】居然梦到了南通……(701 字)

正文 昨晚的睡眠质量很不好。做了一个很离谱的梦,噩梦。梦到我被一群南通给那什么了。当时直接给我吓醒了。我都不知道为什么会做这种诡异的梦。 昨晚那群孩子要去这个县里最繁华的广场跳舞。结果老师一声 “走!” 给我都听懵了。那地方可不近啊。我们最…

化身成羊:关于羊的词群探析

在西方的神话故事中,像主神宙斯,或者基督教义中的上帝,通常都有化身成羊的形象。 那为什么会这样呢? 一、什么是神话(myth)? 神话,正式的用词是 mythology: mythology n.神话;神话…

专访ATFX首席战略官Drew Niv:以科技创新引领企业高速发展

在金融科技创新的浪潮中,人才是推动企业高速发展的核心驱动力,优质服务是引领企业急速前行的灯塔。作为差价合约领域的知名品牌,ATFX高度重视人才引进工作,秉持“聚天下英才而用之”的理念,在全球范围内广揽科技精英&a…

java版本工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的…

二氯二氰苯醌(DDQ)市场空间受限 行业需要寻求新的发展方向及机遇

二氯二氰苯醌(DDQ)市场空间受限 行业需要寻求新的发展方向及机遇 二氯二氰苯醌(DDQ),学名2,3-二氯-5,6-二氰基苯醌,是一种亮黄色粉末状化合物,具有强氧化性。DDQ在化学合成中具有重要用途&#…

LInux安装nginx方法以及配置文件释义

Linux安装Nginx方法以及所遇见的坑 安装nginx注意细节1、安装所需要的依赖2、下载以及安装nginx3、所有命令执行完毕,启动nginx4、开通防火墙执行完以上所有命令,nginx安装以及启动步骤完成,满足基础访问,访问地址如下&#xff1a…

21.《C语言》——【位操作符】

🌻开场语 亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能&a…

视频怎么制作gif动态图片?GIF制作方法分享

视频怎么制作gif动态图片?视频制作GIF动态图片,不仅保留了视频的生动瞬间,还赋予了图像循环播放的魔力。这一技能不仅让创意表达更加丰富多彩,还极大地提升了视觉传播的效率和趣味性。在快节奏的数字时代,GIF动图以其小…

Unity 数据持久化【PlayerPrefs】

1、数据持久化 文章目录 1、数据持久化PlayerPrefs基本方法1、PlayerPrefs概念2、存储相关3、读取相关4、删除数据思考 信息的存储和读取 PlayerPrefs存储位置1、PlayerPrefs存储的数据在哪个位置2、PlayerPrefs 数据唯一性思考 排行榜功能 2、Playerprefs实践1、必备知识点-反…

文化创新与社交媒体:探索Facebook的足迹

在过去的十多年里,Facebook从一个简单的校园社交网络发展成为全球最大的社交媒体平台之一。它不仅改变了人们的沟通方式,更在许多方面推动了文化的创新和变革。本文将深入探索Facebook如何通过其平台的演进和功能创新,成为文化创新的重要推动…