SQL数据库怎么导入导出数据

SQL数据库怎么导入导出数据,第1张

MySQL命令行导出数据

1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录

如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 41\bin

(或者直接将windows的环境变量path中添加该目录)

2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

如我输入的命令行:mysqldump -u root -p news > newssql (输入后会让你输入进入MySQL的密码)

(如果导出单张表的话在数据库名后面输入表名即可)

3、会看到文件newssql自动生成到bin文件下

命令行导入数据库:

1,将要导入的sql文件移至bin文件下,这样的路径比较方便

2,同上面导出的第1步

3,进入MySQL:mysql -u 用户名 -p

如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)

4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库

5,输入:mysql>use 目标数据库名

如我输入的命令行:mysql>use news;

6,导入文件:mysql>source 导入的文件名;

如我输入的命令行:mysql>source newssql;

一使用SQL Server的数据库导入/导出功能。首先在要导入到的SQL Srever数据库上右键,选择“任务”,然后选择“导入数据”,按照提示下一步直到完成即可成功将Access数据库导入到SQL Server数据库中,此种方法如果SQLServer数据库中没有相应的数据表,则会自动创建改表,但是约束等表关系不会同步导入,如果SQLServer中有相同名称并且属性相同的数据表,则会直接将Access数据库中的对应表的数据导入。

在导入过程中,还可以通过SQL语句指定要导入的数据。

使用这种方法一般会出现以下两种错误:

(1)无法建立数据流连接

为连接管理器“{FFBF32BF-EE84-4F94-ACDB-D4C5AC4C2941}”指定的连接类型“OLEDB”未被识别为有效的连接管理器类型。当视图创建未知连接类型的连接管理器时会返回此错误。请检查连接类型名称的拼写是否正确。

(2)无法连接源组件

找不到连接“SourceConnectionOLEDB”。如果找不到特定的连接元素,Connections集合将发生此错误。

其他信息:

找不到连接“SourceConnectionOLEDB”。如果找不到特定的连接元素,Connections集合将发生此错误。

({0DE0CDBB-BCD6-4261-A118-B0CB22DA3C4A})

具体解决办法是打开SqlServerConfiguration Manage,右键单击“SqlServer Integration Services”,选择“属性”,将登录身份修改为“LocalSystem(本地系统)”,然后重新启动该服务。

二使用Access数据库的数据升迁功能。首先点击“工具”菜单,选择“数据库实用工具”,选择“升迁向导”,这是会提示该功能尚未安装,需要安装XXX之类的信息,点击安装,等待安装成功后,即可d出“升迁向导”对话框,按照提示下一步直到完成,即可将Access数据库导入到SQLServer数据库中。使用此种方法的好处是Access数据库中的所有数据以及表关系都会被原样导入到SQL Server数据库中。

三使用SQL语句批量导入。1当只需要导入Access数据库中的指定表以及指定表的指定列到SQLServer数据库中时,前面的两种方法就显得不那么方便了。而使用SQL语句导入可以方便快捷的导入需要的数据。具体代码如下

(1)SQLServe数据库中已存在要导入数据的表(这样可以事先按照要导入的Access数据库的数据表创建好需要的关系)

Insert intotable(tid,tname)SELECT id,nameFROM OPENDATASOURCE ('MicrosoftJetOLEDB40','Data Source="c:\Shopmdb";User ID=Admin;Password=' )ShopGoods

(2)SQLServer数据库中不存在要存储导入数据的表(使用下面的代码会直接在SQL Server数据库中创建相应的数据表)

SELECTid,nameINTO table(tid,tname)FROM OPENDATASOURCE ('MicrosoftJetOLEDB40','Data Source="c:\Shopmdb";User ID=Admin;Password=' )ShopGoods

其中,table是SQL Server中用来存储Access导入数据的数据表名,ShopGoods是指要导入到SQLServer中的Access数据库中的数据表名。前面的三个点不能省略。

但使用这种方法时有可能出现以下错误:

SQLServer 阻止了对组件 'Ad Hoc DistributedQueries' 的STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQLServer 联机丛书中的 "外围应用配置器"。

具体解决办法是使用如下语句启用“'AdHoc Distributed Querie”

EXECsp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'AdHoc Distributed Queries', 1 GO RECONFIGURE GO

sqlserver的数据库导入MSSQLServer数据库方法:

现有数据库是mdf格式还是bak格式。

1、如果是mdf格式,采用附加数据库方式。

