0%

SQLServer数据库操作学习

这篇博客就来记录自己数据库的实验吧,在博客里面水一下。充实一下(^ ▽ ^)

实验01 数据库操作

一、 实验目的

​ 学习安装和使用 SQL Server,通过SQL Server Management Studio对象资源管理器操作数据库,并学会使用交互方式和命令方式完成数据库的创建、分离、附加、删除等操作。

二、 实验要求

(1) 独立完成SQL Server安装

(2) 使用交互式方法创建数据库

(3) 使用Transact-SQL创建数据库

(4) 使用交互式方法分离数据库与附加数据库。

(5) 使用系统存储过程分离数据库与附加数据库。

(6) 使用交互式方法删除数据库。

(7) 使用系统存储过程删除数据库。

三、 实验内容

1.安装与配置SQL Server

​ 有条件的同学在自己的电脑上安装并配置SQL Server,版本不限。

2.打开SQL Server Management Studio,连接到数据库引擎服务器。

​ 注意选择服务器名称及安装实例,初次连接建议选择Windows身份验证方式。

img

图1-1 连接到服务器

3.数据库的创建

(1)使用交互式方法创建数据库,

数据库的名称为:商品销售管理,逻辑文件名为:商品销售管理,物理文件名为:商品销售管理_DAT.MDF,存储在“D:\MyTestDB”文件夹下修改数据库参数:把数据库文件增长参数设置为4MB,文件最大大小参数设置为100MB。

img

图1.2 通过交互式创建数据库

(2)使用Transact-SQL指定参数创建数据库,

其数据库名称为:SecondBase,其中包括:

•逻辑文件名为SecondBase_dat,物理文件名为: SecondBase_dat.mdf,存储在“D:\MySecondBase”文件夹下。

•事务日志的逻辑文件名为SecondBase_log,物理文件名为SecondBase_log.ldf,存储在“D:\SecondBase”文件夹下。

img

图1.3 通过T-SQL命令创建数据库

4.分离附加数据库

(1)交互式分离数据库:商品销售管理。

img

右键点击要分离的对象,然后再移到 任务->分离。

img

然后点击确定,完成分离。

在数据库刷新就看不见zh-商品销售管理

图1.4 通过交互式分离数据库

(2)使用系统存储过程分离数据库:SecondBase。

网上学习的代码,运用函数进行分离。

1
分离代码:EXEC sp_detach_db zh_SecondBase,true

选中后,右键选择运行。如下图所示。

img

相同的,数据库刷新后,数据库被删除了。

图1.5 通过T-SQL命令分离数据库

(3)交互式附加数据库:SecondBase。

img

于是在里面找回被删除的数据库。

img

因为将日志和数据库文件放在两个不同的文件夹里,所以在下方将数据库的文件夹修改一下。

图1.6 通过交互式附加数据库

(4)使用系统存储过程附加数据库:商品销售管理。

img

img

刷新后,就出来了。

img

图1.7 使用系统存储过程附加数据库

5.删除数据库

(1)交互式删除数据库:商品销售管理。

img

图1.8 通过交互式删除数据库

(2)使用T-SQL删除数据库:SecondBase。

网上查看删除的代码,然后进行删除。

img

图1.9 通过T-SQL命令删除数据库

四、 实验总结

1.初次安装使用SQL Server,你碰到过哪些问题,如何解决?

​ 安装时由于点击多安装了一个部分的功能,导致安装时废了挺久都未安装成功。最后,在总结经验,查阅各种安装教程后,成功将数据库系统安装。

2.结合实验过程,谈谈交互式和命令方式操作数据库的区别。

​ 交互式可以较为简便的实现少数的文件操作,并且较为快捷。如果有多个文件,使用命令操作,会显得较为简单。


实验02 数据表操作

一、 实验目的

​ 要求学生使用 交互式和T-SQL语句定义数据表,包括建立、修改、删除数据表等。

二、 实验要求

(1) 掌握数据表的基本知识;

(2) 使用交互式和T-SQL语句创建数据表;

(3) 使用交互式和T-SQL语句修改数据表结构;

(4) 使用交互式和T-SQL语句删除数据表。

三、 实验内容

注:以下实验操作在“实验01”的基础上进行。

1.创建表

表2-1 客户表

