计算机网站调试数据库转换技术案例汇集.docx

上传人:b****5 文档编号:8792426 上传时间:2023-05-15 格式:DOCX 页数:15 大小:25.81KB
下载 相关 举报
计算机网站调试数据库转换技术案例汇集.docx_第1页
第1页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第2页
第2页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第3页
第3页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第4页
第4页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第5页
第5页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第6页
第6页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第7页
第7页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第8页
第8页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第9页
第9页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第10页
第10页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第11页
第11页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第12页
第12页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第13页
第13页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第14页
第14页 / 共15页
计算机网站调试数据库转换技术案例汇集.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机网站调试数据库转换技术案例汇集.docx

《计算机网站调试数据库转换技术案例汇集.docx》由会员分享,可在线阅读,更多相关《计算机网站调试数据库转换技术案例汇集.docx(15页珍藏版)》请在冰点文库上搜索。

计算机网站调试数据库转换技术案例汇集.docx

计算机网站调试数据库转换技术案例汇集

网站调试数据库转换技术案例汇集

 

Phpmysqlsqlmssqlaccess

如何把*.mdb转换成mysql?

1

一、Access-to-mysqlpro2

二、关于数据导入mysql时的乱码的解决方案3

把Access的数据导入MySQL的简单方案5

Access转换为MSSQL有什么要注意的地方(代码篇)6

ACCESS改为SQL需要注意哪几个地方(概述)9

ACCESS转MYSQL三种方法,不算是技巧?

10

mysql基本命令11

 

如何把*.mdb转换成mysql?

我前几天刚做这件比较麻烦的事,现在我可以告诉你几个可行的办法但都不是一下子就能完成的。

 

1。

我当时用的是BCB,所以我利用他自带的datapump,再安装并配置了myodbc后,直接把.mdb中的表都导入mysql中. 其中的问题是如果你碰到带有mysql不支持的字段类型时,该张表就导不过去了。

例如:

littletime,money等等 

2。

你可以把*.mdb的表结构导出,可以利用sql server(导出为.sql),再另存为.txt(里面就是数据表的结构)。

再在mysql提示下打入 \.   路径+*.txt 

他就会创建所有的表,前提是还要先create一个空的数据库.问题在于*.sql导出的数据结构是标准的sql语句,但是mysql不认识,所以你要稍微地去调整和修改一下生成的*.txt. 

快速进行Access数据库转成mysql数据库及mysql导入中文数据乱码问题的解决方案

一、Access-to-mysqlpro

Access-to-mysqlpro是一个可以直接将Access文件导入mysql中的软件,其基本用法参见了某人的某文如下:

这个要用到 Access-to-MySQL Pro 这个软件。

网上有下载,并且有破解版的。

问题是如果直接用它来把ACCESS文件导入MYSQL会出现乱码。

所以我试下以下方法,虽然麻烦点,但是还可是可行。

5.1 用Access-to-MySQL Pro来把数据库导出为*.sql 文件。

A) 运行Access-to-MySQL Pro的时候选ADVANCE MODE,下一步;

B) 选择STORE into  dump file, 就是保存为*.sql文件,下一步;

C) 选择目标MYSQL的版本,选默认值,下一步;

D) 这下要选MS ACCESS USER-LEVElL SECURITY FILE,这个文件一般在你的OFFICE安装目录下。

我的是在G:

\Program Files\Microsoft Office\Office\SYSTEM.MDW , 用户名填 ADMIN , 下一步;

E) 选择你要转换的ACCESS MDB文件以及保存路径,点下一步,就可以生成.sql 文件了。

我生成的是C:

\test.sql。

5.2 把刚才生成的文件转成UTF-8格式。

 用记事本打开这个文件,选另存为,编码选UTF-8,覆盖保存就OK了。

5.3 在MYSQL导入该文件

我不在phpMyAdmin导入文件是因为phpMyAdmin默认只能导入17M的文件。

懒得改相应的设置,MYSQL命令行方便些。

进入DOS窗口,转到MYSQL安装目录的BIN子目录下。

我这里是G:

\Program Files\xapp\xampp\mysql\bin.

A) mysql -uroot -p

  password:

这里输入密码

B) CREATE DATABASE hewang;

C) use hewang;

E) source c:

\test.sql;

有可能会出现错误提示音,不管他,等它再次出现提示符的时候,导入成功。

我用这种方法导入一个50M的文件没有问题,只是提示音响了十分钟。

可以在phpMyAdmin下查看数据是否正确,如果没有乱码就OK了。

二、关于数据导入mysql时的乱码的解决方案

当然上文是基于php下的乱码解决方案,我在MySQLCommandLineClient下使用>sourcec:

\test.sql时导入有中文字串的字段值的时候,从SQLManager中查看记录都是乱码。

我的解决方案如下:

由Access-to-mysql生成的sql文件中有类似如下文本内容:

CREATE TABLE `userinfo` (

  `id` INT NOT NULL AUTO_INCREMENT,

  `name` VARCHAR(50),

      'pwd'VARCHAR(20),

   PRIMARY KEY (`id`)

) TYPE=InnoDB;

注意红色的文本,修改成如下:

