如何用MySQL命令对数据库进行导出/导入/技巧

info:1.txtzhangsanwuhanlishiwuhan将文件1.txt插入mysql数据库1.mysql-uroot-p数据库名</文件路径(bin下面直接添加文件名)2.Mysqlimport语法简介:mysqlimport位于mysql/bin目录下一个非常有效的工具,用于将数据加载(或导入)到MySQL。
这是一个命令行工具。
有两个参数和大量选项可供选择。
该工具将文本文件(textfile)导入到指定的数据库和表中。
例如,我们要将Customers.txt文件中的数据导入到Meet_A_Geek数据库中的Customers表中:mysqlimportMeet_A_GeekCustomers.txt注意:这里Customers.txt是我们要导入数据的文本文件,Meet_A_Geek是我们要导入的数据库想要管理。
数据库中的表名称是Customers。
这里的文本文件数据的格式必须与Customers表中记录的格式一致。
否则mysqlimport命令将抛出错误。
表名是导入文件的第一个句点(.)之前的文件字符串。
另一个例子:mysqlimportMeet_A_GeekCus.to.mers.txt然后我们将文件的内容导入到Meet_A_Geek数据库的Cus表中。
在前面的示例中,仅使用了两个参数,没有使用其他选项。
下面介绍mysqlimport选项:功能选项-dor--delete在将新数据导入数据表之前删除数据表中的所有信息。
for--force如果发生错误也没关系,mysqlimport将强制继续插入数据-ior--ignoremysqlimport跳过或忽略具有相同唯一关键字的行,导入文件中的数据将被忽略。
-lor-lock-tables在插入数据之前锁定表,从而防止数据库更新时影响用户查询和更新。
-ror-replace此选项与-i选项具有相反的效果,此选项将替换表中具有相同唯一键的记录;--fields-enished-by=char指定如何将数据记录包含在文本文件中。
在许多情况下,数据用双引号括起来。
默认情况下,数据不包含在字符中。
--fields-termination-by=char指定每个数据的值之间的分隔符。
在点分隔文件中,分隔符是点。
您可以使用此选项来指定数据之间的分隔符。
默认分隔符为制表符--lines-termination-by=str此选项指定在文本文件中的行之间分隔数据的字符串或字符。
默认情况下,mysqlimport使用换行符作为行分隔符。
您可以选择用字符串替换单个字符:换行符或回车符。
mysqlimport命令常用的选项包括-v显示版本(version)、-p提示输入密码(password)等。
示例:导入一个以逗号为分隔符的文件文件中各行的记录格式如下:"1","ORD89876","1DozenRoses","19991226"我们的任务是将该文件中的数据导入到文件中。
Mee数据库在t_A_Geek的Orders表中我们使用这个命令:bin/mysqlimport–prl–fields-enclosure-by="–fields-termination-by=,Meet_DatabaseA_GeekOrders.txt3.Mysql命令导出和导入的几个常见用例=======================================几个常见用例:1.导出整个数据库mysqldump-u用户名-p数据库名>导出的文件名mysqldump-uwcnc-psmgp_apps_wcnc>wcnc.sql2导出一个表mysqldump-u用户名-p数据库名表名>导出的文件名mysqldump-uwcnc-psmgp_apps_wcncusers>wcnc_users.sql3导出一个表的结构数据库mysqldump-uwcnc-p-d--add-drop-tablesmgp。
_apps_wcnc>d:\wcnc_db.sql-d没有数据:add-drop-table在每个create4语句之前添加一个droptable。
使用常用的source命令导入数据库到mysql数据库控制台,如mysql-uroot-pmysql>usedatabase然后使用source命令,后面的参数是脚本文件(如这里使用的.sql)mysql>sourced:\wcnc_db.sql4即可参数化参见MySQL数据导出和导入工具:mysqldump===============================================================================...=============一种运行mysql程序的非交互式方式,就像你在mysql中使用的一样,你仍然会使用这些命令。
要实现批处理,请将文件通过管道传输到mysql程序首先我们需要一个文本文件。
该文本文件包含与我们输入mysql的命令相同的文本。
例如,如果我们要插入数据,我们使用包含以下文本的文件(该文件的名称为New_Data.sql,显然我们也可以将其称为New_Data.txt或任何其他合法名称,并且它不能以sql后缀):USEMeet_A_GeekINSERTINTOCustomers(Customer_ID,LastName)VALUES(NULL,"Block");INSERTINTOCustomers(Customer_ID,Last_Name)VALUES(NULL,"Newton");INSERTINTOCustomers(Customer_ID,Last_Name)VALUES(NULL,"Simmons");注意前面句子的语法必须正确,并且每个句子以一个分号。
前面的USE命令选择数据库,INSERT命令插入数据。
接下来我们需要将上述文件导入到数据库中在导入之前,我们需要检查数据库是否已经在运行,即mysqld进程(或服务,在WindowsNT中称为“服务”,在Unix中称为“进程”)是否处于活动状态。
已经运行了。
然后运行以下命令:bin/mysql–p如果上一个文件中的语句没有错误,则数据将导入到数据库中。
从命令行使用LOADDATAINFILE将数据从文件导入数据库:现在您可能想知道,“到底为什么我要将所有这些SQL语句键入到文件中,然后通过程序运行它们?”很多工作。
好吧,当你这么想时,你可能是对的。
但是如果您有所有这些命令的日志记录怎么办?这很棒,大多数数据库都会自动生成数据库中记录的事件日志。
大多数日志包含所使用的原始SQL命令。
因此,如果您无法将数据从当前数据库导出到新的mysql数据库,您可以使用日志和mysql批处理功能快速轻松地导入您的数据。
当然,这省去了你打字的麻烦。
LOADDATAINFILE这是我们将介绍的最后一个将数据导入MySQL数据库的方法。
该命令与mysqlimport非常相似,但该方法可以在mysql命令行上使用。
这意味着您可以在所有使用该API的程序中使用此命令。
使用此方法,您可以将想要导入的数据导入到您的应用程序中。
在使用此命令之前,mysqld进程(服务)必须正在运行。
启动mysql命令行:bin/mysql–p按要求输入密码成功进入mysql命令行后,输入如下命令:USEMeet_A_Geek;LOADDATAINFILE"/home/mark/data.sql"INTOTABLEOrders简单来说,这样就可以了data.sql文件的内容将导入到Orders表中。
就像mysqlimport工具一样,这个也是命令有一些可选参数。
例如,如果需要将数据从计算机导入到远程数据库服务器,可以使用以下命令:LOADDATALOCALINFILE"C:\MyDocs\SQL.txt"INTOTABLEOrders前面的LOCAL参数表示该文件是本地文件,并且服务器是您登录的服务器。
这样就无需使用ftp将文件上传到服务器,MySQL会为您完成。
您还可以设置插入语句的优先级。
如果你想将其标记为低优先级(LOW_PRIORITY),MySQL将等到那时人们读取该表时不再插入数据。
您可以使用以下命令:LOADDATALOW_PRIORITYINFILE"/home/mark/data.sql"INTOTABLEOrders还可以指定在数据插入时是否替换或忽略数据文件和表中的重复键值。
替换重复键值的语法:LOADDATALOW_PRIORITYINFILE"/home/mark/data.sql"REPLACEINTOTABLEOrders上一句可能看起来有点笨拙,但它将关键字放在解析器可以理解的位置。
以下一对选项描述了文件记录格式。
这些选项在mysqlimport工具中也可用。
他们在这里看起来有点不同。
首先,您需要使用FIELDS关键字。
如果使用该关键字,MySQL解析浏览器希望至少看到以下选项之一:TERMINATEDBY字符ENCLOSEDBY字符这些关键字及其参数与mysqlimport中使用的相同。
TERMINATEDBY描述字段分隔符默认情况下,ENCLOSEDBY描述的制表符(\t)是字段括号中的字符。
例如,将每个字段用引号引起来。
ESCAPEDBY描述的转义字符。
默认值为反斜杠(\)。
下面仍然使用mysqlimport命令的例子,使用LOADDATAINFILE语句将同一个文件导入到数据库中:LOADDATAINFILE"/home/mark/Orders.txt"REPLACEINTOTABLEOrdersFIELDSTERMINATEDBY','ENCLOSEDBY''"';有LOADDATAINFILE语句中的功能在mysqlimport工具中不可用:LOADDATAINFILE可以根据指定的列将文件导入到数据库中,当我们要导入部分数据时,例如当我们要从Access数据库更新到MySQL数据库时,我们需要添加一些列(列/字段)。
/field).在MySQL数据库中,以满足一些额外的需求目前,我们Access数据库中的数据仍然可用,但由于该数据的列与MySQL中的列不再匹配,因此无法再使用。
使用mysqlimport工具。
不过,我们仍然可以使用LOADDATAINFILE。
以下示例展示了如何将数据导入到指定列(字段)中。
第二:LOADDATAINFILE"/home/Order.txt"INTOTABLEOrders(Order_Number,Order_Date,Customer_ID);可以看到,我们可以指定必填的字段(fields),这些指定的字段仍然用括号括起来,并用逗号分隔。
如果你过了,MySQL会提醒你^_^。

