SQLServer中数据导入导出三种方法

SQLServer中数据导入导出三种方法,第1张

当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。幸好SQL Server为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。

在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。

一、使用方式的比较

1 使用Transact-SQL进行数据导入导出

我们很容易看出,Transact-SQL方法就是通过 SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。

SELECT INTO table2 FROM table1 --table1和table2的表结构相同

INSERT INTO table2 SELECT FROM table3 --table2和table3的表结构相同

当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。

在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并 *** 作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。

(1) 调用方式不同。

OPENDATASOURCE的参数有两个,分别是OLE DB Provider和连接字符串。使用OPENDATASOURCE只相当于引用数据库或者是服务(对于SQL Server、Oracle等数据库来说)。要想引用其中的数据表或视图,必须在OPENDATASOURCE()后进行引用。

在SQL Server中通过OPENDATASOURCE查询Access数据库abcmdb中的table1表

以下是引用片段:

SELECT FROM OPENDATASOURCE('MicrosoftJetOLEDB40',

'Provider=MicrosoftJetOLEDB40;Data Source=abcmdb;Persist Security

Info=False')

table1

OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。

在SQL Server中通过OPENROWSETE查询Access数据库abcmdb中的table1表

以下是引用片段:

SELECT FROM OPENROWSET('MicrosoftJetOLEDB40', 'abcmdb';

'admin';'','SELECT FROM table1')

问题一:怎么把sql文件导入mysql数据库 先打开cmd再进入mysql的bin目录:

cd D:\soft\wamp\bin\mysql\mysql5051b\bin 回车

mysql -u 用户名 -p 密码 回车

source d:\abcsql (指向你自己的目录)回车

ok!

问题二:请问xls数据文件怎么导入到mysql里啊? 1需要在mysql管理工具上面新建一个表,也可以用mysql命令创建,表建立完成之后,你需要将表中的字段名字告诉给填写excel表的人员

2打开excel表,按照程序提供的字段填写相应的数据此时注意下面几点:名字(我用红色标示出来了)需要跟程序提供的一样,其他的描述,表头可以不写都行

3使用的mysql管理工具是Navicat for MySQL,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确d出一个选择界面,我们选择excel file文件

4点击next(下一步),我们选择我们对应的excel文件就行,然后再下面选在我们的文件内容在哪一个sheet中,也就是你的内容写在excel什么地方,这点需要注意,也是关键的地方,我的内容在sheet3中,所以我选择sheet3

5点击next (此步骤也是关键步骤),需要注意2点: 1:filed name row 就是你的字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列)2:first data row(从哪一行开始执行),数据从哪一行开始呢,我这里选择的是3,4

6点击next 选择 target table 目标对应的数据库,选择你要导入到哪个数据库中表中

7如果到上面一步没有问题的话,我们默认next到最后 就行了然后打开表就能看到数据跟excel表中的一样。

问题三:sql文件怎么导入mysql数据库 直接执行

mysql -uroot -pPassword 问题四:oracle中怎样导入数据库文件 导出

导出具体的分为:导出表,导出方案,导出数据库三种方式。

导出使用exp命令来完成的,该命令常用的选项有:

userid: 用于指定执行导出 *** 作的用户名,口令,连接字符串

tables: 用于指定执行导出 *** 作的表

owner: 用于指定执行导出 *** 作的方案

full=y: 用于指定执行导出 *** 作的数据库

inctype: 用于指定执行导出 *** 作的增量类型

rows: 用于指定执行导出 *** 作是否要导出表中的数据

file: 用于指定导出文件名

Oracle 笔记

23

导出表

1导出自己的表

exp [email protected] tables=(emp,dept) file=d:\e1dmp

2导出其它方案的表

如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表

E:\oracle\ora92\bin>exp [email protected] tables=(scottemp) file=d:\e2emp

特别说明:在导入和导出的时候,要到oracle目录的bin目录下。

3 导出表的结构

exp [email protected] tables=(emp) file=d:\e3dmp rows=n

4 使用直接导出方式

exp [email protected] tables=(emp) file=d:\e4dmp direct=y

这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。

这时需要数据库的字符集要与客户端字符集完全一致,否则会报错

导出方案

导出方案是指使用export工具导出一个方案或是多个方案中的所有对象(表,索引,约束)和数据。并存放到文件中。

1 导出自己的方案

