【SQL Server】华中农业大学空间数据库实验报告 实验一 数据库
实验目的
- 熟悉了解掌握SQL Server软件的基本操作与使用方法,认识界面,了解其两个基本操作系统文件,并能熟练区分与应用交互式与T-SQL式两种方法在SQL Server中如何进行操作;
- 学习有关数据库的基本操作,包括:创建、分离、文件备份、附加、删除数据库等等的方法,并掌握查看调整数据库相关参数与属性的方法,作为一切实验的基础与开始,实验要求重点掌握如何根据特定的要求创建数据库,并在后续过程中得以修改其基本属性;
- 通过实验课操作,进一步深入理解T-SQL方法建立数据库的编写代码的原理,主文件、文件组、日志间的关系,并可以在后续学习过程中自行编写代码创建数据库。
实验内容
- 创建数据库:交互式创建数据库、T-SQL创建数据库;
- 分离数据库:交互式分离数据库、利用系统存储过程分离数据库;
- 数据库文件备份:分离数据库、停止服务复制其物理文件;
- 附加数据库:交互式附加数据库、利用系统存储过程附加数据库;
- 删除数据库:交互式删除数据库、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.交互式的优点与弊端:
- 优点:交互式方法总的来说是为了简便操作提出的方法,在具体实验中我们可以很清楚的感受到,无论是分离、修改还是删除数据库,比起还需要再命令行中编写代码,交互式方法只需要找到对应的选项与按钮就可以很迅速的完成相关的操作;
- 弊端:对于初学者来说,交互式方法就并没有想象中的那么简便,因为命令行式方法会直截了当的告诉我们报错的原因与位置,方便初学者进行错误的排查,而交互式方法就很难做到这一点;除此之外,因为每一次操作得到的结果都会被保存在文件夹中,交互式方法的误操作会导致我们的文件夹中出现大量的重复数据,而命令行式的方法会提示我们数据库中已存在重复的对象。

