网站调试数据库转换技术案例汇集_第1页
网站调试数据库转换技术案例汇集_第2页
网站调试数据库转换技术案例汇集_第3页
网站调试数据库转换技术案例汇集_第4页
网站调试数据库转换技术案例汇集_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE 16 HYPERLINK / 网站调试数据库转换技术案例汇集Php mysql sql mssql access TOC o 1-3 h z u HYPERLINK l _Toc303576940 如何把 *.mdb 转换成 mysql? PAGEREF _Toc303576940 h 1 HYPERLINK l _Toc303576941 一、Access-to-mysql pro PAGEREF _Toc303576941 h 2 HYPERLINK l _Toc303576942 二、关于数据导入mysql时的乱码的解决方案 PAGEREF _Toc303576942

2、 h 3 HYPERLINK l _Toc303576943 把Access的数据导入MySQL的简单方案 PAGEREF _Toc303576943 h 5 HYPERLINK l _Toc303576944 Access转换为 MS SQL 有什么要注意的地方 (代码篇) PAGEREF _Toc303576944 h 6 HYPERLINK l _Toc303576945 ACCESS改为SQL需要注意哪几个地方(概述) PAGEREF _Toc303576945 h 9 HYPERLINK l _Toc303576946 ACCESS转MYSQL三种方法,不算是技巧? PAGEREF

3、_Toc303576946 h 10 HYPERLINK l _Toc303576947 mysql 基本命令 PAGEREF _Toc303576947 h 11如何把 *.mdb 转换成 mysql?我前几天刚做这件比较麻烦的事,现在我可以告诉你几个可行的办法但都不是一下子就能完成的。 1。我当时用的是BCB,所以我利用他自带的datapump,再安装并配置了myodbc后,直接把.mdb中的表都导入mysql中. 其中的问题是如果你碰到带有mysql不支持的字段类型时,该张表就导不过去了。例如:littletime,money等等 2。你可以把*.mdb的表结构导出,可以利用sql se

4、rver(导出为.sql),再另存为.txt(里面就是数据表的结构)。再在mysql提示下打入 . 路径+*.txt 他就会创建所有的表,前提是还要先create一个空的数据库.问题在于*.sql导出的数据结构是标准的sql语句,但是mysql不认识,所以你要稍微地去调整和修改一下生成的*.txt. 快速进行Access数据库转成mysql数据库及mysql导入中文数据乱码问题的解决方案一、Access-to-mysql pro Access-to-mysql pro是一个可以直接将Access文件导入mysql中的软件,其基本用法参见了某人的某文如下:这个要用到Access-to-MySQL

5、Pro这个软件。网上有下载,并且有破解版的。问题是如果直接用它来把ACCESS文件导入MYSQL会出现乱码。所以我试下以下方法,虽然麻烦点,但是还可是可行。5.1用Access-to-MySQLPro来把数据库导出为*.sql文件。A)运行Access-to-MySQLPro的时候选ADVANCEMODE,下一步;B)选择STOREintodumpfile,就是保存为*.sql文件,下一步;C)选择目标MYSQL的版本,选默认值,下一步;D)这下要选MSACCESSUSER-LEVElLSECURITYFILE,这个文件一般在你的OFFICE安装目录下。我的是在G:ProgramFilesMi

6、crosoftOfficeOfficeSYSTEM.MDW,用户名填ADMIN,下一步;E)选择你要转换的ACCESSMDB文件以及保存路径,点下一步,就可以生成.sql文件了。我生成的是C:test.sql。5.2把刚才生成的文件转成UTF-8格式。用记事本打开这个文件,选另存为,编码选UTF8,覆盖保存就OK了。5.3在MYSQL导入该文件我不在phpMyAdmin导入文件是因为phpMyAdmin默认只能导入17M的文件。懒得改相应的设置,MYSQL命令行方便些。进入DOS窗口,转到MYSQL安装目录的BIN子目录下。我这里是G:ProgramFilesxappxamppmysqlbin

7、.A)mysql-uroot-ppassword:这里输入密码B)CREATEDATABASEhewang;C)usehewang;E)sourcec:test.sql;有可能会出现错误提示音,不管他,等它再次出现提示符的时候,导入成功。我用这种方法导入一个50M的文件没有问题,只是提示音响了十分钟。可以在phpMyAdmin下查看数据是否正确,如果没有乱码就OK了。二、关于数据导入mysql时的乱码的解决方案当然上文是基于php下的乱码解决方案,我在MySQL Command Line Client下使用source c:test.sql时导入有中文字串的字段值的时候,从SQL Manage