exp [email protected] owner=scott file=d:\scottdmp

2 导出其它方案

如果用户要导出其它方案,则需要dba的权限或是exp_full_database的权限,比如system用户就可以导出任何方案

exp [email protected] owner=(system,scott) file=d:\systemdmp

导出数据库

导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或者是exp_full_database权限

增量备份(好处是第一次备份后,第二次备份就快很多了)

exp [email protected] full=y inctype=plete file=d:\alldmp

导入

介绍

导入就是使用工具import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件。与导

出相似,导入也分为导入表,导入方案,导入数据库三种方式。

imp常用的>>

问题五:mdf数据库文件如何导入数据库 打开企业管理器->向下展开到&哗39;数据库'->右键点击'数据库'->选择'所有任务'->点击'附加数据库'->点击 带三个点的按钮()->找到要附加的数据库(要选择后缀名mdf的)->点击确定->点击确定 附加成功

问题六:想把文件存入数据库怎么办 数据库是不会存储文件的,他只是存储文件的存放地址,比如你想存储一个文件,你可以把文件名,文件大小,文件格式,文件存储的地址(d:/file/fieltxt)存到数据库表中。

当你想获取文件的时候就直接读取文件的存储地址File file=new File(d:/file/fieltxt);,这样就能存储数据文件了

问题七:如何导入sql脚本文件 sql的文件是很多数据库连接工具可以直接打开的文件,例如sqldevelop,pl/sql等。登陆数据库后,点击左上角的文件->打开 ,打开相应的sql文件就可以了,然后点击执行脚本。

问题八:300兆的sql文件如何导入mysql数据库中 抄一段给你看看,应该有些帮助。

一般网站经常用phpmyadmin备份和恢复数据库,但默认总是限制了16M。网站数据一多就不行了。

解决方法如下:

(1)修改phpini适用自己有服务器的人

大多数都修改phpini中的upload_max_filesize,但修改了这个以后,还是提示这个问题;

那么更改如下几处:

修改 PHPini

file_uploads on 是否允许通过>

在软件项目实施的时候 数据导入一直是项目人员比较头疼的问题 其实 在SQL Server中集成了很多成批导入数据的方法 有些项目实施顾问头疼的问题 在我们数据库管理员眼中 是小菜一碟 现在的重点就是 如何让用户了解这些方法 让数据导入变得轻松一些

第一种方法 使用Select Into语句

若企业数据库都采用的是SQL Server数据库的话 则可以利用Select Into语句来实现数据的导入 Select Into语句 他的作用就是把数据从另外一个数据库中查询出来 然后加入到某个用户指定的表中

在使用这条语句的时候 需要注意几个方面的内容

一是需要在目的数据库中先建立相关的表 如想把进销存系统数据库(SQLServer)中的产品信息表(Product)导入到ERP系统中的产品信息表(M_Product)中 则前期是在ERP系统的数据库中已经建立了这张产品信息表

二是这种方法只复制表中的数据 而不复制表中的索引 如在进销存系统数据中的产品信息表中 在产品编号 产品种类等字段上建立了索引 则利用Select Into语句把数据复制到ERP系统的表中的时候 只是复制了数据内容的本身 而不会复制索引等信息

三是这条语句使用具有局限性 一般情况下 这只能够在SQL Server数据库中采用 不过 对于SQL Server不同版本的数据库 如 或者 还都是兼容的 若需要导入的对象数据库不是SQL Server的 则需要采用其他的方法

四是采用这条语句的话 在目的表中必须不存在数据 否则的话 目的表中的数据会被清除 也就是说 这个语句不支持表与表数据的合并 在SQL Server中 有一条类似的语句 可以实现这个功能 这条语句就是 Insert Into 他的作用就是把另外一张表中的数据插入到当前表中 若用户想要的时表与表数据的合并 则可以采用这条语句 两者不能够混淆使用 否则的话 很容易导致数据的丢失

五是以上两条语句都支持兼容的不同类型的数据类型 如在原标中 某个字段的数据类型是整数型 但是在目的表中这个字段的数据类型则是浮点型 只要这个两个数据类型本来就兼容的 则在导入的时候 数据库是允许的

第二种方法 利用Excel等中间工具进行控制

