1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SQL Server数据库表的基本操作(批量插入 删除 查询数据 删除表中重复数据方法)

SQL Server数据库表的基本操作(批量插入 删除 查询数据 删除表中重复数据方法)

时间:2024-06-09 18:10:31

相关推荐

SQL Server数据库表的基本操作(批量插入 删除 查询数据 删除表中重复数据方法)

实验名称:数据库表的基本操作与表内数据操作

实验目的:

掌握数据库表创建方法(交互式、T-SQL法)掌握修改数据库表结构的方法掌握删除数据库表的方法掌握交互式EXCEL文件录入数据至数据库表的方法掌握T-SQL语句向数据库表中插入数据的方法掌握修改与删除数据库表中数据的方法掌握选择性复制数据库表的方法

实验意义:

通过实验学习,对于SQL Server中数据库表的基本创建方法,通过交互式与T-SQL语句熟练数据库表的创建、设计、修改与删除。针对数据库的操作内容,通过反复练习数据库的数据录入、修改与删除等功能,熟练对表中数据的基本操作。导入数据、更新数据、删除数据与提取复制数据是数据库表中常用的操作内容。

实验内容:

创建数据库表与修改结构删除数据库表录入数据至数据库表修改与删除数据复制数据习题练习

实验步骤:

数据库表的创建与结构修改

在对象资源管理器内选择需要操作的数据库,右击表文件,选择新建表。

接下来设置表内结构,设计表的列名与列的数据类型,并设计其是否能为空值。

设置前需要先了解主要的字符类型与其存储空间如下。

基于nchar为双字节类型,更适合于亚洲字体的存放,因此将列名为中文字符的均采用nchar数据类型,括号内的数字即设置最大存放多少个中文字符。

注意:TNO与TN为教师名称和教师号,这两列数据不能为空值,可作为候选键。

接下来对设计完毕的数据库表进行保存操作,并设置名称。

最后可对设置完毕的数据库表进行查看。

在对象资源管理器内可以查看到列信息,各列的列名称与数据类型。

接下来再采用交互式方法创建学生表S如下

采用T-SQL语句创建课程表C,需要再对象资源管理器上方选择该语句执行的数据库区域为WJN。

刷新之后可以看到数据库WJN内存在三个所创建的表格

再采用同样的方法创建学生选课表SC表

T-SQL语句创建老师授课表TC表

接下来是对表的设计操作,通过右击表,选择设计,可以修改表的结构

接下来是对S表的NATIVE列属性修改,将其改为char(40),并且设置其为不允许为空值

选择保存,但是弹出来警告语句,显示无法保存,需要在工具中进行设置

找到Designers,打开后,取消勾选“组织保存要求重新创建表的更改”

再次保存之后,即可成功修改表S

接下来再次修改NATIVE内数据类型,修改数据类型长度为16,并且允许有空值

删除数据库表

右击数据库表,选择设计,然后选中某列然后右击,选中删除列,即可把改列删除。

采用T-SQL语句增加列NATIVE,并设置其列属性

在对象资源管理器中刷新之后可以看到表S中列已经存在,并且属性信息也可以看出

T-SQL语句修改列NATIVE属性信息如下:

修改完成后再次在对象资源管理器中刷新后可以看出属性信息已经变化

对表整体的删除操作

右击表TC,选中删除,并在弹出的界面点击确定

在对象资源管理器中刷新后可以看出表TC已经不存在

采用T-SQL语句对TC表进行删除操作

其中删除语句前加上语句USE WJN GO,通过该语句设置了T-SQL查询语句的空间。

录入数据至数据库表

设置待录入数据在EXCEL表格中,自定义录入数据如下表

在数据库中右击选中任务,并点击导入数据

设置导入数据的数据源为Microsoft Excel

在电脑文件夹中选择待导入的表格文件

点击下一步操作

但弹出消息为无法导入,原因是该版本为SQL R2,只支持

Microsoft Excel格式为.xls格式的表格文件,因此无法导入.xlsx格式文件

接下来对原始excel表格文件进行修改,将格式另存为.xls后缀

再次执行导入数据步骤,点击下一步发现可以顺利执行该过程

查看数据库为默认的WJN数据库,因此继续执行下一步操作

选择复制一个或多个表或视图的数据,点击下一步

接下来可以选择设置直接导入输出目标的表,也可以编辑映射,通过源数据直接导出到新建的表中,下图先展示编辑映射的方法建立新表格

对照原始S表中属性信息,在对新的Sheet$表中设置相同的属性信息,点击编辑,采用T-SQL语句对属性信息进行设置