2、如果是bak格式,则要选择还原数据库方式。

具体附加数据库方法:

1、企业管理器->数据库-->所有任务-->附加数据库-->选择你的mdf文件,然后进行附加 *** 作即可。

还原数据库方法:

1右击SQL Server 2000实例下的“数据库”文件夹。就是master等数据库上一级的那个图标。选择“所有任务”,“还原数据库”。

2在“还原为数据库”中填上你希望恢复的数据库名字。这个名字应该与你的源码中使用的数据库名字一致。

3在d出的对话框中,选“从设备”。

4点击“选择设备”。

5点击“添加”。

6点击“文件名”文本框右侧的“…”按钮,选中你的“BAK”文件,并点击确定回到“选择还原设备”对话框。

7点击确定回到“还原数据库”对话框。

8点击“选项”选项卡。

9将所有“移至物理文件名”下面的路径,改为你想还原后的将数据库文件保存到的路径。如果你不希望改变,可以直接点击确定。这时便恢复成功了。

1、右键点击“SQL Server组”,点击“新建SQL Server注册”

2、输入您所购买的数据库的IP地址,并点击“添加”、“下一步”

3、点击第二项“(SQL Server身份验证)”、“下一步”

4、输入您的数据库用户名和密码(在购买时所填写的),点击“下一步”,点击“完成”

5、数据库连接成功

6、数据库的 *** 作与在本地一样

7、右键点击您自己的数据库名,点击“所有任务”、“导出数据”。点击“下一步”

8、输入服务器IP地址、点击“使用SQL Server身份验证”、输入用户名及密码、选择数据库,点击“下一步”

9、点击您需要导出的表名、点击“下一步”

10、再次点击“下一步”

11、数据导出成功

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题。如要把产品信息从现有的进销存管理系统中导入到ERP系统中,却让企业用户手工的输入这些信息,不怎么现实。

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

第一种方法:使用Select Into语句

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

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

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

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

三是这条语句使用具有局限性。一般情况下,这只能够在SQL Server数据库中采用。不过,对于SQL Server不同版本的数据库,如2008或者2003,还都是兼容的。若需要导入的对象数据库不是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中,数据转换功能有一个图形用户接口,用户可以在图形界面中导入数据,并对数据进行相应的我。

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

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

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

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

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

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

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

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

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

有时候,选择多了,用户反而不知道如何下手。笔者平时最喜欢采用的是第二种处理方式。他比较直观,而且,可以对数据进行成批的更改与整理。但是,其缺陷就是效率比较低,特别是Excle软件对于处理大量记录的时候,速度比较慢。若这种方式行不通的话,则笔者比较倾向于采用数据转换的处理方式。这个 *** 作起来虽然比较复杂,但是,其可以提供比较复杂的验证,而且可以在图形化的界面中对数据进行修改,同时效率也比较高。

1、SQL Server中用于还原数据库的文件,可以不为固定的后缀名,不过,一般备份出的数据库的后缀名为bak。直接复制出的数据库的后缀名为mdf(数据库文件),ldf(数据库的事务文件)。

2、最常见的导入数据库的方式两种,一种将直接复制出的数据库的文件附加,一般要求版本相同的SQL Server的情况下。

3、最最最常见的是还原备份数据库文件,就是将“备份出的数据库的后缀名为bak”的文件进行还原。

4、再次提示,无论是备份出来的也好,直接复制出的也好,后缀名都可以是任意。但文件实际格式是有严格的约定的,不是正确的格式的,附加或还原时会提示错误并拒绝。

5、另外说一句,严格的描述中,数据库是不说“导入”的,只有数据库中的表、存储过程等才用“导入”这个词。

将本地数据库导入到服务器数据库的方法/步骤:

1、在本地和服务器都安装同样的数据库客户端,如oracle常用SQLPlus、MySQL常用HeiDi

sql或者navicat、mssql2005则常用SQL

Server

Management

Studio;

2、在本地通过数据库客户端导出数据库为sql文件;

3、将sql文件远程传递到服务器上;

4、在服务器上用相同的数据库客户端将sql文件执行一遍即可将本地数据库导入到服务器上。

以上就是关于SQL数据库怎么导入导出数据全部的内容,包括:SQL数据库怎么导入导出数据、如何向access数据库导入sql文件、sqlserver的数据库如何导入MSSQLServer数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9291051.html

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

发表评论

登录后才能评论

评论列表(0条)

保存