用SQL Server 2014实现数据完整性和数据库的安全性(数据库原理及应用实验)

本文主要是介绍用SQL Server 2014实现数据完整性和数据库的安全性(数据库原理及应用实验),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 约束概念及实施
  1. 用对象资源管理器完成如下操作,并输入数据验证规则有效性
  1. 为Course表的学分 (Credit)字段列设置默认值为4

打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表Course弹出快捷菜单点击“设计”,打开表设计器在“默认值或绑定”列输入值为4

 

验证:插入一条记录,给不输入Credit的值,刷新后值为4

使用SQL插入给不输入Credit的值

刷新后值为4

 

  1. 为SC表中设置主键为Sno,Cno
  2. 打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表SC弹出快捷菜单点击“设计”,打开表设计器安按住ctrl键同时选中Sno,Cno两个字段列,在指针所在位置点击右键弹出快捷菜单点击“设置主键”
  3. 设置表SC中的外键Sno,Cno分别参表Student、Course中的主键。

打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表SC弹出快捷菜单点击“设计”,打开表设计器在工具栏点击“关系”按钮设置外键参照关系。

如下图:

 

验证:在SC表中输入一个student表中没有的学号,在SC表中输入一个course中没有的课程的号,系统显示违反参照完整性规则拒绝执行。

使用SQL插入在SC表中输入一个student表中没有的学号,在SC表中输入一个course中没有的课程的号:

 

  1. 设置Student表中字段Sage在10-100之间

打开企业管理器SSMS,展开SQl server服务器,展开“选课系统”右击表Student弹出快捷菜单点击“设计”,打开表设计器在工具栏点击“管理check约束”按钮,打开“check约束”对话框设置约束条件拒绝执行。

 

 

验证:修改Student中某个记录的年龄,系统显示违反设置约束条件拒绝执行。

用T—SQL完成以下操作,并输入数据验证规则有效性

用IN关键字设置表Students中的Ssex字段列建立一个check约束其值只能取‘男’或‘女’

use 选课系统

    go

 CREATE TABLE Students

 ( sno int NOT NULL,

sname nvarchar (10),

ssex char(2) check (ssex in('男','女')),

birthday datetime NULL,

sdept nchar(10));

验证:向studensts表中插入一个学生信息,ssex的值为”好”, 系统显示违反设置约束条件拒绝执行。

 

用SQL设置表SCS中的外键Sno,Cno分别参表Student、Course中的主键,设置插入、删除违约处理并验证。

use "选课系统"

    go

CREATE TABLE SCS

( Sno int NOT NULL,

Cno char(3) NOT NULL,

Grade smallint NULL,

credit smallint NULL

PRIMARY KEY (Sno,Cno), 

FOREIGN KEY (Sno) REFERENCES Student(Sno),

FOREIGN KEY (Cno) REFERENCES Course(Cno))

验证:

在SCS表中输入一个student表中没有的学号,在SCS表中输入一个course中没有的课程的号,系统显示违反参照完整性规则拒绝执行。

 

删除student中某个选课学生记录, 系统显示违反参照完整性规则拒绝执行。

 

  1. 默认值的概念及验证
  2. 为‘选课系统’数据库定义一个名为Ssex_default默认值,值为‘女’。

use 选课系统

go

Create default dept_student  as

  1. 将该值绑定到Student表中的Ssex字段列,并输入数据验证规则有效性。

use 选课系统

go

exec sp_bindefault dept_student,student.Ssex

验证:

使用SQL向Student中输入没有ssex字段的信息,Ssex默认为女。

 

 

  1. 删除该绑定

Exec sp_unbindefault student.Ssex

规则的概念及验证

1)为‘选课系统’数据库定义一个名为Grade_rule的规则,值在10-100之间

Use 选课系统

Go

Create rule sage_Student as @Sage>=10 and @Sage<=100

2)将该值绑定到SC表中的Grade字段列,并输入数据验证规则有效性. 

Use 选课系统

Go

Exec sp_bindrule sage_Student,student.Sage

验证:

使用SQL向SC表中添加Grade>100的信息,系统显示违反参照完整性规则拒绝执行。

 

3)删除该绑定

Exec sp_unbindrule student.Sage

这篇关于用SQL Server 2014实现数据完整性和数据库的安全性(数据库原理及应用实验)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/311934

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控