虽然第一种方法 *** 作起来比较简单 但是其也有一些缺点 如他只支持同一种类型的数据库;不能够对数据进行过多的干预等等 一般情况下 若用户原数据准确度比较高 不需要过多的修改就可以直接拿来用的话 则笔者就已采用第一种方式

但是 若在原数据库中 数据的准确度不是很高 又或者 有很多数据是报废的 总之 需要对原数据库的数据进行整理 才能够使用的情况 笔者不建议先导入进去 再进行更改 笔者在遇到这种情况时 喜欢利用Excle作为中间工具 也就是说 先把数据中原数据库中导到Excle中 有些数据库 如Oracle数据库 他不支持Excle格式 但是 我们可以把它导为CSV格式的文件 这种文件Excle也可以打得开

然后 再在Excle中 对记录进行修改 由于Excle是一个很强的表格处理软件 所以 其数据修改 要比在数据库中直接修改来得方便 来得简单 如可以利用按时间排序等功能 把一些长久不用的记录清楚掉 也可以利用替换等功能 把一些不规范的字符更改掉 这些原来在数据库中比较复杂的任务 在Excle等工具中都可以轻松的完成

等到表中的内容修改无误后 数据库管理员就可以把Excle表格中的文件直接导入到SQL Server数据库中 由于SQL Server与Excel是同一个父母生的 所以 他们之间的兼容性很好 在Sql Server中提供了直接从Excel文件中导入数据的工具

虽然这要借助中间工具导入数据 但是 因为其处理起来方便 直观 所以 笔者在大部分时候都是采用这种方式

第三种方式 使用数据转换服务导入数据

数据转换服务是SQL Server数据库中提供的一个非常强大的工具 在SQLServer中 数据转换功能有一个图形用户接口 用户可以在图形界面中导入数据 并对数据进行相应的编辑

另外 数据转换服务还支持组件的编程接口 这也就是说 在前台应用程序开发的时候 可以直接调用数据转换服务 让用户通过前台应用系统 而不用在后台数据库系统进行任何的 *** 作 就可以把数据导入数据库系统中去 在前台对数据库系统进行导入 有一个明显的好处 就可以预先对数据的合法性进行检查 如可以利用VB等脚本语言对数据进行检验 净化和一定的转换 以符合目的数据库的需要

如在员工信息表中的婚姻状况字段 在Oracle数据库系统中 可能是用 或者 来表示婚姻状况 表示未婚 表示已婚 而在SQL Server数据库中 则利用Y或者N来表示婚姻状况 Y表示已婚 N表示未婚 在导入数据的时候 若直接把Oracle数据库表中的数据导入到SQL Server数据库中 因为婚姻状况这个字段存储的内容类型不同 所以 不能够直接导 遇到这种情况的话 则就可以在导入数据之前 先利用脚本语言对数据类型进行验证 若不符合要求的 则可以通过脚本语言对数据进行一定的转换 把 转换为N 把 转换为Y等等

所以 有时候程序员在开发前台应用程序的时候 若要开发数据导入功能的话 我们都是建议采用这个数据转换服务 不但有现成的接口 而且 还可以对数据进行验证与一定程度的转换 另外 数据转换服务的数据导入效率非常的高 即使通过前台程序调用 其性能也比其他方法在同等条件下 要高一个档次 而且 随着数据量的增加 数据转换服务的优势会越来越明显

不过 在前台应用程序调用数据转换服务的时候 需要注意 数据转换服务提供的接口比较复杂 所以 前台程序调用数据转换服务的代码也比较复杂 若再加上一些脚本语言的话 可能处理起来更加的繁琐 故一般只有在大型系统上才会用到这个接口 若数据不多 否则不需要复杂验证与转换的话 利用这个接口是大刀小用 得不偿失

第四种方式 异构数据库之间的导入导出

虽然第二种 第三种方式都可以完成异构数据库之间数据的导入导出作业 不过 在SQL Server中 还提供了另外一种解决方案 即直接在SQL Server数据库中连接到其他类型的数据库上 然后采用Select Into等语句实现数据的导入作业

在SQL Server中 提供了两个函数可以帮助我们实现对非SQL Server数据库的连接 这两个函数分别为Opendatesource与Openrowset 他们的功能基本相同 只是在细节上有所差异