对应修改完成后如下图所示,不仅修改字符类型,长度,且修改了是否可以为空值选项

之后点击预览

可以对比初始excel表格,发现数据无缺失、错误,点击确定

点击下一步继续执行,立即运行

点击完成

最后显示执行成功

可以单击右下角的“报告”,点击“查看报告”

可以看出均运行成功

最后在SQL中对该表右击,选中“查看前一千行”进行查看信息,可以看出与初始待导入的excel表完全相同。

再回到刚才提到的导入数据映射的步骤,接下来是直接导出到目标表S内,可以不用编辑映射,因为S表已经存在各列极其属性信息,单击下一步

无视这些警告,继续点击下一步执行

接下来显示执行成功,关闭该界面

在对象资源管理器内右击表S,选择查看前一千行

可以看出该表与excel表相同,正常运行

采用同上的方法,继续导入其他表格如下

由于T表已经在我们之前删除操作中被删除,因此选用编辑映射的方法,直接由excel表格导入生成规定新建格式的新表,命名为T

执行后,可以看出执行成功

查看信息,可以看出顺利生成了T表

接下来是利用T-SQL语句对表格单行或批量多行导入信息的操作

采用INSERT INTO C VALUES可以进行插入单行数据,如下图

接下来是批量插入多行数据,需要在表后添加表的列名信息,各行信息用逗号隔开

该语句执行后即可批量插入多行信息。

修改与删除数据

先进行交互式修改数据,右击表S,点击编辑前200行

将王小明的DEPT信息由“计算机”改为“地信”

刷新后即可看到表内信息发生改动

接下来是采用T-SQL语句将教师“刘雪”职称改为副教授

下图可看出教师刘雪修改前的信息

运行该T-SQL语句,修改表T信息

可以看出职称信息已经成功被修改

交互式删除表S的某行信息,右击表S,选择编辑前两百行

右击张鹏,点击删除

刷新后,查看表内信息,可以看出张鹏的信息已经成功被删除

采用T-SQL语句删除教师表内刘雪老师信息

刷新后,查看表内信息,可以看出刘雪的信息已经成功被删除

复制数据

采用T-SQL语句将表S复制到新表TEST1内

运行成功后,刷新可以看出该表已存在

查看该表信息,与原表信息相同

将T表中性别为‘男’提取教师名称,性别,年龄与职称至新表TEST2中

展示提取前T表内的为性别为男的信息如下

可以看出将教师刘帅提取复制到新表内,并获得了想要的属性信息

习题练习

习题3题目如下:

选做题目为1,2,4,5,6

首先采用交互式方法将数据导入至SC表内

先在excel中将前五行数据存储为.xls格式

接下来在数据库WJN中选择导入数据

设置目标数据库表为SC表

继续进行下一步

显示执行成功

最后在SQL内查看SC表信息,对照原始数据,信息无误

接下来是利用T-SQL语句批量插入表后五行数据如下

最后对表SC进行查看,得到最终的全表信息

用T-SQL语句对S表中计算机系的全体学生岁数增加一岁

对比结果,左图为增加岁数前,右图为增加岁数后:

提取数据库表SC中分数小于60分成绩的到新表makeup_s中,T-SQL语句如下图

查看生成的makeup_s表,可以看出并未提取出表信息,因为原表中所有成绩均大于60分

再删除成绩小于20分的代码如下

结果仍为空表

总结数据库表的导入数据过程中,对于高版本的excel, SQL并不能兼容,需要转化为后缀名.xls的格式才能顺利完成数据的导入。在完成实验3的过程中,采用T-SQL的INSERT INTO导入数据时,若多次执行导入数据,会导致数据库中出现多行重复数据,但是采用交互式语句并不能直接删除重复数据只保留一个非重复数据,因此需要采用编号分组的方法对多行重复表内数据。

以下进行举例实现该过程:

先利用T-SQL语句内插入与之前数据一样的几行数据,得到多行重复数据表格

运行完成后,查看SC表,可以看出出现了多行重复数据,因此我们需要进行去除重复的数据,只保留非重复数据

新建PD作为区分,按照PD特有标识进行分组举例实现

一.删除完全重复数据:在新建查询内将该数据库表进行编号,再按相同行进行分组,分组完成后对每组不是最小的数进行删除

再对原始表进行ID去除

运行之后即得到我们最初始想要的10行的结果

二.删除部分重复数据:在新建查询内将该数据库表进行编号,再按相同行进行分组,每个分组中取最小的数生成到新的表中

对SC表中再加入一行重复数据进行举例模拟如下

代码执行如下:

结果仍然达到要求

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。