2024年3月5日发(作者:)
福州宏祺电子信息技术有限公司 第 1 页
如何把Access和Sql Server数据导入到Mysql数据库中技术部:黄余福一、Access、Sql Server和Mysql数据类型说明要将存放在Access数据库或sql server数据库中的数据全部导入到mysql数据库中,由于它们的数据类型不尽相同,所以在导相应数据时得先知道其各种数据类型对应关系。表一:
Access、Sql Server和Mysql数据类型对照表Access 数据类型SQL Server 数据类型MySQL数据类型是/否 (“是/否”数据类型:一种字bit (一种存储值为 1 或 0 的数据类型。接受 1(无等价的数据类型)视情段数据类型,用于只有两种可能值和 0 以外的整数值,但总是将其解释为 1。) 况而定。可用char或(如是或否、True 或 False)的字段。TINYINT。不允许有 Null 值。)
数字 (“数字”数据类型:用于将在tinyint (一种占一个字节(8 位)的数据类型,TINYINT :1 字节数学运算中使用的数值数据。但是,用于存储从 0 到 255 范围内的整数。)
若要显示或计算货币值,则应使用“货币”数据类型。)(字节)
数字(整型) smallint (一种 2 字节(16 位)数据类型,存储SMALLINT :2 字节位于 -2^15 (-32,768) 与 2^15 - 1 (32,767)之间的数字。)
(无直接等价的数据类型)MEDIUMINT :3 字节int (一种 4 字节(32 位)数据类型,存储位于INT、INTEGER :4 字节-2^31 (-2,147,483,648) 与 2^31 - 1(2,147,483,647) 之间的数字。)
real (一种近似的数值数据类型,精度为 7 位,REAL :8 字节正值取值范围大致从 1.18E - 38 到 3.40E +38,负值取值范围大致从 -1.18E - 38 到 -3.40E+ 38,也可以取 0。)
bigint (一种 8 字节(64 位)数据类型,存储位BIGINT: 8 字节于 -2^63 (-9,223,372,036,854,775,808) 与2^63-1 (9,223,372,036,854,775,807) 之间的数字。)
float (一种近似的数值数据类型,精度为 15 位。FLOAT :(X<=24)4 字节它所存储的正值范围大致是从 2.23E - 308 到FLOAT :(25<=X<=53)8 字1.79E + 308,负值范围大致是从 - 2.23E - 308节到 -1.79E + 308,也可以为 0。)
DOUBLE :8 字节DOUBLE PRECISION :8 字节货币 (“货币”数据类型:MicrosoftAccess 数据库中的一种数据类型,用于与货币有关的计算或其精确度极其重要的定点计算。)
money (用于存储货币值的数据类型,取值范围从(无等价的数据类型)- 922,337,203,685,477.5707 到可用FLOAT :(X<=24)4 字922,337,203,685,477.5807,精确度为万分之一个节货币单位。)smallmoney (一种存储货币值的数据类型,取值范围从 -214,748.3648 到 214,748.3647,精确度为万分之一个货币单位。当显示 smallmoney 值时,会将它们四舍五入为两个小数位。)
(无直接等价的数据类型)数字(长整型)数字(单精度浮点型)
(无等价的数据类型)
数字(双精度浮点型)
福州宏祺电子信息技术有限公司 第 2 页
小数/数值 (decimal 数据类型(Access 数据库):精确的数值数据类型,用于存储 -10^38 -1 到10^38 -1 的值。可以指定数值范围(最大总位数)和精度(小数点右边的最大位数)。)
decimal (精确的数值数据类型,用于存储 -10^38DECIMAL :M 字节(D+2,如-1 到 10^38 -1 的值。可以指定数值范围(最大总果 M numeric (一种精确的数值数据类型,取值从NUMERIC: M 字节(D+2,如-10^38 -1 到 10^38 - 1。可以指定数值范围(最果 M 日期/时间 (“日期/时间”数据类型:datetime (日期和时间的数据类型,范围从 1753DATETIME :8 字节Access 数据库的一种数据类型,用年 1 月 1 日到 9999 年 12 月 31 日,精确度为来存放日期和时间信息。) 三百分之一秒,即 3.33 毫秒。) smalldatetime (一种日期和时间数据类型,精度DATE :3 字节不如 datetime 时间数据类型。数据取值范围从TIME :3 字节1900 年 1 月 1 日到 2079 年 6 月 6 日,精确YEAR :1 字节度为一分钟。) 自动编号 (“自动编号”数据类型:Microsoft Access 数据库中的一种字段数据类型,当向表中添加一条新记录时,这种数据类型会自动为每条记录存储一个唯一的编号。可以产生三种编号:顺序号、随机号和同步复制 ID。)(递增) 文本 (“文本”数据类型:MicrosoftAccess 数据库中的一种字段数据类型。“文本”数据类型最多可以包含255 个字符,或者是由 FieldSize属性指定的一个小一些的字符数。)(n) int (一种 4 字节(32 位)数据类型,存储位于unsigned NOT NULL-2^31 (-2,147,483,648) 与 2^31 - 1auto_increment(2,147,483,647) 之间的数字。)(定义了Identity 属性) varchar(n) (一种可变长度的数据类型,最大长度VARCHAR(m):L+1 字节,为 8,000 个 ANSI 字符。)L<=M 且 1<=M<=255nvarchar(n) (一种可变长度的数据类型,最多可含 4,000 个 Unicode 字符。Unicode 字符每字符占两个字节,而且支持所有国际字符。) TEXT:L + 2 字节,L<2^16MEDIUMTEXT:L + 3 字节,L<2^24LONGTEXT:L + 4 字节,L<2^32MEDIUMBLOB:L + 3 字节,L<2^24LONGBLOB:L + 4 字节,L<2^32备注 (“备注”数据类型:在text (一种长度可变的数据类型,最多可存储Microsoft Access 数据库中的一种2^31 -1 (2,147,483,647) 个字符;默认长度为字段数据类型。“备注”字段最多可以16。) 包含 65,535 个字符。) OLE 对象 (“OLE 对象”数据类型:字段的数据类型之一,用于在其他应用程序中创建的、可链接或嵌入(插入)到 Access 数据库中的对象。) image (一种长度可变的数据类型,最多可存储2^31 -1 (2,147,483,647) 字节的二进制数据。image 数据类型用来存储 BLOB(二进制大对象),如图片、文档、声音和已编译代码。) 同步复制 ID(又名全局唯一标识符uniqueidentifier (16 字节的全局唯一标识符(GUID:在 Access 数据库中,一种(GUID)。) 用于建立同步复制唯一标识符的 16字节字段。GUID 用于标识副本、副本集、表、记录和其他对象。在 Access数据库中,GUID 是指同步复制 ID。)(GUID)) 超链接 (“超链接”数据类型:存储超链接地址的 Access 数据库字段的数据类型。地址最多可以包含四部分,用以下语法格式编写:displaytext#address#subaddress#。)char (一种固定长度的数据类型,最多可含 8,000CHAR(m):M 字节,个 ANSI 字符。),1<=M<=255nchar (一种固定长度的数据类型,最多可含4,000 个 Unicode 字符。Unicode 字符每字符占两个字节,而且支持所有国际字符。), varchar,nvarchar(Hyperlink 属性设为 Yes) 福州宏祺电子信息技术有限公司 第 3 页 (无等价的数据类型)(无等价的数据类型)(无等价的数据类型) BINARYTINYBLOB::L + 1 字节,L<2^8varbinary (一种可变长度的数据类型,最多可存BLOB:L + 2 字节,L<2^16储 8,000 字节的二进制数据。) timestamp (一种每插入或更新一行就会自动更新TIMESTAMP :4 字节的数据类型。timestamp 列中的值不是 datetime数据,而是 binary(8) 或 varbinary(8),标明了数据修改的顺序。) sql_variant (一种数据类型,存储除 text、(无等价的数据类型)视情ntext、image、timestamp 和 sql_variant 类型以况而定。外的多种数据类型的值。在列、参数、变量或用户定义函数的返回值中使用。) 用户定义 (在 Microsoft SQL Server 数据库中,ENUM允许某列包含的数据的类型定义,由用户利用现有(VALUE1,VALUE2, ...):1的系统数据类型定义。规则和默认值仅可以绑定到或 2 字节,取决于枚举值的用户定义的数据类型。) 数量(最多 65535 个值)。SET(VALUE1,VALUE2, ...):1、2、3、4 或 8 字节,取决于集合成员的最大数量(无等价的数据类型) (无等价的数据类型) 福州宏祺电子信息技术有限公司 第 4 页 二、Access数据和Sql Server数据导出㈠、把Access数据导出为文本文件:(以“罗斯文示例数据库”>“表”>“订单”为例)①、打开Access数据库,选择表中的“订单”,右击鼠标,弹出菜单项,如图1-1:图1-1②、选择“导出”后,弹出“将表订单导出为”窗口,如图1-2所示:图1-2③、输入文件名(建议与表同名,并建立与库同名的文件夹存放,以便知道是从何处导出的资料),“保存类型”为文本文件。单击导出按钮,弹出“导出文本向导”窗。如图1-3所示。 福州宏祺电子信息技术有限公司 第 5 页 图1-3④、选择“带分隔符”,单击“下一步”按钮,如图1-4所示。图1-4⑤、设定“字段分隔符”为其他‘|’(不用逗号,因为有的文本字段内容会带有逗号,这样生产的数据在导入数据库中会造成某些记录数据不符),“文本识别符”为{无}(因mysql导入命令无相应参数,若有文本识别符,则数据导入后相应字段值也会有),如图1-4。单击“完成”按钮,完成数据导出。如图1-5 福州宏祺电子信息技术有限公司 第 6 页 图1-5⑥、记下该表字段名称、数据类型等其他相关信息(如索引、主键等),如图1-6。图1-6⑦、完成数据导出后,要检查一下导出后的文本文件,是否导出的数据正确,确定一个记录是否在同一行上,如不是,则手工把回车键除掉。打开导出的文本文件,会发现Access中的货币类型数据有‘¥’字符,如图1-7所示。要把它给替换掉。查找内容输入‘¥’,替换为不输任何符(不要输入空格),然后“全部替换”。保存后退出。 福州宏祺电子信息技术有限公司 第 7 页 图1-7⑧、重复①至⑦步骤,把数据库中的其他表的数据导出。⑨、备份该数据库,把导出的文本数据和备份资料保存到其他地方。㈡、把Sql server数据导出为文本文件:(以Northwind>Orders表为例)①、打开企业管理器,选择“数据库”>“Northwind”,单击鼠标右键,选择“所有任务”>“导出数据”,如图2-1所示。弹出“DTS导入/导出向导”,选择“下一步”,弹出“选择数据源”窗口,如图2-2所示。图2-1 福州宏祺电子信息技术有限公司 第 8 页 图2-2 ②、“数据源”选择“用于SQL Server的Microsoft OLE DB 提供程序”,“数据库”选择要导的库名,这里为“Northwind”。如图2-2,选择“下一步”,弹出“选择目的”窗口。如图2-3所示。图2-4③、“目的”选择“文本文件”,输入文件名(建议与表同名,并建立与库同名的文件夹存放,以便知道是 福州宏祺电子信息技术有限公司 第 9 页 从何处导出的资料)及“.txt”后缀,“保存类型”为文本文件。如图2-4。单击“保存”按钮,弹出“指定表复制或查询”窗。如图2-5所示。图2-5 ④、选择“从源数据库复制表和视图”,单击“下一步”按钮。进入“选择目的的文件格式”窗口,如图2-6所示。图2-6⑤、“源”选择所要导出数据的表,“文件类型”为“ANSI”,“行分隔符”为“分号”,,“列分隔符”为“垂直条”(不用逗号,因为有的文本字段内容会带有逗号,这样生产的数据在导入数据库中会造成某些记录数据不符),文本限定符为“<无>”(因mysql导入命令无相应参数,若有文本识别符,则数据导入后相应字段值也会有)。如图2-6。按“下一步”,进入保存调度和复制包窗口,按具体情况选择调度时间,这里选择“立即执行”,按“下一步”,完成“DTS导入/导出”,如图2-7所示: 福州宏祺电子信息技术有限公司 第 10 页 图2-7⑥、记下该表字段名称、数据类型等其他相关信息(如索引、主键等),如图2-8。图2-8⑦、完成数据导出后,要检查一下导出后的文本文件,是否导出的数据正确。⑧、重复①至⑧步聚,把数据库中的其他表的数据导出。⑨、备份该数据库,把导出的文本数据和备份资料保存到其他地方。 福州宏祺电子信息技术有限公司 第 11 页 三、把数据导入到linux系统下的mysql数据库中把所有的数据都导成文本文档后,接下来的工作是在linux系统下导入到mysql中 ,前提是你在linux下的mysql环境已经搭建好了。下面介绍如何在linux系统下把数据导入mysql库中。㈠、安装phpMyAdminphpMyAdmin是一套WEB化界面的MySQL管理系统,需要PHP脚本和WEB的支持,它可以方便的浏览与管理数据库、数据表与资料、权限管理、备份还原、资料导入导出等等。功能强大,并且非常适合初次接触SQL的朋友使用。首先你要保证你的系统安装有WEB服务器,并且服务器支持PHP,并且已经安装了MySQL数据库(具体配置因为篇幅有限暂不介绍,需要的朋友可以通过网上获取资料,或咨询我们。RedFlag Advanced Server支持PHP并自带有MySQL数据库)。从网上下载。①、在控制台输入“tar zvxf –C /var/www”,将其解压缩到你的WEB服务器根目录下(此处为“/var/www”),如图3-1。图3-1②、按ALT+F2,打开“运行命令”窗,输入“rfapache”命令(如图3-2),打开apache配置工具(如图3-3)。图3-2③、添加虚拟主机。单击鼠标右键,选择“添加虚拟主机”,如图3-3。弹出“虚拟主机创建向导”窗。 图3-3 福州宏祺电子信息技术有限公司 第 12 页 ④、在“主机名”中输入IP地址,选择基于IP的虚拟主机,如图3-4所示;选择“下一步”,设置端口(默认80),如图3-5所示;选择“下一步”,设置“虚拟站点主目录”, 目录为解压后的phpMyAdmin目录,如图3-6所示。选择“下一步”,设置“虚拟站点访问权限”,如图3-7;完成“虚拟主机创建向导”,如图3-8。图3-4图3-5图3-6 福州宏祺电子信息技术有限公司 第 13 页 图3-7图3-8 ⑤、启动创建的虚拟主机。如图3-9所示。图3-9 福州宏祺电子信息技术有限公司 第 14 页 ㈡、建立目标数据库及所属的表结构①、在浏览器中访问WEB服务器:127.0.0.1或创建的虚拟主机IP,如果没有问题应该可以看到如图3-10的页面内容。(有关phpMyAdmin的操作可以通过网上获取资料,或咨询我们)。创建一个新的数据库,输入在Access或Sql Server中导出的数据库名,按创建。进入创建新表页面,如图3-11所示。图3-10②、如图3-11中,左边的主目录已经变成刚创建的数据库名。在右边中输入要创建的新表及字段数。按执行,显示如图3-12的创建表结构页面。图3-11 ③、在图3-12的创建表结构页面中输入字段名,选择相应对照修改后的数据类型(参照表一),数据长度等 福州宏祺电子信息技术有限公司 第 15 页 字段资料(注意:DATETIME数据类型不要输入长度,否则会提示错误)。确认后按“保存”,生成表结构如图3-13所示。若要修改,在操作栏中选择相应操作修改。(注意:生成的表的字段的顺序要与原表的顺序相同,以免造成导入数据后的数据不符)。图3-12图3-13④、选择主目录中已创建的数据库,重复②和③步骤创建数据库中的其他各表结构。(创建、修改表结构也可在控制台进入mysql后用SQL语句操作,这里不详细介绍)。㈢、把数据导入mysql数据库中建好目标数据库和所属的表结构后,就只缺数据了。①、在Mysql数据库中,一般有两种方法来处理数据的导入: 福州宏祺电子信息技术有限公司 第 16 页 ⑴、在mysql中使用load data infile “filename” into table tablename;fields enclosed by ‘char’ 指明列值应包括在指定的字符中。通常用引号。缺省时,假定列值不包括在任何字符中。fields escaped by ‘char’ 表示用于转义特殊字符的转义符。缺省时表示无转义符。 fields terminated ‘char’ 指定分隔列的字符。缺省时假定列值由制表符分隔。 lines terminated by ‘str’ 指定结束输入行的串(可以是多字符的)。缺省时假定由换行符终止行。进入mysql,用“use northwind;”进入northwind库,用“load data infile“/var/lib/mysql/northwind/”into table orders fields terminated by ‘|’ lines terminated by ‘;’;”,把文本文件导入到表orders中,字段分隔符为“|”,行分隔符为“;”(请参阅数据导出)。如图3-14所示。图3-14⑵、在控制台直接使用mysqlimport实用程序 mysqlimport是mysql的一个导入数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可供选择。这个工具把一个文本文件(text file)导入到你指定的数据库和表中。Mysqlimport :里是我们要导入数据的文本文件,而databasename是我们要操作的数据库,数据库中的表名是tablename,这里文本文件的数据格式必须与tablename表中的记录格式一致,否则mysqlimport命令将会出错。 其中文本文件必须与表名同名。上面的例子中,都只用到两个参数,并没有用到更多的选项,下面介绍mysqlimport的选项:-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息-f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据-i or --ignore mysqlimport跳过或者忽略那些有相同唯一关键字的行,导入文件中的数据将被忽略。-l or -lock-tables 数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。-r or -replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。--fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。默认的情况下数据是没有被字符括起的。--fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。默认的分隔符是跳格符(Tab) 福州宏祺电子信息技术有限公司 第 17 页 --lines-terminated- by=str 此选项指定文本文件中行与行之间数据的分隔字符串或者字符。默认的情况下mysqlimport以newline为行分隔符。您可以选择用一个字符串来替代一个单个的字符:一个新行或者一个回车。mysqlimport命令常用的选项还有-v 显示版本(version), -p 提示输入密码(password)等。举例说明:在控制台中输入“mysqlimport northwind /var/lib/mysql/northwind/ –d --fields-terminated-by=’|’ –lines-terminated-by=’;’” ,如图3-15所示。其中northwind 是数据名,是文本文件必须与表名相同,字段分隔符为‘|’,行分隔符为‘;’(请参阅数据导出)。图3-15②、使用⑴或⑵方法把文本文件中的数据导入相应数据库表中。③、使用phpMyAdmin检查导入的数据是否正确。在主目录中选择数据库(northwind),双击表(orders),单击浏览,出现如图3-16所示页面,检核数据是否正确。图3-16④、重复步骤②和③导入各表数据。2004年7月12日


发布评论