如Opendatesource这个函数至能够打开源数据库的表和视图 而不能够对其进行过滤 若用户只想把源表中的部分数据导入到SQL Server数据库的表中 则不能对源表直接进行过滤 过滤的动作需要在SQL Server数据库中进行 而Openrowset这个函数 可以在打开对方数据库的表或者视图的时候 直接利用Where等条件限制语句对记录进新过滤 为此 在实际应用中 还是Openrowset这个函数使用的频率比较高

不过由于其需要用户写复杂的参数 而且 又不能够提供复杂的数据验证功能 所以在实际工作中用的并不是很多 在一些小的应用系统中 偶尔还可以见到其的踪影 在一些大的成熟的商业软件中 很少采用这种方式 对数据进行导入

lishixinzhi/Article/program/SQLServer/201311/22294

数据库可以直接导出当然是最好的,不过,一般不开放这权限,你说的是网站吧,网站更加不能。

如果是可以复制粘贴把数据下载下来也可以的,不过就是人工太累太辛苦,没效率。

肯定还有其他的好办法的,博 为的小 帮软件机器人可以把重复工作自动化,也就是把复制粘贴的工作自动化,简单配置一下,十分钟的事情了,然后可以让小帮自动运行

今天给大家介绍一个数据导入到处的工具 - Navicat,大家对mysql数据库的导入导出都已经十分熟悉了,因为mysql的导入导出工具十分的多,也十分的方便,然而对于mssql数据库的导入导出,除了利用微软提供的sqlserver可以进行导入导出外,其他的工具可谓是少之又少,最近笔者由于需要升级网站程序,将原先使用的access数据转换成了sql2000,又需要将数据从本地转移到目标服务器上的数据库里,由于笔者不想为了导入一些小小的数据而去装一个sqlserver,于是就找到了Navicat,这个工具简单易用功能强大,对数据的导入导出十分方便,下面就为大家详细的介绍下该软件的使用方法和 *** 作过程。

步骤一、首先打开navicat,点左上方的“连接”,d出以下窗口

在“连接名”处填写一个自己命名的名字,“主机名或IP地址”处填上你sqlserver所在服务器的IP地址,关于“验证”处,如果你是在本机上的装的sqlserver并且设置的是windows验证,那么就在下拉框中选择“windows 验证”;否则,“请选择SQL server 验证”,然后填写上用户名密码进行“连接测试”,连接成功后,点确定就可以了。

小提示:如果是sqlserver,在第一次使用该软件进行“连接”的时候,会提示安装“Microsoft Sqlsever Navicat Client。”,这时直接点击“是”安装就可以了。

步骤二、连接数据库成功后,左边会出现你的“连接名”,你可以右键或双击打开“打开连接”,这样你就连接上了数据库。连接上数据库后,在里面可以清楚的看到数据库的表等项目,并且可以通过右键可以进行多种 *** 作。

小提示:通过上面的连接方法,你可以添加多个“连接名”,进行不同数据库之间的数据传输或同步 *** 作。这样就实现了数据库的转移等需要。

步骤三、将服务器一中的数据库数据转移到服务器二的数据库中,点击“工具”,选择“数据传输”,出现一下界面:

左边的“源”是你想要转移数据的数据库服务器,右边的“目标”是你的目的地址,数据库的选择比如从master1到master2,这个自己选择,模式的话,两边都选择dbo,至于“数据库对象”,根据自己需要自己选择,可以只选一个表,也可以全选,设置后以后,点“开始”就可以了。

上面是直接连接两个远程数据库进行数据传输的,当然你也可以直接连接一个数据库服务器,利用sql文件进行导入,选中需要导入的数据库,打开选中的数据库,展开找到dbo,右键 - 选择“导入向导”,根据需要选择sql文件导入就可以了。

以上就是Navicat工具的大概使用方法了,具体 *** 作还有很多,不过都很简单,可以自己下载一个进行尝试。

1、首先进入命令行,点击开始,输入cmd。

2、键盘按回车键,出现命令行窗口。

3、接着导入的命令是:imp 用户名/密码@网络服务名 file=xxxdmp full=y。

4、导出的命令是:exp 用户名/密码@网络服务名 file=xxxdmp tables=(表名)

5、就可以进行dmp数据库表结构和表数据的同时导入导出了,这样就完成了。

以上就是关于SQLServer中数据导入导出三种方法全部的内容,包括:SQLServer中数据导入导出三种方法、怎么导入数据库文件、在SQL Server成批导入数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9532296.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存