CREATE TABLE `userinfo` (

  `id` INT NOT NULL AUTO_INCREMENT,

  `name` VARCHAR(50),

      'pwd'VARCHAR(20),

   PRIMARY KEY (`id`)

) ENGINE=InnoDBDEFAULTCHARSET=gb2312;

接下来,还要在文件中的LOCKTABLES`userinfo`WRITE;后面,INSERTINTO`userinfo`....文本的前面增加如下一行,如下:

LOCK TABLES `userinfo` WRITE;

SET NAMES 'gb2312';

INSERT INTO `userinfo` VALUES

这样修改这个文件以后,还要将它以ANSI编码重新保存。

这样操作以后,在MySQLCommandLineClient中使用>sourcetest.sql后导入mysql数据的字串都是正确的了。

并且,所有文本相关的编码也都是gb2312的编码。

把Access的数据导入MySQL的简单方案

我们大家都知道在建设网站的实际操作过程中,对于一些数据的导入MySQL数据库及导出经常需要进行处理。

  在MySQL数据库中,一般有两种方法来处理数据的导出:

  1.使用select*fromtable_nameintooutfile“file_name”;

  2.使用MySQLdump实用程序

  下面我们来举例说明:

  假设我们的数据库中有一个库为samp_db,一个表为samp_table。

现在要把samp_table的数据导出。

则我们可以利用以下方法来实现:

  在MySQL提示符下打入select*fromsamp_tableintooutfile“file_name”;

  在系统命令提示符下打入MySQLdump–urootsamp_dbsamp_table>samp.sql

  (当然MySQLdump有很多选项.如-d表示只导出表结构; -t表示只导入表数据)

  如何来处理数据的导入:

一般我们在系统命令提示符下打入MySQLimport–urootsamp_dbsamp_table.txt(注意:

这个TXT文件名必须以表的名字命名)。

对于MySQLdump导出的数据我们还可以用MySQL–urootsamp_db

在MySQL提示符下我们用Loaddatainfile“file_name”intotablesamp_table。

  另外除了以上方法,对于移动后的数据库系统与原系统一致的前提下,我们可以通过文件的拷贝来实现数据的导入与导出.首先我们用MySQLadmin–urootvariables(在系统命令提示符下)或者用showvariables;(在MySQL提示符下)来找到datadir。

如在我的环境下,此目录在c:

\MySQL\data。

然后对其中的一些文件进行拷贝。

一切ok!

  有了以上知识后,我们进入正题:

如何把ACCESS的数据导入MySQL数据库中。

  首先我们把数据从ACCESS中导出为文本文件。

在导出过程中注意选择好字段分隔符和文本标识符,且查看一下文本文件,确定一个记录是否在同一行上,如不是,则手工把回车键除掉。

假如我们导出的文本文件为c:

\samp_table.txt。

其内容如下:

  1.张新化,男

  2.江先进,女

  接下来我们用MySQLimport–uroot–fields-terminated-by=”\,”samp_dbsamp_table.txt,或者用loaddatainfile“c:

\\samp_table.txt”intotablesamp_tablefieldsterminatedby“\,”;去试一下(注意转义字符),是不是一切ok!

如果还不行,请仔细看一下具体命令的帮助。

下面列出一些选项:

  fields-enclosed-by=char指明列值应包括在指定的字符中。

通常用引号。

缺省时,假定列值不包括在任何字符中。

  fields-escaped-by=char表示用于转义特殊字符的转义符。

缺省时表示无转义符。

  fields-terminated-by=char指定分隔列的字符。

缺省时假定列值由制表符分隔。

  lines-terminated-by=str指定结束输入行的串(可以是多字符的)。

缺省时假定由换行符终止行

Access转换为MSSQL有什么要注意的地方(代码篇)

Access:

Now()

MSSQL:

GetDate()

-------------------

Access:

mid

MSSQL:

SubString(expression,start,length)

expression-要搜索的目标,但不能使用聚合函数

start-指定字符串的开始位置

length-指定获取字符串的长度

-------------------

Asp:

Instr

MSSQL:

CharIndex(expression1,expression2)

参数的位置和Asp的Instr刚好相反

-------------------

Asp:

Dim

MSSQL:

Declare@variableDataType

举例:

Declare@VarNameVarChar(50)   声明变量@VarName为VarChar类型,长度为50

-------------------

赋值:

Declare@VarNameVarChar(10)

Set@VarName='ThisisContent'

-------------------

数据类型转换函数,如Asp的Cstr,Clng

MSSQL:

Cast(expressionAsDataType)

expression为目标对象

DataType为要转换成的数据类型

举例:

Declare@VarNameVarChar(20)  --声明一个@VarName变量为VarChar类型,长度20

Set@VarName='2'            --给@VarName赋值

Cast(@VarNameAsInt)        --转换成Int类型数据

-------------------

字符串连接符号:

+

-------------------

循环:

WhileBoolean_expression

   Begin

       --要执行的语句

   End

Boolean_expression为布尔表达式,只要指定的条件为真,就循环执行语句

-------------------

if的用法

if(Boolean_expression)

   Begin

       --执行True分支....

   End

