【SQL Server】华中农业大学空间数据库实验报告 实验一 数据库

实验目的

  1. 熟悉了解掌握SQL Server软件的基本操作与使用方法,认识界面,了解其两个基本操作系统文件,并能熟练区分与应用交互式与T-SQL式两种方法在SQL Server中如何进行操作;
  2. 学习有关数据库的基本操作,包括:创建、分离、文件备份、附加、删除数据库等等的方法,并掌握查看调整数据库相关参数与属性的方法,作为一切实验的基础与开始,实验要求重点掌握如何根据特定的要求创建数据库,并在后续过程中得以修改其基本属性;
  3. 通过实验课操作,进一步深入理解T-SQL方法建立数据库的编写代码的原理,主文件、文件组、日志间的关系,并可以在后续学习过程中自行编写代码创建数据库。

实验内容

  1. 创建数据库:交互式创建数据库、T-SQL创建数据库;
  2. 分离数据库:交互式分离数据库、利用系统存储过程分离数据库;
  3. 数据库文件备份:分离数据库、停止服务复制其物理文件;
  4. 附加数据库:交互式附加数据库、利用系统存储过程附加数据库;
  5. 删除数据库:交互式删除数据库、T-SQL删除数据库。

实验步骤

1.创建数据库

在首先第一步打开SQL SEVER软件时,我们需要首先选择服务器,若是在实验课机房电脑中显示的服务器为虚拟服务器,目录的数据库引擎处将不会有绿色图标,由此在新建查询前,我们需要首先确认服务器状况。

(1)交互式创建数据库

在SQL Sever软件中,交互式方法对于较为熟悉软件的使用者来说是一种较为简单实用的方法,但对于我们第一次接触SQL Server的新手来说这种方法同样有着等等的弊端,因此在本次实验中,我对交互式方法仅做简单的了解,重点掌握T-SQL方法。

1)右键数据库,点击新建数据库打开参数表,即可根据要求设置数据库名称、路径、初始大小等等参数;

2)如果在后续想修改数据库的相关属性,可以右键我们新创建的数据,点击属性,即可再次打开上述参数表。

(2)利用T-SQL创建数据库

1)在工具栏处点击【新建查询】,即可打开编写代码的界面;

2)根据SQL语言的相关规定,输入代码,尝试创建一个命名为FJQ,包含一个主文件一个文件组的数据库,代码如下,点击执行,可得“命令已成功完成”:

3)成功执行完成后,右键服务器的数据库,再点击刷新,即可发现我们创建的新的名为FJQ的数据库已经被成功添加至服务器中,至此可说明数据库创建成功。

2.分离数据库

(1)交互式分离数据库

1)右键想要分离的数据库,选择 任务—> 分离,即可达到分离数据库的效果。

(2)系统存储过程分离数据库

1)在工具栏处点击【新建查询】;

2)根据相关要求输入以下代码并执行,成功后刷新数据库,即可发现数据库已被分离了。

3.数据库文件备份

(1)分离数据库

根据上述实验的步骤首先分离数据库,即可在文件的存储路径的位置复制以下两个文件至其它处进行备份(主要为后缀为.idf与.mdf的文件):

 

(2)停止服务再复制其物理文件

但在利用以上方法分离数据库时,有时会提示我们数据库正在使用中,因此无法分离数据库,因此需要我们首先停止数据库服务,在程序中打开SQL Server的配置管理器;

在SQL Server服务中停止服务,即可复制转移数据库的物理文件。

4.附加数据库

附加数据库是基于分离数据库操作提出的用以将已有数据库添加至指定服务器上的操作,同样分为交互式与利用代码的两种方法:

(1)交互式附加数据库

右击数据库点击附加,在打开的参数框中选择添加我们想要附加的数据库,再次刷新即可显示数据库已被附加。

(2)利用系统存储过程附加数据库

