当前位置: 首页 > news >正文

SQL Server 数据库实验报告

​​​​​​​

1.1 实验题目:索引和数据完整性的使用

1.2 实验目的:

(1)掌握SQL Server的资源管理器界面应用;

(2)掌握索引的使用;

(3)掌握数据完整性的使用。

1.3 实验准备

(1)了解SQL Server的索引基本语法;

(2)了解SQL Server的数据完整性。

1.4 实验内容

1.4.1 建立索引

(1)使用CREATE INDEX语句创建索引

①对数据库中的Employees表中的DepartmentID建立索引。

USE Hao  
GO  
CREATE INDEX depart_ind  
ON Employees(DepartmentID)  
GO  

②在Employees表的Name列和Address列上建立复合索引。

CREATE INDEX Ad_ind  
ON Employees(Name, Address) 

③对Departments表上的DepartmentName列建立唯一非聚集索引。

CREATE UNIQUE INDEX Dep_ind   
ON Departments(DepartmentName)  

1.4.2 重建索引

重建表Employees中的所有索引。

USE Hao  
GO  
ALTER INDEX ALL  
ON Employees REBUILD 

1.4.3 删除索引

使用DROP INDEX语句删除表Employees表上的多个索引。

DROP INDEX depart_ind ON Employees  

1.4.4 完整性

(1)创建一个表Employees5,只含EmployeeID、Name、Sex和Education列。将Name设为主键,作为列Name的约束。对EmployeeID列进行UNIQUE约束,并作为表的约束。

CREATE TABLE Employees5  
(  
    EmployeesID       char(6) NOT NULL,  
    Name              char(10) NOT NULL PRIMARY KEY,  
    Sex tinyint,  
    Education         char(4),  
    CONSTRAINT UK_id UNIQUE(EmployeesID)  
)  

(2)删除上例中创建的UNIQUE约束。

ALTER TABLE Employees5  
DROP CONSTRAINT UK_id  
GO 

(3)创建新表student,只考虑“号码”“性别”两列,性别只能包含男或女。

CREATE TABLE student_1  
(  
    号码        char(6)      NOT NULL,  
    性别        char(2)      NOT NULL  
    CHECK(性别 IN('男','女'))   
)  

(4)创建新表Salary2,结构与Salary相同,但Salary2表不允许OutCone列大雨Income列。

CREATE TABLE Salary2  
(  
    EmployeeID char(6) NOT NULL,  
    Income float NOT NULL,  
    OutCome float NOT NULL,  
    CHECK(Income>=OutCome)  
)

(5)对数据库中的Employees表进行修改,为其增加“DepartmentID”字段的CHECK约束。

USE Hao  
GO  
ALTER TABLE Employees  
ADD CONSTRAINT depart CHECK(DepartmentID>=1 AND DepartmentID<=5)  

(6)创建一个规则对象,用以限制输入到该规则所绑定列中的值只能是该规则中列出的值。

CREATE RULE list_rule_1  
AS @list IN('财务部','研发部','人力资源部','销售部')  
GO  
EXEC sp_bindrule'list_rule_1','Departments.DepartmentName'  
GO  

(7)创建一个表Salary3,要求所有Salary3表上EmployeeID列的值都要出现在Salary表中,利用参照完整性约束实现,要求当删除或修改Salary表上的EmployeeID列时,Salary3表中的EmployeeID值也会随之变化。

CREATE TABLE Salary3  
(  
    EmployeeID char(6) NOT NULL PRIMARY KEY,  
    InCome float NOT NULL,  
    OutCome float(8) NOT NULL,  
    FOREIGN KEY(EmployeeID)  
    REFERENCES Salary(EmployeeID)  
    ON UPDATE CASCADE  
    ON DELETE CASCADE  
)  

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

相关文章:

  • CAD插件实现:所有文字显示到列表、缩放、编辑——CAD-c#二次开发
  • 虚拟机第十三章-垃圾回收
  • 大咖访谈:Ftrans飞驰云联王泽瑞:安全即效率:数据交换新范式
  • 嵌入式Linux驱动开发基础知识(三)
  • Vue的学习总结-day01
  • 3.字节输出流FileOutputStream写出数据的三种方式
  • (C语言)单链表(1.0)(单链表教程)(数据结构,指针)
  • Python爬虫教程007:scrapy结合实际案例的简单使用
  • 深入讲解:智能合约中的读写方法
  • NumPy性能调优实战:从调试到性能分析的完整指南
  • Linux进阶——shell脚本语言
  • Bash详解
  • 轻量化大模型微调工具XTuner指令微调实战(下篇)
  • 如何创建一个自行设计的nginx的Docker Image
  • 后端开发常见的面试问题
  • Ansible 实战:Roles,运维的 “魔法函数”
  • 基于FLask的共享单车需求数据可视化分析系统
  • Spring-AOP事务
  • [ctfshow web入门] web4
  • PDF转换:在线将PDF转PPT并且可编辑文字图片,超快速转换软件,无需下载
  • 通过Postman和OAuth 2.0连接Dynamics 365 Online的详细步骤
  • 区块链日记5 - Solana入门 - 部署第一个Solana程序
  • 23种设计模式-行为型模式-命令
  • ubuntu22使用TrinityCore搭建魔兽世界服务器
  • 【计算机网络】Linux配置SNAT/DNAT策略
  • G-Retriever: 用于文本图理解与问答的检索增强生成
  • LeetCode算法题(Go语言实现)_31
  • 基于LSTM的文本分类2——文本数据处理
  • 数据流和重定向
  • 250405-VSCode编辑launch.json实现Debug调试Open-WebUI