【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.xdnf.cn/news/6415.html

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

相关文章

大腾智能3D一览通携手飞书,实现高效设计协同

设计生产作为制造业的核心环节,其效率与协同性直接关系到企业的市场竞争力和响应速度。 在设计部门内部,虽然可以直接发送3D格式的文件进行沟通和评审,但当涉及到跨部门甚至是跨企业的协作时,情况就变得复杂。通常需要大量的多角…

Java项目实战II基于Spring Boot的药店管理系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着医疗行业的快速发展和人们对健康需…

qt QHeaderView详解

1、概述 QHeaderView 是 Qt 框架中的一个类,它通常作为 QTableView、QTreeView 等视图类的一部分,用于显示和管理列的标题(对于水平头)或行的标题(对于垂直头)。QHeaderView 提供了对这些标题的排序、筛选…

【Android】使用productFlavors构建多个变体

项目需求 在一个设备上安装两个一样的程序app 需求解决 我们知道每一个app都有一个包名的,如果一个app在Android设备上安装之后,再安装这个app的话会进行覆盖安装,因为他们两个的包名是一样的,默认是一个app。 但是我们现在需…

AI笔筒操作说明及应用场景

AI笔筒由来: 在快节奏的现代办公环境中,我们一直在寻找既能提升效率、增添便利,又能融入企业文化、展现个人品味的桌面伙伴。为此,我们特推出专为追求卓越、注重细节的您设计的AI笔筒礼品版,它集高科技与实用性于一身…

【笔面试常见题:三门问题】用条件概率、全概率和贝叶斯推导

1. 问题介绍 三门问题,又叫蒙提霍尔问题(Monty Hall problem),以下是蒙提霍尔问题的一个著名的叙述,来自Craig F. Whitaker于1990年寄给《展示杂志》(Parade Magazine)玛丽莲沃斯莎凡特&#x…

Elasticsearch中时间字段格式用法详解

Elasticsearch中时间字段格式用法详解 攻城狮Jozz关注IP属地: 北京 2024.03.18 16:27:51字数 758阅读 2,571 Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。它提供了全文搜索、结构化搜索以及分析等功能,广泛…

sql数据库-DQL-基本查询

目录 举例表emp 查询多个字段 查询整张表所有数据 给字段名起别名(更方便阅读) 去除重复的数据 举例表emp 查询多个字段 SELECT 字段1,字段2,字段3...FROM 表名; 举例查询emp表中的name,workno,age字段返回 查询整张表所有数据 …

JqGird 动态生成列使用

使用场景: 在工作用需要自定义动态生成列,通过选择下拉框,加载列,通过查询加载列对应的数据信息 当选择文件源任务显示三列 当选择数据源任务显示两列 处理方式: 1. 首先在刚进入界面时初始化控件 $("#pageGri…

Rust项目结构

文章目录 一、module模块1.二进制文件的cargo项目2.库的cargo项目3.文件内的module 二、模块化项目结构1.关于module2.各个模块之间互相引用 三、推荐项目结构1.实例 参考 一、module模块 crate规则: 规则一:一个包中必须至少包含一个crate规则二&#…

电能管理系统(源码+文档+部署+讲解)

本文将深入解析“电能管理系统”的项目,探究其架构、功能以及技术栈,并分享获取完整源码的途径。 系统概述 “工厂电能管理系统” 是一款集设备管理、维修管理、能耗监测、节能分析、储能管理、充电桩管理、冷源站管理、报警管理、点检管理等功能于一体…

网上纪念馆(源码+文档+部署+讲解)

最近我在挖掘一些优秀的开源项目时,无意间发现了一个相当给力的系统——网上纪念馆系统。这个系统不仅功能完善,满足了线上祭祀和纪念的需求,而且代码结构清晰,易于二次开发。作为一名技术爱好者,我觉得有必要把这个好…

华为HarmonyOS打造开放、合规的广告生态 - 贴片广告

场景介绍 贴片广告是一种在视频播放前、视频播放中或视频播放结束后插入的视频或图片广告。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告,通过AdRequestParams、AdOptions…

责任链模式 Chain of Responsibility

1 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 2 结构 Handler 定义一个处理请求的接口;(可选)实现后继链。 ConcreteHandler …

【Linux】- 权限(2)

接上一篇文章,继续介绍linux权限的相关知识。https://blog.csdn.net/hffh123/article/details/143432940?spm1001.2014.3001.5501j 目录 一、chown:修改文件的拥有者 二、chgrp:修改文件所属组 三、关于other的介绍 四、文件类型 1、分类…

RTX5/FreeRTOS全家桶源码工程综合实战模板集成CANopen组件(2024-10-30)

【前言】 之前的视频教程分享了两期CANopen的专题,配套的例子都是基于裸机的,为了方便大家在OS下使用,本期视频带OS下的支持。 CANopen协议栈专题,实战方式系统了解NMT,PDO,SDO,时间戳&#x…

vue中实现列表无缝动态滚动

要想实现列表的动态无缝滚动,这里推荐两款组件,vue-seamless-scroll和vue3-seamless-scroll,组件的用法也非常简单,以下是使用方式。 vue2 vue2版本使用vue-seamless-scroll vue-seamless-scroll文档https://chenxuan0000.gith…

BeanDefinition体系架构(待...)

AbstractBeanDefinition 仅仅只有三个直接的子类,分别是:RootBeanDefinition、ChildBeanDefinition、GenericBeanDefinition 注:在 Spring2.5 之前,仅仅只有 RootBeanDefinition、ChildBeanDefinition 两个子类, 我们…

002-Kotlin界面开发之Kotlin旋风之旅

Kotlin旋风之旅 Compose Desktop中哪些Kotlin知识是必须的? 在学习Compose Desktop中,以下Kotlin知识是必须的: 基础语法:包括变量声明、数据类型、条件语句、循环等。面向对象编程:类与对象、继承、接口、抽象类等。…

基于SpringBoot的教务系统

本系统集成了权限管理与用户管理两大核心功能,允许灵活添加用户角色及其对应权限。 技术选型:SpringBootVueShiromybatis 当前系统预设了四种用户类型,具体如下: 管理员:拥有系统的全部权限,涵盖基础管理…