新建查询,根据相关要求输入以下代码并执行,第一行为数据库名称,第二行为数据库.mdf文件的路径,成功后刷新数据库即可:

5.删除数据库

由于删除数据库的操作指令过于简单粗暴,一旦删除数据库后无法进行还原,且现阶段对删除数据库的应用较少,因此本次实验中仅简单了解此步骤的方法。

(1)交互式删除数据库

(2)T-SQL删除数据库

新建查询并输入以下代码,执行后刷新数据库即可完成删除操作:

课后习题

1.创建数据库mybase,要求:(1)数据文件存储的文件夹是:D:\mytestbase;(2)数据存放在两个文件组中:group1,group2:

2.修改数据库mybase属性,要求:(1)文件最大大小:100MB(2)文件增长比例:20%:

右击数据库选择属性—>文件,打开更改自动增长设置,即可选择修改数据库的属性。

 3.将数据库mybase复制到移动硬盘:

首先根据规定语句分离数据库,即可移动数据库的两个物理文件与文件组文件至移动硬盘处。

 4.删除数据库mybase:

右击数据库点击删除,即可完成删除数据库操作。

总结

1.实验中的常见错误:

1.无法分离数据库

数据库无法分离的根本原因是有用户进行连接操作,如果是交互式分离数据库的方法,分离时需要我们勾选【删除连接】;

如果是在命令行模式,我们可以利用kill语句直接中止进程,也可以采用保存关闭SQL Server软件,再次打开再执行kill语句的方法,同样可以达到分离数据库的目的。

2.交互式方法建立数据库出错

在主菜单界面选择【工具】—> 【选项】—> 【设计器】打开参数表,取消勾选阻止保存,交互式的建立才能成功。

3.附加数据库操作时的代码错误

提示错误为必须声明标量变量“@”,其根本原因是在附加数据库时,符号“@”后面不能存在空格,这也体现了SQL Server软件与python等其它编码软件的不同,空格是具有符号意义的。

2.交互式的优点与弊端

  1. 优点:交互式方法总的来说是为了简便操作提出的方法,在具体实验中我们可以很清楚的感受到,无论是分离、修改还是删除数据库,比起还需要再命令行中编写代码,交互式方法只需要找到对应的选项与按钮就可以很迅速的完成相关的操作
  2. 弊端:对于初学者来说,交互式方法就并没有想象中的那么简便,因为命令行式方法会直截了当的告诉我们报错的原因与位置,方便初学者进行错误的排查,而交互式方法就很难做到这一点;除此之外,因为每一次操作得到的结果都会被保存在文件夹中,交互式方法的误操作会导致我们的文件夹中出现大量的重复数据,而命令行式的方法会提示我们数据库中已存在重复的对象。

3.对数据库结构的深入认识:

(1)SQL Server 数据库中主要分为三种类型的数据文件:

主要数据文件(扩展名.mdf):包含数据库的启动信息,用户数据和对象可存储在此文件中,也可以存储在次要数据文件中,每个数据库仅有一个主要数据文件;

次要数据文件(扩展名.ndf):次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上;

事务日志(扩展名.ldf):事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。

(2)数据库的数据文件的关系:一个数据库只能有一个主要数据文件与一个事务日志,可以有多个次要数据文件,SQL Server的每个数据库都是以这两个文件存放的,一个后缀名为mdf,是数据文件,另一个后缀名为ldf,为日志文件。因此只需要定期复制这两个文件,就可以达到备份的效果。

(3)文件组的相关定义与功能:文件组是数据库各类文件的组合,其同样分为主要文件组与次要文件组,主要文件组只能有一个,包含主数据文件和未放入其他文件组的任何辅助文件。如果在数据库中创建对象时没有指定对象所属的文件组,对象将被分配给默认文件组(即PRIMARY 文件组),我们必须使用 ALTER DATABASE 语句进行文件组的更改。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【操作系统】每日 3 题(六)