字段名 数据类型 长度 关键字 空否 描述
客户编号 char 6 客户编号
姓名 varchar 30 客户姓名
性别 nvarchar 1 性别
年龄 tinyint 年龄
电话 varchar 12 电话
地址 nvarchar 50 地址

表2-2 卖家表

字段名 数据类型 长度 关键字 空否 描述
卖家编号 char 5
店名 nvarchar 20
负责人 nvarchar 20
客服电话 varchar 12

表2-3 商品表

字段名 数据类型 长度 关键字 空否 描述
商品编号 char 8
卖家编号 char 5
名称 nvarchar 20
单价 float

表2-4 购买记录表

字段名 数据类型 长度 关键字 空否 描述
序列号 char 11
订单编号 char 10
客户编号 char 6
商品编号 char 8
订单日期 datetime
数量 int
折扣价 float
成交日期 datetime

(1) 使用交互式方式创建表2-1,表2-2

img

图2-1 交互式创建客户表

img

图2-2 交互式创建买家表(这个地方疑似错误,所以所截图的内容显示为卖家表截图

(2) 使用T-SQL语句创建表2-3,表2-4

img

选中要运行的代码块,右键运行后,再右键刷新数据库,刷新后查看所建立的表格

img

图2-3 T-SQL语句创建商品表

img选中要运行的代码块,右键运行后,再右键刷新数据库,刷新后查看所建立的表格img

图2-4 T-SQL语句创建购买记录表

2.修改表

2.1使用交互式方法修改表的结构

(1)向已有“客户”表中追加一列

追加列的定义如下:

1
2
3
4
5
6
7
列名:籍贯

数据类型:nvarchar

长度:20

允许空否:NOT NULL

img

img

发现它不让我们保存,所以呢。找问题,好吧,好像没什么问题。问老师。

解决方案如下图所示:

img

img

将那个对钩取消勾选就好了。

图2-5 交互式追加“籍贯”列

(2)修改客户数据表中籍贯列的定义

修改列的定义如下:

1
2
3
4
5
6
7
列名:居住地

数据类型:nvarchar

长度:16

允许空否: NULL

img

图2-6 交互式修改“籍贯”列

(3)删除客户数据表中的居住地列

img

选中左边的小箭头使得这列被选中,再选中状态下按Delete删除即可。如图所示

图2-7 交互式删除“居住”列

2.2使用T-SQL语句修改表的结构,定义如上。

(1)向客户数据表中追加籍贯列

直接将网上学会的代码试试,选中语句,右键运行。

img

结果有点问题啊。所以怀疑是没有将原来的那个表给说明。所以就将表添加在前面,再一起执行。

img

比较尴尬的发现是我的表名写错了,应该是客户表。

运行成功。

img

不过在这期间反复刷新了几次才出现。可能是电脑执行的太慢的缘故吧。

图2-8 T-SQL语句追加“籍贯”列

(2)修改客户数据表中籍贯列为居住地列
1
2
3
运行命令:

exec sp_rename '客户表.籍贯' , '居住地';

img

图2-9 T-SQL语句修改“籍贯”列

(3)删除客户数据表中的居住地列

输入命令: alter table 客户表 drop column 居住地 ;

​ 右键运行,然后等待一会儿就刷新一下就已经被删除了。

img

图2-10 T-SQL语句删除“居住”列

3.删除数据表

(1)使用交互式方法删除“客户”数据表

img

运行结果如图:

img

图2-11 交互式删除数据表

(2)使用T-SQL语句删除“卖家”数据表

img

刷新一下,表就消失了。如图所示。

img

图2-12 T-SQL语句删除数据表

建议:把表2-1,2-2,2-3,2-4都用T-SQL语句实现并把实现的代码进行保存,方便后续的实验内容中使用。

四、 实验总结

1.对比分析删除表、字段的T-SQL语句,如何防止这两种删除命令的误操作?

​ 在执行前反复检验是否一致。

2.本实验中你采用过哪些数据类型?如何确定字段宽度?

​ 使用了float,int等数据类型,通过在括号界限字段宽度。

3. char、varchar、nchar、nvarchar,这四种类型都是字符型,它们有何区别?

​ 区别:var前缀的,表示是实际存储空间是变长的,varchar,nvarchar 所谓定长就是长度固定的。n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar 字符中英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

-------- 春花秋月 夏荷冬雪 --------