实现SQL server数据库完整性

news2024/11/16 16:23:26

1.创建一个数据库名为“erp”

  1. 主数据文件:初始容量为5MB,最大容量为50MB,递增量为1MB,其余参数自设。
  2. 事务日志文件:初始容量为3MB,最大容量为20MB,递增量为10%,其余参数自设。

创建的数据库如下:

二、在erp数据库下创建两个表:

  • 创建“erp” 数据库

首先建立一个“新建查询”然后在“新建查询”的页面写入以下代码后点击执行:

CREATE DATABASE [erp]

 CONTAINMENT = NONE

 ON  PRIMARY 

( NAME = N'erp', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\erp.mdf' , SIZE = 8192KB , MAXSIZE = 51200KB , FILEGROWTH = 1024KB )

 LOG ON 

( NAME = N'erp_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\erp_log.ldf' , SIZE = 3072KB , MAXSIZE = 20480KB , FILEGROWTH = 10%)

 WITH CATALOG_COLLATION = DATABASE_DEFAULT, LEDGER = OFF

GO

代码执行完成后erp表建立完成,点击刷新即可看到

二、在“erp”数据库下创建表请注意完整性的设计

(1)创建“部门表”

首先建立一个“新建查询”然后在“新建查询”的页面写入以下代码后点击执行:

USE [erp]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[C](

[CNO] [nchar](10) NOT NULL,

[CNAME] [varchar](30) NOT NULL,

[CNumber] [int] NULL,

 CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED 

(

[CNO] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

  1. 创建“职工表”

首先建立一个“新建查询”然后在“新建查询”的页面写入以下代码后点击执行:

CREATE TABLE [dbo].[S](

[SNO] [char](6) NOT NULL,

[Sname] [varchar](30) NOT NULL,

[Sex] [char](2) NULL,

[Sphone] [int] NOT NULL,

[Sadress] [varchar](50) NULL,

[CNO] [char](10) NULL,

 CONSTRAINT [PK_S] PRIMARY KEY CLUSTERED 

(

[SNO] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],

 CONSTRAINT [IX_S] UNIQUE NONCLUSTERED 

(

[Sphone] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[S] ADD  CONSTRAINT [DF_S_Sex]  DEFAULT ('男') FOR [Sex]

GO

ALTER TABLE [dbo].[S]  WITH CHECK ADD  CONSTRAINT [CK_S] CHECK  (([Sex]='男' OR [Sex]='女'))

GO

ALTER TABLE [dbo].[S] CHECK CONSTRAINT [CK_S]

GO

执行后生成的页面属性:

三、请插入记录验证完整性。

1. 正确插入数据

(1)部门表(3条记录)

点击“新建查询”建立一新的页面输入一下代码对所需数据进行插入:

use erp

INSERT INTO A(CNO, Cname, Cnumber )

VALUES('S4', '文员', '50')

INSERT INTO A(CNO, Cname, Cnumber )

VALUES('S5', '董事', '12')

INSERT INTO A(CNO, Cname, Cnumber )

VALUES('S6', '金融操盘手','30')

代码输入后点击执行将数据插入到表A中去,然后用代码

use erp

select * from A

对表里数据进行查询结果如下:

  1. 职工表(3条记录)

点击“新建查询”建立一新的页面输入一下代码对所需数据进行插入:

use erp

INSERT INTO S(SNO, Sname, Sex,Sphone,Sadress,CNO )

VALUES('I1', '空心木偶', '男','13071603','广东茂名','S1')

INSERT INTO S(SNO, Sname, Sex,Sphone,Sadress,CNO )

VALUES('I2', '小红', '女','13071604','广东深圳','S2')

INSERT INTO S(SNO, Sname, Sex,Sphone,Sadress,CNO )

VALUES('I3', '小梓', '男','13071605','广东广州','S3')

代码输入后点击执行将数据插入到表A中去,然后用代码

use erp

select * from S

2. 完整性验证

(1)违反“部门表”的PRIMARY KEY约束

由前面可以知道“部门号”是表A的主键,可以使用INSERT语句插入在表A中添加与已有数据相同的部门号,最后使用SELECT查询所插入的数据,观察运行后的结果,如果插入显示“部门号”重复从而插入失败即可验证部门表的PRIMARY KEY(主键)约束,代码如下:

USE ERP

INSERT INTO A(CNO, Cname, Cnumber )

VALUES('S1', '经理', '8')

select * from A

运行结果如下:

(2)违反“部门表”的NOT NULL约束

由前面表的设计可知“部门号”和“部门名称”都是NOT NULL,所以可以使用INSERT语句在部门表A中添加数据,在“部门号”和“部门名称”插入的数据为空,最后使用SELECT查询所插入的数据,从而验证部门表的NOT NULL约束,代码如下:

USE ERP

INSERT INTO A(CNO, Cname, Cnumber )

VALUES('NULL', 'NULL', '8')

select * from A

运行的结果如下:

(3)违反“职工表”的PRIMARY KEY约束

由前面可以知道“职工号”是表S的主键,可以使用INSERT语句插入在表S中添加与已有数据相同的职工号,最后使用SELECT查询所插入的数据,观察运行后的结果,如果插入显示“职工号”重复从而插入失败即可验证职工表的PRIMARY KEY(主键)约束,代码如下:

USE ERP

INSERT INTO S(SNO, Sname, Sex,Sphone,Sadress,CNO )

VALUES('I1', '刘德华', '男','13071683','广东湛江','S9')

运行的结果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

temu的产品审核结果在哪里

拼多多作为中国最大的社交电商平台之一,拥有众多商家和卖家在其平台上销售商品。为了确保平台上的商品质量和合规性,拼多多对商家所提交的商品进行审核。如果您是在拼多多的Temu平台上销售商品,想要查询您的产品审核结果,可以按照…

维普论文查重率高【详细说明】

大家好,今天来聊聊维普论文查重率高,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 维普论文查重率高:原因分析与降重技巧 背景介绍 在学术领域,论文的重复率是衡量其…

计算机视觉之手势、面部、姿势捕捉以Python Mediapipe为工具

计算机视觉之手势、面部、姿势捕捉以 Python Mediapipe为工具 文章目录 1.Mediapipe库概述2.手势捕捉(hands)3.面部捕捉(face)4.姿势捕捉(pose) 1.Mediapipe库概述 Mediapipe是一个开源且强大的Python库,由Google开发和维护。它提供了丰富的工具和功能&#xff0c…

【开源】基于Vue和SpringBoot的车险自助理赔系统

项目编号: S 018 ,文末获取源码。 \color{red}{项目编号:S018,文末获取源码。} 项目编号:S018,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 车…

Vue脚手架 生命周期 组件化开发

Vue脚手架 & 生命周期 & 组件化开发 一、今日目标 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.综合案例-小黑记账清单 列表渲染添加/删除饼图渲染 3.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 4.综合案例-小兔…

Python与ArcGIS系列(十五)根据距离抓取字段

目录 0 简述1 实例需求2 arcpy开发脚本0 简述 在处理gis数据的时候,会遇到这种需求:将一个图层与另一个图层中相近的要素进行字段赋值。本篇将介绍如何利用arcpy及arcgis的工具箱实现这个功能。 1 实例需求 为了介绍这个功能的实现,我们需要有一个特定的功能需求。在这里选…

ssm在线选课系统微信小程序项目分享

学生小程序端的主要功能有: 1.用户注册和登陆系统 2.查看选课介绍信息 3.查看查看课程分类 4.查看课程详情,在线选课,提交选课信息 5.在线搜索课程信息 6.用户个人中心修改个人资料 7.用户查看自己的选课记录,可以取消选课 8.查看…

Redis如何保证与数据库的一致性

双写一致性 redis与数据库不一致的两种情况解决办法 redis与数据库不一致的两种情况 出现在高并发场景下,当有数据读和写的请求,就可能出现数据库与缓存不一致的情况 一、先操作删除缓存,再修改数据库数据的情况下 当缓存被线程一删除后&…

解决:During handling of the above exception, another exception occurred

解决:During handling of the above exception, another exception occurred 文章目录 解决:During handling of the above exception, another exception occurred背景报错问题报错翻译报错位置代码报错原因解决方法参考内容:今天的分享就到…

使用git push太慢怎么办

使用git push太慢怎么办 修改host文件: windows 的路径应该在 C:\Windows\System32\drivers\etc\hosts 在host文件的最后一行加上 151.101.72.249 github.global.ssl.fastly.nethost不允许修改就复制一份,修改好了再替换掉,可能会让你输入…

jupyter notebook基本使用

目录 安装运行修改工作目录增加代码提示插件安装 pip install jupyter notebook 运行 jupyter notebook 修改工作目录 查找配置文件jupyter notebook --generate-config 更改配置文件增加代码提示插件 下载nbextensionspip install jupyter_contrib_nbextensions -i https://py…

Python 日志指南

目录 日志指南 日志基础教程 什么时候使用日志 一个简单的例子 记录日志到文件 从多个模块记录日志 记录变量数据 更改显示消息的格式 在消息中显示日期/时间 后续步骤 进阶日志教程 记录流程 记录器 处理器 格式器 配置日志记录 如果没有提供配置会发生什么 …

贪吃的猴子 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香…

Mysql 索引概念回顾

一、什么是索引 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据…

数据接口测试工具 Postman 介绍!

此文介绍好用的数据接口测试工具 Postman,能帮助您方便、快速、统一地管理项目中使用以及测试的数据接口。 1. Postman 简介 Postman 一款非常流行的 API 调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如 Jmeter…

Javaweb之 IDEA集成Maven的详细解析

03. IDEA集成Maven 我们要想在IDEA中使用Maven进行项目构建,就需要在IDEA中集成Maven 3.1 配置Maven环境 3.1.1 当前工程设置 1、选择 IDEA中 File > Settings > Build,Execution,Deployment > Build Tools > Maven 2、设置IDEA使用本地安装的Maven…

Leetcode100 链表|2. 两数相加160. 相交链表 234. 回文链表

2. 两数相加 题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0…

P1035 [NOIP2002 普及组] 级数求和题解

题目 已知&#xff1a;.显然对于任意一个整数 k&#xff0c;当 n 足够大的时候,Sn​>k。 现给出一个整数k&#xff0c;要求计算出一个最小的n&#xff0c;使得Sn​>k。 输入输出样例 输入 1 输出 2 代码 #include<iostream> using namespace std; int mai…

Pinyin-pro的介绍、安装、使用

目录 拼音&#xff08;Pinyin-pro&#xff09;工具概述 拼音&#xff08;Pinyin-pro&#xff09;工具安装 拼音&#xff08;Pinyin-pro&#xff09;工具使用 拼音&#xff08;Pinyin-pro&#xff09;工具概述 "pinyin-pro" 是一个专业的 JavaScript 中文转拼音的库…

2024年网络安全行业前景和技术自学

很多人不知道网络安全发展前景好吗&#xff1f;学习网络安全能做什么&#xff1f;今天为大家解答下 先说结论&#xff0c;网络安全的前景必然是超级好的 作为一个有丰富Web安全攻防、渗透领域老工程师&#xff0c;之前也写了不少网络安全技术相关的文章&#xff0c;不少读者朋…