✍个人博客:https://blog.csdn.net/Newin2020?typeblog 📣专栏地址:https://blog.csdn.net/newin2020/category_12820365.html 📚专栏简介:在这个专栏中,我将会分享操作系统面试中常见的面试题给大家~ ❤️…

研究了100个小绿书十万加之后,我们发现2024小绿书独家秘籍就是:在于“先抄后超,持续出摊,量大管饱”!

小绿书作为今年最大的红利,很多人已经吃到了螃蟹。看——: 今天我们总结了100个10万爆款,我们发现要在这个平台上脱颖而出,找到属于自己的方法尤为重要。在这里分享一个主题——小绿书的秘诀就是“先抄后超,持续出摊”…

Python | Leetcode Python题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; class Solution:def countArrangement(self, n: int) -> int:f [0] * (1 << n)f[0] 1for mask in range(1, 1 << n):num bin(mask).count("1")for i in range(n):if mask & (1 << i) and (num % (i …

服务器数据恢复—RAID5阵列中部分成员盘重组RAID5阵列后如何恢复原raid5阵列数据?

服务器数据恢复环境&#xff1a; 一台服务器挂接一台存储&#xff0c;该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障&#xff1a; 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性&#xff0c;阵列并没有出现问题。工作一段时间后&#xff0c;服务器出现故障&#xff…

每日OJ题_牛客_消减整数_贪心+数学_C++_Java

目录 牛客_消减整数_贪心数学 题目解析 C代码 Java代码 牛客_消减整数_贪心数学 消减整数 (nowcoder.com) 描述&#xff1a; 给出一个正整数H&#xff0c;从1开始减&#xff0c;第一次必须减1&#xff0c;每次减的数字都必须和上一次相同或者是上一次的两倍&…

iOS 18.2 可让欧盟用户删除App Store、Safari、信息、相机和照片应用

升级到 iOS 18.2 之后&#xff0c;欧盟的 iPhone 用户可以完全删除一些核心应用程序&#xff0c;包括 App Store、Safari、信息、相机和 Photos 。苹果在 8 月份表示&#xff0c;计划对其在欧盟的数字市场法案合规性进行更多修改&#xff0c;其中一项更新包括欧盟用户删除系统应…

Cisco Packet Tracer 8.0 路由器静态路由配置

文章目录 静态路由简介一、定义与特点二、配置与命令三、优点与缺点四、应用场景 一&#xff0c;搭建拓扑图二&#xff0c;配置pc IP地址三&#xff0c;pc0 ping pc1 timeout四&#xff0c;配置路由器Router0五&#xff0c;配置路由器Router1六&#xff0c;测试 静态路由简介 …

单片机原理及应用笔记:C51的数组与项目实践

作者简介 马博文&#xff0c;男&#xff0c;银川科技学院计算机与人工智能学院&#xff0c;2022级计算机科学与技术9班本科生&#xff0c;单片机原理及应用课程第9组。 指导老师&#xff1a;王兴泽 电子邮件&#xff1a;1834746988qq.com 本篇文章是参考《单片机原理及应用&…

Kubernetes实战——部署微服务项目(一)

目录 一、搭建Redis集群 1、安装redis 2、测试连接 二、搭建RocketMq 1、下载资源 2、安装 3、查看dashboard 三、搭建Elasticseach 1、es-service.yaml 2、es-statefulset.yaml 3、创建资源 四、搭建mongodb 1、mongodb.yaml 2、创建资源 五、搭建Mysql集群 1…

【React 轮子】文本溢出后显示展开/收起按钮

/** hooks* 用于文本展示时判断是否展示 展开/收起按钮 &#xff08;包含监听 文本变化/页面尺寸变换&#xff09;* param { string } text 需要展示的文本* param { number } maxLength 文本最大展示行数* param { number } lineHeight 文本行高 (单位 px) */ import React, …

【AD】2-1 元件符号的绘制创建实例-电阻容/CHIP类器件

1.新建工程后&#xff0c;双击原理图库&#xff0c;点击Panels后&#xff0c;选择SCH Library&#xff0c;双击元器件可在右侧进行更改名称 2.点击视图&#xff0c;栅格&#xff0c;设置捕捉栅格为100mil 3.点击放置管脚&#xff0c;可按空格键进行旋转&#xff0c;按TAB键可以…

javascript-Web APLs (三)

事件流 指的是事件完整执行过程中的流动路 说明&#xff1a;假设页面里有个div&#xff0c;当触发事件时&#xff0c;会经历两个阶段&#xff0c;分别是捕获阶段、冒泡阶段 简单来说&#xff1a;捕获阶段是 从父到子 冒泡阶段是从子到父 实际工作都是使用事件冒泡为主 事件…

恋爱脑学Rust之Box与RC的对比

在遥远的某个小镇&#xff0c;住着一对年轻的恋人&#xff1a;阿丽和小明。他们的爱情故事就像 Rust 中的 Rc 和 Box 智能指针那样&#xff0c;有着各自不同的「所有权」和「共享」的理解。 故事背景 阿丽和小明准备共同养一株非常珍贵的花&#xff08;我们称之为“心之花”&…

【uni-app】创建自定义模板

1. 步骤 打开自定义模板文件夹 在此文件夹下创建模板文件&#xff08;注意后缀名&#xff09; 重新点击“新建页面” 即可看到新建的模板 2. 注意事项 创建的模板必须文件类型对应&#xff08;vue模板就创建*.vue文件, uvue模板就创建*.uvue文件&#xff09;

推荐一款功能强大的数据库开发管理工具:SQLite Expert Pro

SQLite Expert Professional是一个功能强大的工具&#xff0c;旨在简化SQLite3数据库的开发。 它是SQLite的一个功能丰富的管理和开发工具&#xff0c;旨在满足所有用户从编写简单SQL查询到开发复杂数据库的需求。 图形界面支持所有SQLite功能。 它包括一个可视化查询构建器&a…

【制造业&仓库】流水线能源设备检测系统源码&数据集全套:改进yolo11-DCNV2-Dynamic

改进yolo11-CAA-HSFPN等200全套创新点大全&#xff1a;流水线能源设备检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.01 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图…

FreeRTOS学习9——补充 API函数详解(创建、删除任务函数 和 挂起、恢复任务函数,空闲任务函数)

API函数详解(创建任务函数 和 删除任务函数) 创建函数 xTaskCreate() 作用&#xff1a;创建任务 ​ 函数 xTaskCreate()在 task.c 文件中有定义&#xff0c;具体的代码如下所示&#xff1a; BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,const char * const pcName,…

Vue2.0 通过vue-pdf-signature@4.2.7和pdfjs-dist@2.5.207实现PDF预览

1.安装依赖 npm install pdfjs-dist2.5.207 --savenpm install vue-pdf-signature4.2.7 --save2.在.vue文件中 script 部分引入 <script> import * as PDFJS from pdfjs-dist PDFJS.GlobalWorkerOptions.workerSrc require(pdfjs-dist/build/pdf.worker.js);//解决pdf…

kafka-console-ui的简介及安装使用

kafka-console-ui的简介及安装使用 一、kafka-console-ui的简介二、安装kafka-console-ui2.1 源码安装2.2 docker安装 三、kafka-console-ui功能使用3.1、功能特性3.2、 功能介绍3.2.1 集群3.2.2 topic3.2.3 消费组3.2.4 Acl3.2.5 运维 一、kafka-console-ui的简介 kafka-cons…

MySQL(上)

一、SQL优化 1、如何定位及优化SQL语句的性能问题&#xff1f;创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因&#xff1f; 对于性能比较低的sql语句定位&#xff0c;最重要的也是最有效的方法其实还是看sql的执行计划&#xff0c;而对于mysql来说&a…