3.对数据库结构的深入认识:
(1)SQL Server 数据库中主要分为三种类型的数据文件:
主要数据文件(扩展名.mdf):包含数据库的启动信息,用户数据和对象可存储在此文件中,也可以存储在次要数据文件中,每个数据库仅有一个主要数据文件;
次要数据文件(扩展名.ndf):次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上;
事务日志(扩展名.ldf):事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。
(2)数据库的数据文件的关系:一个数据库只能有一个主要数据文件与一个事务日志,可以有多个次要数据文件,SQL Server的每个数据库都是以这两个文件存放的,一个后缀名为mdf,是数据文件,另一个后缀名为ldf,为日志文件。因此只需要定期复制这两个文件,就可以达到备份的效果。
(3)文件组的相关定义与功能:文件组是数据库各类文件的组合,其同样分为主要文件组与次要文件组,主要文件组只能有一个,包含主数据文件和未放入其他文件组的任何辅助文件。如果在数据库中创建对象时没有指定对象所属的文件组,对象将被分配给默认文件组(即PRIMARY 文件组),我们必须使用 ALTER DATABASE 语句进行文件组的更改。
相关文章:
【SQL Server】华中农业大学空间数据库实验报告 实验一 数据库
实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法,认识界面,了解其两个基本操作系统文件,并能熟练区分与应用交互式与T-SQL式两种方法在SQL Server中如何进行操作;学习有关数据库的基本操作,包括:…...
操作系统页面置换算法Java实现(LFU,OPT,LRU,LFU,CLOCK)
FIFO先进先出算法 java import java.util.LinkedList; import java.util.Queue; public class Main { //先进先出的思想 是 用一个队列去模拟数据 如果当前不存在就是发生缺页中断了 就需要添加 如果已经满了 将队头的元素出队 即可 //先进先出 就是一个数组 frameCount publi…...
Request和Response
前言 这一节主要讲的是Request和Response还有一些实例 1. 介绍 就是这两个参数 WebServlet("/demo7") public class ServletDemo7 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletExcepti…...
【青牛科技】GC8549替代LV8549/ONSEMI在摇头机、舞台灯、打印机和白色家电等产品上的应用分析
引言 在现代电子产品中,控制芯片的性能直接影响到设备的功能和用户体验。摇头机、舞台灯、打印机和白色家电等领域对控制精度、功耗和成本等方面的要求日益提高。LV8549/ONSEMI等国际品牌的芯片曾是这些产品的主要选择,但随着国内半导体技术的进步&…...
(十二)JavaWeb后端开发——MySQL数据库
目录 1.数据库概述 2.MyQSL 3.数据库设计 DDL 4.MySQL常见数据类型 5.DML 1.数据库概述 数据库:DataBase(DB),是存储和管理数据的仓库 数据库管理系统:DataBase ManagementSystem(DBMS),操纵和管理数据库的大型软件 SQL&a…...
pnpm管理多工作区依赖
pnpm是一个支持多包仓库的一个包管理工具,那么怎么可以在项目根目录下执行pnpm install的时候,也能同步让所有的工作区都能够通安装依赖呢? 方式一,在执行pnpm install指令的时候,添加recursive参数: pnpm install --recursive 方式二,在项目的根目录下通过pnpm的配置文件p…...
如何在本地Linux服务器搭建WordPress网站结合内网穿透随时随地可访问
文章目录 前言1. 安装WordPress2. 创建WordPress数据库3. 安装相对URL插件4. 安装内网穿透发布网站4.1 命令行方式:4.2. 配置wordpress公网地址 5. 配置WordPress固定公网地址 前言 本文主要介绍如何在Linux Ubuntu系统上使用WordPress搭建一个本地网站,…...
二、应用层,《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》
文章目录 零、前言一、应用层协议原理1.1 网络应用的体系结构1.1.1 客户-服务器(C/S)体系结构1.1.2 对等体(P2P)体系结构1.1.3 C/S 和 P2P体系结构的混合体 1.2 进程通信1.2.1 问题1:对进程进行编址(addressing)&#…...
面粉直供系统|基于java和小程序的食品面粉直供系统设计与实现(源码+数据库+文档)
面粉直供系统 目录 基于java和小程序的食品面粉直供系统设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&#x…...
十四:java web(6)-- Spring Spring MVC
目录 Spring MVC 1.1 Spring MVC 概述 1.1.1 什么是 MVC 模式 1.1.2 Spring MVC 工作原理 1.2 Spring MVC 核心组件 1.2.1 DispatcherServlet 1.2.2 控制器(Controller) 1.2.3 请求映射(RequestMapping) 1.2.4 视图解析器…...
Java代码实现策略模式处理支付付款业务
1.需求:因为付款功能集成的第三方支付SDK越来越来多不好维护,改用策略模式实现,来代替代码中多余的if else 判断。 2.什么是策略模式? 策略模式(Strategy Pattern)是一种行为型设计模式,它允许在运行时选择算法的行为。该模式将不同的算法封装成独立的策略类,并使这些…...
unity3d————四元数概念
一、定义与表示 四元数是由一个实数部分和三个虚数部分组成,通常表示为q w xi yj zk,其中w是实数,x、y、z是实数系数,i、j、k是虚数单位,满足以下关系: i j k -1ij k,ji -kjk i&…...
spring相关的面试题
Spring 框架是 Java 开发中最常用的框架之一,因此在面试中经常会被问到与 Spring 相关的问题。以下是一些常见的 Spring 面试题及其答案。 基础概念 什么是 Spring 框架? Spring 框架是一个开源的 Java 平台,用于构建企业级应用程序。它提供…...
STM32外设之SPI的介绍
### STM32外设之SPI的介绍 SPI(Serial Peripheral Interface)是一种高速的,全双工,同步的通信总线,主要用于EEPROM、FLASH、实时时钟、AD转换器等外设的通信。SPI通信只需要四根线,节约了芯片的管脚&#x…...
二十三、Mysql8.0高可用集群架构实战
文章目录 一、MySQL InnoDB Cluster1、基本概述2、集群架构3、搭建一主两从InnoDB集群3.1、 安装3个数据库实例3.2、安装mysqlrouter和安装mysqlshell3.2.1、安装mysql-router3.2.2、安装mysql-shell 3.3、InnoDB Cluster 初始化3.3.1、参数及权限配置预需求检测3.3.2、初始化I…...
docker file 精简规则
在编写 Dockerfile 时,精简规则不仅有助于减小镜像大小,还能提高构建速度和可维护性。以下是一些常见的精简 Dockerfile 规则: 1. 尽量合并 RUN 指令 每个 RUN 指令会产生一个新的镜像层,因此多个命令可以合并为一个 RUN 指令&a…...
前端加密方式详解与选择指南
在当今数字化时代,前端数据安全的重要性日益凸显。本文将深入探讨前端加密的多种方式,为你提供选择适合项目加密方式的实用策略,并分享一些实际案例及相应代码。 一、前端加密方式汇总 (一)HTTPS 加密 HTTPS 是在 H…...
【React】条件渲染——逻辑与运算符
条件渲染——逻辑与&&运算符 你会遇到的另一个常见的快捷表达式是 JavaScript 逻辑与(&&)运算符。在 React 组件里,通常用在当条件成立时,你想渲染一些 JSX,或者不做任何渲染。 function Item({ nam…...
MATLAB中eig函数用法
目录 语法 说明 示例 矩阵特征值 矩阵的特征值和特征向量 排序的特征值和特征向量 左特征向量 不可对角化(亏损)矩阵的特征值 广义特征值 病态矩阵使用 QZ 算法得出广义特征值 一个矩阵为奇异矩阵的广义特征值 eig函数的功能是求取矩阵特征值…...
Chrome(谷歌浏览器中文版)下载安装(Windows 11)
目录 Chrome_10_30工具下载安装 Chrome_10_30 工具 系统:Windows 11 下载 官网:https://chrome.google-zh.com/,点击立即下载 下载完成(已经下过一遍所以点了取消) 安装 解压,打开安装包 点击下一步…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