8、r中查看记录都是乱码。我的解决方案如下:由Access-to-mysql生成的sql文件中有类似如下文本内容:CREATETABLEuserinfo(idINTNOTNULLAUTO_INCREMENT,nameVARCHAR(50),pwd VARCHAR(20),PRIMARYKEY(id)TYPE=InnoDB;注意红色的文本,修改成如下:CREATETABLEuserinfo(idINTNOTNULLAUTO_INCREMENT,nameVARCHAR(50),pwd VARCHAR(20),PRIMARYKEY(id)ENGINE=InnoDB DEFAULT CHARSET=gb2

9、312;接下来,还要在文件中的LOCK TABLES userinfo WRITE;后面,INSERT INTO userinfo文本的前面增加如下一行,如下:LOCKTABLESuserinfoWRITE;SETNAMESgb2312;INSERTINTOuserinfoVALUES这样修改这个文件以后,还要将它以ANSI编码重新保存。这样操作以后,在MySQL Command Line Client中使用source test.sql后导入mysql数据的字串都是正确的了。并且,所有文本相关的编码也都是gb2312的编码。 把Access的数据导入MySQL的简单方案我们大家都知道在建设网

10、站的实际操作过程中,对于一些数据的导入MySQL数据库及导出经常需要进行处理。 在MySQL数据库中,一般有两种方法来处理数据的导出:1. 使用select * from table_name into outfile “file_name”;2. 使用MySQLdump实用程序下面我们来举例说明:假设我们的数据库中有一个库为samp_db,一个表为samp_table。现在要把samp_table的数据导出。则我们可以利用以下方法来实现:在MySQL提示符下打入select * from samp_table into outfile “file_name”;在系统命令提示符下打入MySQL

11、dump u root samp_db samp_table samp.sql(当然MySQLdump有很多选项.如 -d 表示只导出表结构;-t 表示只导入表数据)如何来处理数据的导入:一般我们在系统命令提示符下打入MySQLimport u root samp_db samp_table.txt(注意:这个TXT文件名必须以表的名字命名)。对于MySQLdump导出的数据我们还可以用MySQL u root samp_db c:test.txt 备份表格:(备份test数据库下的mytable表格) mysqldump -u root -p test mytablec:test.txt 将

12、备份数据导入到数据库:(导回test数据库) mysql -u root -p test 3、创建临时表:(建立临时表zengchao) create temporary table zengchao(name varchar(10); 4、创建表是先判断表是否存在 create table if not exists students(); 5、从已经有的表中复制表的结构 create table table2 select * from table1 where 11; 6、复制表 create table table2 select * from table1; 7、对表重新命名 alt

13、er table table1 rename as table2; 8、修改列的类型 alter table table1 modify id int unsigned;/修改列id的类型为int unsigned alter table table1 change id sid int unsigned;/修改列id的名字为sid,而且把属性修改为int unsigned 9、创建索引 alter table table1 add index ind_id (id); create index ind_id on table1 (id); create unique index ind_id

14、 on table1 (id);/建立唯一性索引 10、删除索引 drop index idx_id on table1; alter table table1 drop index ind_id; 11、联合字符或者多个列(将列id与:和列name和=连接) select concat(id,:,name,=) from students; 12、limit(选出10到20条) select * from students order by id limit 9,10; 13、MySQL不支持的功能 事务,视图,外键和引用完整性,存储过程和触发器 14、MySQL会使用索引的操作符号 ,=,

15、=,between,in,不带%或者_开头的like 15、使用索引的缺点 1)减慢增删改数据的速度; 2)占用磁盘空间; 3)增加查询优化器的负担; 当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案; 16、分析索引效率 方法:在一般的SQL语句前加上explain; 分析结果的含义: 1)table:表名; 2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的; 3)possible_keys:查询可以利用的索引名; 4)key:实际使用的索引; 5)key_len:索引中被使用部分的长度(字节); 6)ref

16、:显示列名字或者const(不明白什么意思); 7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数; 8)extra:MySQL的建议; 17、使用较短的定长列 1)尽可能使用较短的数据类型; 2)尽可能使用定长数据类型; a)用char代替varchar,固定长度的数据处理比变长的快些; b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能; c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了; d)对于MyISAM类型的数据表,虽然转换

17、成固定长度的数据列可以提高性能,但是占据的空间也大; 18、使用not null和enum 尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询; 如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的; 19、使用optimize table 对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对bl

18、ob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimize table来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimize table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表; 20、使用procedure analyse() 可以使用procedure analyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedure analyse()就可以了;例如: select * from students procedure analyse(); select * from students procedure analyse(16,256); 第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长; 21、使用查询缓存 1)查询缓存的工作方式: 第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。 2)配置缓存参数: 变量:query_cache _type,查询缓存的操作模式。有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论