if....else....的用法

if(Boolean_expression)

   Begin

       --执行True分支....

   End

Else

   Begin

       --执行False分支

   End

ACCESS改为SQL需要注意哪几个地方(概述)

数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。

所有的默认值都丢失了。

主要是数字类型和日期类型。

所有now(),time(),date()要改成getdate()。

所有datediff('d',time1,time2)要改成datediff(day,time1,time2)

有可能一些true/false类型不能使用,要变为1/0。

备注类型要通过cast(columnasvarchar)来使用。

CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。

isnull(rowname)要改成rowname=null

ACCESS的数据库中的自动编号类型在转化时,sqlserver并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

转化时,跟日期有关的字段,SQLSERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。

有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。

对此两种数据库进行操作的sql语句不全相同,例如:

在对ACCESS数据库进行删除纪录时用:

"delete*fromuserwhereid=10",而对SQLSERVER数据库进行删除是用:

"deleteuserwhereid=10".

日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQLSERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQLSERVER数据库处理中,却不能用。

ACCESS转MYSQL三种方法,不算是技巧?

第1种,较笨办法,先把access读出来,然后转放mysql

如果你觉得二种数据库,放到一起访问,你不方便弄

就先读取出来,保存有一定格式的文本文件,然后读取,存入mysql

2种,先把access转到mssql,然后从mssql转到mysql

 

mysql基本命令

启动:

netstartmySql;

  进入:

mysql-uroot-p/mysql-hlocalhost-uroot-pdatabaseName;

  列出数据库:

showdatabases;

  选择数据库:

usedatabaseName;

  列出表格:

showtables;

  显示表格列的属性:

showcolumnsfromtableName;

  建立数据库:

sourcefileName.txt;

  匹配字符:

可以用通配符_代表任何一个字符,%代表任何字符串;

  增加一个字段:

altertabletabelNameaddcolumnfieldNamedateType;

  增加多个字段:

altertabletabelNameaddcolumnfieldName1dateType,addcolumnsfieldName2dateType;

  多行命令输入:

注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;

  增加一个管理员帐户:

grantallon*.*touser@localhostidentifiedby"password";

  每条语句输入完毕后要在末尾填加分号';',或者填加'\g'也可以;

  查询时间:

selectnow();

  查询当前用户:

selectuser();

  查询数据库版本:

selectversion();

  查询当前使用的数据库:

selectdatabase();

  

  1、删除student_course数据库中的students数据表:

  rm-fstudent_course/students.*

  

  2、备份数据库:

(将数据库test备份)

  mysqldump-uroot-ptest>c:

\test.txt

  备份表格:

(备份test数据库下的mytable表格)

  mysqldump-uroot-ptestmytable>c:

\test.txt

  将备份数据导入到数据库:

(导回test数据库)

  mysql-uroot-ptest

  

  3、创建临时表:

(建立临时表zengchao)

  createtemporarytablezengchao(namevarchar(10));

  

  4、创建表是先判断表是否存在

  createtableifnotexistsstudents(……);

  

  5、从已经有的表中复制表的结构

  createtabletable2select*fromtable1where1<>1;

  

  6、复制表

  createtabletable2select*fromtable1;

  

  7、对表重新命名

  altertabletable1renameastable2;

  

  8、修改列的类型

  altertabletable1modifyidintunsigned;//修改列id的类型为intunsigned

  altertabletable1changeidsidintunsigned;//修改列id的名字为sid,而且把属性修改为intunsigned

  

  9、创建索引

  altertabletable1addindexind_id(id);

  createindexind_idontable1(id);

  createuniqueindexind_idontable1(id);//建立唯一性索引

  

  10、删除索引

  dropindexidx_idontable1;

  altertabletable1dropindexind_id;

  

  11、联合字符或者多个列(将列id与":

"和列name和"="连接)

  selectconcat(id,':

',name,'=')fromstudents;

  

  12、limit(选出10到20条)<第一个记录集的编号是0>

  select*fromstudentsorderbyidlimit9,10;

  

  13、MySQL不支持的功能

  事务,视图,外键和引用完整性,存储过程和触发器

  

  

  14、MySQL会使用索引的操作符号

  <,<=,>=,>,=,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:

显示列名字或者"const"(不明白什么意思);

  7)rows:

显示MySQL认为在找到正确结果之前必须扫描的行数;

  8)extra:

MySQL的建议;

  

  17、使用较短的定长列

  1)尽可能使用较短的数据类型;

  2)尽可能使用定长数据类型;

  a)用char代替varchar,固定长度的数据处理比变长的快些;

  b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;

  c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。

使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;

  d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;

  

  18、使用notnull和enum

  尽量将列定义为notnull,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;

  如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;

  

  19、使用optimizetable

  对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。

具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。

可以通过使用optimizetable来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。

optimizetable可以用于MyISAM和BDB类型的数据表。

实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;

  

  20、使用procedureanalyse()

  可以使用procedureanalyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedureanalyse()就可以了;例如:

  select*fromstudentsprocedureanalyse();

  select*fromstudentsprocedureanalyse(16,256);

  第二条语句要求procedureanalyse(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2