一键搞定MySQL表数据使用CMD快速导出cmdmysql导出表

一键搞定:使用CMD快速导出MySQL表数据。
MySQL是一个开源关系数据库管理系统,已成为许多企业和应用程序的首选数据库。
在日常开发、运维中,我们通常需要将MySQL表数据导出到本地文件或者其他数据库,以供后期处理或者数据迁移。
本文讲解如何使用CMD(命令提示符)一键快速导出MySQL表数据,免去繁琐复杂的手动操作。
详细步骤如下:第1步:连接MySQL。
在运行CMD提示符之前,我们需要在任意目录中创建一个名为mysql.txt的文件。
该文件的内容是MySQL连接信息,格式如下:––––––––––––––––––––––––––––––––host=localhostport=3306用户=rootpassword=123456database=mydb––––––––––––––––––––––––––––––––––––––––––––------------------------------------------------其中B其中,host代表MySQL服务器的地址,port代表服务器的端口号。
User代表用户名,password代表密码,database代表要使用的数据库的名称。
然后在CMD提示符下进入mysql.exe文件所在目录,输入以下命令:mysql–defaults-file=C:\mysql.txt该命令会使用我们在mysql.txt文件中的连接信息使用。
创建用于连接到MySQL数据库。
如果连接成功,会显示MySQL服务器版本信息和欢迎信息。
如下图所示:步骤2:选择数据库。
我们已经成功连接到MySQL服务器,但是我们仍然需要手动切换到我们想要使用的数据库。
这可以通过以下命令来完成:usemydb;这里的mydb更改为我们实际要使用的数据库的名称。
第三步:导出数据。
连接到我们将使用的数据库后,我们可以使用以下命令导出数据:SELECT*FROMmytableINTOOUTFILE'C:/mytable.csv'FIELDSTERMINATEDBY','OPTIONALLYENCLOSEDBY'"'LINESTERMINATEDBY'\n';我这里把我们要导出数据的表名改一下,把C:/mytable.csv改成上面的命令将mytable表数据导出到的本地文件路径。
CSV格式并保存到.csv文件根目录下的mytable除了CSV格式外,还可以使用以下命令导出SQL格式的数据:mysqldump–defaults-file=C:\mytable。
.sql该命令会将mytable表数据导出为SQL格式,并保存在磁盘根目录下的文件mytable.sql中C、如果要导出所有表的数据可以使用以下命令:mysqldump–defaults-file=C:\mysql.txtmydb>C:\mydb.sql这个命令会导出mydb中所有表的数据将数据库转换为SQL格式,保存在C盘根目录下的mydb.sql文件中。
结束语以上是使用CMD快速导出MySQL表数据的内容。
消除了手工操作的繁琐和复杂,大大提高了工作效率。
当然,我们也可以通过编写批处理文件的方式组合这些命令,实现更智能的数据导出。