mysql导入导出工具:MySQL数据导入导出方法与工具介绍二




  批处理是种非交互式运行mysql思路方法如同您在mysql中使用命令你仍然将使用这些命令
  
  为了实现批处理您重定向个文件到mysql首先我们需要个文本文件这个文本文件包含有和我们在mysql中输入命令相同文本
  比如我们要插入些数据使用包含下面文本文件(文件名为New_Data.sql,当然我们也可以取名为New_Data.txt及任何其他合法名字并不定要以后缀sql结尾):
  USE Meet_A_Geek;
  INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Block");
  INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Newton");
  INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Simmons");
  注意上面这些句子语法都必须是正确并且每个句子以分号结束
  上面USE命令选择数据库INSERT命令插入数据
  
  下面我们要把上面文件导入到数据库中导入的前要确认数据库已经在运行即是mysqld进程(或者说服务 NT下面称为”服务“unix下面为”进程“)已经在运行
  然后运行下面命令:
  bin/mysql –p < /home/mark/New_Data.sql
  接着按提示输入密码如果上面文件中语句没有那么这些数据就被导入到了数据库中
  
  命令行中使用LOAD DATA INFILE 从文件中导入数据到数据库:
  现在您可能会问自己"究竟为什么我要输入所有这些SQL语句到文件中然后通过运行它们呢?”
  这样看起来好像需要大量工作很好你这样想很可能就对了但是假如你有从所有这些命令中产生log记录呢?现在这样就很棒大多数数据库都会自动产生数据库中事件记录log而大部分log都包含有用过原始SQL命令因此如果您不能从您现在数据库中导出数据到新mysql数据库中使用那么您可以使用log和mysql批处理特性来快速且方便地导入您地数据当然这样就省去了打字麻烦
  
  LOAD DATA INFILE
  这是我们要介绍最后个导入数据到MySQL数据库中思路方法这个命令和mysqlimport非常相似但这个思路方法可以在mysql命令行中使用也就是说您可以在所有使用API中使用这个命令使用这种思路方法您就可以在应用中导入您想要导入数据
  
  使用这个命令的前mysqld进程(服务)必须已经在运行
  启动mysql命令行:
  bin/mysql –p
  按提示输入密码成功进入mysql命令行的后输入下面命令:
  USE Meet_A_Geek;
  LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;
  简单这样将会把文件data.sql中内容导入到表Orders中如mysqlimport工具这个命令也有些可以选择参数比如您需要把自己电脑上数据导入到远程数据库中您可以使用下面命令:
  LOAD DATA LOCAL INFILE "C:\MyDocs\SQL.txt" INTO TABLE Orders;
  
  上面LOCAL参数表示文件是本地文件是您所登陆服务器
  这样就省去了使用ftp来上传文件到服务器MySQL替你完成了.
  您也可以设置插入语句优先级如果您要把它标记为低优先级(LOW_PRIORITY)那么MySQL将会等到没有其他人读这个表时候才把插入数据可以使用如下命令:
  LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Orders;
  
  您也可以指定是否在插入数据时候取代或者忽略文件和数据表中重复键值替代重复键值语法:
  LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Orders;
  上面句子看起来有点笨拙但却把关键字放在了让您剖析器可以理解地方
  
  下面对选项描述了文件记录格式这些选项也是在mysqlimport工具中可以用他们在这里看起来有点区别首先要用到FIELDS关键字如果用到这个关键字MySQL剖析器希望看到至少有下面个选项:
  TERMINATED BY character
  ENCLOSED BY character
  ESCAPED BY character
  这些关键字和它们参数跟mysqlimport中使用方法是. The
  TERMINATED BY 描述字段分隔符默认情况下是tab(\t)
  ENCLOSED BY描述是字段括起比方以引号括起每个字段
  ESCAPED BY 描述转义默认是反些杠(backslash:\ ).
  下面仍然使用前面mysqlimport命令例子用LOAD DATA INFILE语句把同样文件导入到数据库中:
  LOAD DATA INFILE "/home/mark/Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ',' ENCLOSED BY '"';
  
  LOAD DATA INFILE语句中有个mysqlimport工具中没有特点:
  LOAD DATA INFILE 可以按指定列把文件导入到数据库中
  当我们要把数据部分内容导入时候这个特点就很重要比方说我们要从Access数据库升级到MySQL数据库时候需要加入些栏目(列/字段/field)到MySQL数据库中以适应些额外需要
  这个时候我们Access数据库中数据仍然是可用但是这些数据栏目(field)和MySQL中不再匹配因此而无法再使用mysqlimport工具尽管如此我们仍然可以使用LOAD DATA INFILE下面例子显示了如何向指定栏目(field)中导入数据:
  LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);
  
  如您所见我们可以指定需要栏目(fields)这些指定字段依然是以括号括起由逗号分隔如果您遗漏了其中任何MySQL将会提醒您
  
  Importing Data from Microsoft Access (从Access中导入数据略)
Tags:  mysql导出数据 mysql数据导入工具 mysql导入导出 mysql导入导出工具

延伸阅读

最新评论

发表评论