第七章导入和导出精选文档.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第七章导入和导出精选文档.ppt》由会员分享,可在线阅读,更多相关《第七章导入和导出精选文档.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章导入和导出本讲稿第一页,共四十二页本章重点q掌握数据导入和导出的方法q不同方法之间的区别本讲稿第二页,共四十二页数据导出方法q方法一:使用selectintooutfilefilename语句q方法二:使用mysqldump实用程序本讲稿第三页,共四十二页两种方法的区别:使用select方法输出的文件只有数据,没有表结构,而且一次只能处理一个表,要处理多个表则不是很容易,不过可以将select命令写入一个sql文件,然后在命令行下执行即可在(mysqldump命令的讲解中可以看到如何执行这个sql文件);mysqldump可以导出纯数据文本或只导出含有创建表结构而没有数据的sql文件,同
2、时可以对库中的多个表进行操作,比select的方法灵活,强大的多。select适合利用程序进行处理,而mysqldump则为手工操作,同时提供强大的导出功能,并且可以处理整个库,或库中指定的多表。4本讲稿第四页,共四十二页1使用selectintooutfile语句q只能导出表的数据,不能导出表结构q语法SELECT*FROMTABLE_NAMEINTOOUTFILEfilenameq要求:用户拥有file的权限5本讲稿第五页,共四十二页q使用样例:mysqlusecookbook;DatabaseChangedmysqlselect*fromstu_infointooutfilec:/a.t
3、xt;QueryOK,12rowsaffected(0.05sec)这样就把stu_info表的数据导在了a.txt文件里面6本讲稿第六页,共四十二页指定分隔符q使用select命令还可以指定导出文件时,字段之间的分隔字符,转义字符,包括字符,及记录行分隔字符。FIELDSTERMINATEDBY字段分割字符,默认为tOPTIONALLYENCLOSEDBY字段用什么字符包括,默认为无,如果使用了OPTIONALLY,则只有CHAR和VERCHAR被包括;ESCAPEDBY转义字符,默认为LINESTERMINATEDBY行分隔符,默认无7本讲稿第七页,共四十二页实例qmysqlselect*
4、fromstu_infointooutfilec:/a1.txtfieldsterminatedby,enclosedby“;QueryOK,12rowsaffected(0.06sec)结果可能如下:200801001,杨振军,1,N,男200801002,白云,1,N,女200801003,吴楠,2,N,女q看到每个字段都用,进行了分隔,且每个字段都用”包括了起来。注意,行记录分隔符可以是一个字符串,请大家自行测试。不过,如果输出文件在指定目录下如果存在的话就会报错,先删除再测试即可。8本讲稿第八页,共四十二页2、使用mysqldump实用程序先举个简单的例子C:Userszpmysqld
5、ump-uroot-pcookbookd:a.sqlEnterpassword:可能结果如下:-MySQLdump10.13Distrib5.5.9,forWin32(x86)-Host:localhostDatabase:cookbook-Serverversion5.5.9/*!40101SETOLD_CHARACTER_SET_CLIENT=CHARACTER_SET_CLIENT*/;/*!40101SETOLD_CHARACTER_SET_RESULTS=CHARACTER_SET_RESULTS*/;/*!40101SETOLD_COLLATION_CONNECTION=COLLA
6、TION_CONNECTION*/;/*!40101SETNAMESutf8*/;/*!40103SETOLD_TIME_ZONE=TIME_ZONE*/;/*!40103SETTIME_ZONE=+00:00*/;9本讲稿第九页,共四十二页如何解决乱码qshowvariableslike%char%;qcharacter-set-databasegb2312q在导出语句中在cookbook之前增加default-character-set=gb2312本讲稿第十页,共四十二页字符校对q服务器字符集和校对MySQL服务器有一个服务器字符集和一个服务器校对规则,它们均不能设置为空MySQL按照如
7、下方法确定服务器字符集和服务器校对规则:当服务器启动时根据有效的选项设置根据运行时的设定值q在服务器级别,确定方法很简单。当启动mysqld时,根据使用的初始选项设置来确定服务器字符集和校对规则。可以使用-default-character-set设置字符集,并且可以在字符集后面为校对规则添加-default-collation。如果没有指定一个字符集,那就与-default-character-set=latin1相同。如果你仅指定了一个字符集(例如,latin1),但是没有指定一个校对规则,那就与-default-charset=latin1-default-collation=latin
8、1_swedish_ci相同,因为latin1_swedish_ci是latin1的默认校对规则。因此,以下三个命令有相同的效果:shellmysqldshellmysqld-default-character-set=latin1shellmysqld-default-character-set=latin1-default-collation=latin1_swedish_ci本讲稿第十一页,共四十二页q数据库字符集和校对每一个数据库有一个数据库字符集和一个数据库校对规则,它不能够为空。CREATEDATABASE和ALTERDATABASE语句有一个可选的子句来指定数据库字符集和校对规则
9、:本讲稿第十二页,共四十二页q表字符集和校对每一个表有一个表字符集和一个校对规则,它不为空。为指定表字符集和校对规则,CREATETABLE和ALTERTABLE语句有一个可选的子句:CREATETABLEtbl_name(column_list)DEFAULTCHARACTERSETcharset_nameCOLLATEcollation_name本讲稿第十三页,共四十二页q列字符集和校对每一个“字符”列(即,CHAR、VARCHAR或TEXT类型的列)有一个列字符集和一个列校对规则,它不能为空。列定义语法有一个可选子句来指定列字符集和校对规则:col_nameCHAR|VARCHAR|TE
10、XT(col_length)CHARACTERSETcharset_nameCOLLATEcollation_name例如:CREATETABLETable1(column1VARCHAR(5)CHARACTERSETlatin1COLLATElatin1_german1_ci);MySQL按照下面的方式选择列字符集和校对规则:1.如果指定了CHARACTERSETX和COLLATEY,那么采用CHARACTERSETX和COLLATEY。2.如果指定了CHARACTERSETX而没有指定COLLATEY,那么采用CHARACTERSETX和CHARACTERSETX的默认校对规则。3.否则,
11、采用表字符集和服务器校对规则。CHARACTERSET和COLLATE子句是标准的SQL。本讲稿第十四页,共四十二页q不同的编码格式会导致同一字符,在不同字符集下的编码会不同。同样同一编码在不同的字符集中代码的字符也不相同。当你的MySQL返回的字符串的编码格式(字符集)与你的客户工具程序(mysql,php,querybrowser,.)当前使用的字符集不同时,就会造成乱码。比如一个英国朋友告诉你Long,当一位中国小学生看到后就会告诉你“龙”而不是“长”本讲稿第十五页,共四十二页qMySQL中默认字符集的设置有四级:服务器级,数据库级,表级。最终是字段级的字符集设置。注意前三种均为默认设置
12、,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用showcreatetabletable;或showfullfieldsfromtableName;来检查当前表中字段的字符集设置。qMySQL中关于连接环境的字符集设置有Client端,connection,results通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。本讲稿第十六页,共四十二页乱码后需要检查的信息q1数据库表中字段的字符集设置。showcreatetableTa
13、bleName或showfullcolumnsfromtableNamemysqlshowcreatetablestu_info;CREATETABLEstu_info(idvarchar(20)NOTNULLDEFAULT,namevarchar(20)DEFAULTNULL,classvarchar(10)DEFAULTNULL,birth_placeint(11)DEFAULTNULL,sexchar(2)DEFAULTNULL,PRIMARYKEY(id)ENGINE=InnoDBDEFAULTCHARSET=gb2312本讲稿第十七页,共四十二页qshowfullcolumnsfro
14、mstu_info;本讲稿第十八页,共四十二页q2当前联接系统参数qshowvariableslikechar%+-+-|Variable_name|Value+-+-|character_set_client|utf8|character_set_connection|utf8|character_set_database|gb2312|character_set_filesystem|binary|character_set_results|utf8|character_set_server|latin1|character_set_system|utf8|character_sets_d
15、ir|C:ProgramFile+-+-本讲稿第十九页,共四十二页q中文,请确保表中该字段的字符集为中文兼容:big5|Big5TraditionalChinesegb2312|GB2312SimplifiedChinesegbk|GBKSimplifiedChineseutf8|UTF-8Unicodeq确保,联接参数与这个字段字符集一致本讲稿第二十页,共四十二页qMySQLdump工具很多方面类似相反作用的工具MySQLimport。它们有一些同样的选项。但MySQLdump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。
16、这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。21本讲稿第二十一页,共四十二页q导出创建表结构和插入数据的SQL语句语法:mysqldump连接信息数据库表1表2路径文件名.sql如:mysqldumpurootpcookbookc:cookbook.sqlq只
17、导出创建表结构的SQL语句语法:mysqldump连接信息d数据库表1表2路径文件名.sql如:mysqldumpurootpdcookbookstu_infof:backupstu_info.sqlq导出表的SQL语句语法:mysqldump连接信息数据库表1表2路径文件名.sql如:mysqldumpurootpcookbookstu_infof:backupstu_info.sql22本讲稿第二十二页,共四十二页q这个非常的灵活,您甚至可以使用WHERE从句来选择您需要的记录导出到文件中。要达到这样的目的,可以使用类似于下面的命令:MySQLdumpurootpwID200801001c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 导入 导出 精选 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内