欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
MySQL數據導入導出

數據導出

  數據導出主要有以下幾種方法:
  1)使用select into outfile "filename"語(yǔ)句
  2)使用mysqldump實(shí)用程序

  使用select into outfile "filename"語(yǔ)句

  可以在mysql的命令行下或在php程序中執行它。我下面以在mysql命令行下為例。在php中使用時(shí),將其改成相應的查詢(xún)進(jìn)行處理即可。不過(guò)在使用這個(gè)命令時(shí),要求用戶(hù)擁有file的權限。如我們有一個(gè)庫為phptest,其中有一個(gè)表為driver?,F在要把driver卸成文件。執行命令:

  mysql> use phptest;
  Database Changed
  mysql> select * from driver into outfile "a.txt";
  Query OK, 22 rows affected (0.05 sec)

  上面就可以完成將表driver從數據庫中卸到a.txt文件中。注意文件名要加單引號。那么這個(gè)文件在哪呢?在mysql目錄下有一個(gè) data目錄,它即是數據庫文件所放的地方。每個(gè)庫在單獨占一個(gè)子目錄,所以phptest的目錄為c:\mysql\data\phptest(注意:我的mysql安裝在c:\mysql下)。好,現在我們進(jìn)去,a.txt就是它。打開(kāi)這個(gè)文件,可能是:

  1 Mika Hakinnen 1
  2 David Coulthard 1
  3 Michael Schumacher 2
  4 Rubens Barrichello 2
  ...

可能還有很多記錄。每個(gè)字段之間是用制表符分開(kāi)的(\t)。那么我們可以修改輸出文件名的目錄,以便放在指定的位置。如"a.txt"可以改成"./a.txt"或"/a.txt"。其中"./a.txt"放在c:\mysql\data目錄下了,
而"/a.txt"文件則放在c:\目錄下了。所以select命令認為的當前目錄是數據庫的存放目錄,這里是
c:\mysql\data。

  使用select命令還可以指定卸出文件時(shí),字段之間的分隔字符,轉義字符,包括字符,及記錄行分隔字符。列在下面:

  FIELDS
  TERMINATED BY "\t"
  [OPTIONALLY] ENCLOSED BY ""
  ESCAPED BY "\\"
  LINES
  TERMINATED BY "\n"

  TERMINATED 表示字段分隔

  [OPTIONALLY] ENCLOSED 表示字段用什么字符包括起來(lái),如果使用了OPTIONALLY則只有CHAR和VERCHAR被包括ESCAPED 表示當需要轉義時(shí)用什么作為轉義字符LINES TERMINATED 表示每行記錄之間用什么分隔

  上面列的是缺省值,而且這些項都是可選的,不選則使用缺省值??梢愿鶕枰M(jìn)行修改。給出一個(gè)例子如下:

  mysql> select * from driver into outfile "a.txt" fields terminated by "," enclosed by """;
  Query OK, 22 rows affected (0.06 sec)

  結果可能如下:

  "1","Mika","Hakinnen","1"
  "2","David","Coulthard","1"
  "3","Michael","Schumacher","2"
  "4","Rubens","Barrichello","2"
  ...

  可以看到每個(gè)字段都用","進(jìn)行了分隔,且每個(gè)字段都用"""包括了起來(lái)。注意,行記錄分隔符可以是一個(gè)字符串,請大家自行測試。不過(guò),如果輸出文件在指定目錄下如果存在的話(huà)就會(huì )報錯,先刪除再測試即可。


  使用mysqldump實(shí)用程序

  從上面的select方法可以看出,輸出的文件只有數據,而沒(méi)有表結構。而且,一次只能處理一個(gè)表,要處理多個(gè)表則不是很容易的。不過(guò)可以將select命令寫(xiě)入一個(gè)sql 文件(復制文本應該是很容易的吧),然后在命令行下執行即可:mysql 庫名
  先來(lái)個(gè)最簡(jiǎn)單的吧:
mysqldump phptest > a.sql

  可能結果如下:

  # MySQL dump 7.1
  #
  # Host: localhost Database: phptest
  #--------------------------------------------------------
  # Server version 3.22.32-shareware-debug
  #
  # Table structure for table "driver"
  #
  CREATE TABLE driver (
  drv_id int(11) DEFAULT "0" NOT NULL auto_increment,
  drv_forename varchar(15) DEFAULT "" NOT NULL,
  drv_surname varchar(25) DEFAULT "" NOT NULL,
  drv_team int(11) DEFAULT "0" NOT NULL,
  PRIMARY KEY (drv_id)
  );
  #
  # Dumping data for table "driver"
  #

  INSERT INTO driver VALUES (1,"Mika","Hakinnen",1);
  INSERT INTO driver VALUES (2,"David","Coulthard",1);
  INSERT INTO driver VALUES (3,"Michael","Schumacher",2);
  INSERT INTO driver VALUES (4,"Rubens","Barrichello",2);
  ...

  如果有多表,則分別列在下面??梢钥吹竭@個(gè)文件是一個(gè)完整的sql文件,如果要將其導入到其它的數據庫中可以通過(guò)命令行方式,很方便:mysql phptest < a.sql。如果將數據從本地傳到服務(wù)器上,則可以將這個(gè)文件上傳,然后在服務(wù)器通過(guò)命令行方式裝入數據。

  如果只想卸出建表指令,則命令如下:

  mysqldump -d phptest > a.sql

  如果只想卸出插入數據的sql命令,而不需要建表命令,則命令如下:

  mysqldump -t phptest > a.sql

  那么如果我只想要數據,而不想要什么sql命令時(shí),應該如何操作呢?

  mysqldump -T./ phptest driver

  其中,只有指定了-T參數才可以卸出純文本文件,表示卸出數據的目錄,./表示當前目錄,即與
mysqldump同一目錄。如果不指定driver表,則將卸出整個(gè)數據庫的數據。每個(gè)表會(huì )生成兩個(gè)文件,一個(gè)為.sql文件,包含建表執行。另一個(gè)為.txt文件,只包含數據,且沒(méi)有sql指令。

  對卸出的數據文件,也可以同select方法一樣,指定字段分隔符,包括字符,轉義字段,行記錄分隔符。參數列在下面:

  --fields-terminated-by= 字段分隔符
  --fields-enclosed-by= 字段包括符
  --fields-optionally-enclosed-by= 字段包括符,只用在CHAR和VERCHAR字段上
  --fields-escaped-by= 轉義字符
  --lines-terminated-by= 行記錄分隔符
我想大家應該明白這些參數的意思了吧。一個(gè)例子如下:
  mysqldump -T./ --fields-terminated-by=, --fields-enclosed-by=\" phptest driver

  輸出結果為:
  "1","Mika","Hakinnen","1"
  "2","David","Coulthard","1"
  "3","Michael","Schumacher","2"
  "4","Rubens","Barrichello","2"
  ...

  請注意字符的使用。

  小結

  以上為使用select和mysqldump實(shí)用程序來(lái)卸出文本的方法。select適合利用程序進(jìn)行處理,而mysqldump則為手工操作,同時(shí)提供強大的導出功能,并且可以處理整個(gè)庫,或庫中指定的多表。大家可以根據需求自行決定使用。

  同時(shí)還有一些方法,如直接數據庫文件拷貝也可以,但是移動(dòng)后的數據庫系統與原系統應一致才行。這里就不再提了。

 
============================================================================
 
 

導入

  同導出相類(lèi)似,導入也有兩種方法:

  1)使用LOAD DATA INFILE "filename"命令
  2)使用mysqlimport實(shí)用程序
  3)使用sql文件

  由于前兩個(gè)處理與導出處理相似,只不過(guò)是它們的逆操作,故只給出幾種命令使用的例子,不再解釋了,大家可以自行查閱手冊。

  使用load命令:
  load data infile "driver.txt" into table driver fields terminated by "," enclosed by """;

  使用mysqlimport實(shí)用程序:
  mysqlimport --fields-terminated-by=, --fields-enclosed-by=\" phptest driver.txt

  對于第三種,則可以使用由mysqldump導出的sql文件,在命令行下執行: mysq  l庫名


 


1.MySQLimport的語(yǔ)法介紹:

  MySQLimport位于MySQL/bin目錄中,是MySQL的一個(gè)載入(或者說(shuō)導入)數據的一個(gè)非常有效的工具。這是一個(gè)命令行工具。有兩個(gè)參數以及大量的選項可供選擇。這個(gè)工具把一個(gè)文本文件(text file)導入到你指定的數據庫和表中。比方說(shuō)我們要從文件Customers.txt中把數據導入到數據庫Meet_A_Geek中的表 Custermers中:

  MySQLimport Meet_A_Geek Customers.txt

  注意:這里Customers.txt是我們要導入數據的文本文件,而Meet_A_Geek是我們要操作的數據庫,數據庫中的表名是Customers,這里文本文件的數據格式必須與Customers表中的記錄格式一致,否則MySQLimport命令將會(huì )出錯。

  其中表的名字是導入文件的第一個(gè)句號(.)前面文件字符串,另外一個(gè)例子:MySQLimport Meet_A_Geek Cus.to.mers.txt

  那么我們將把文件中的內容導入到數據庫Meet_A_Geek 中的Cus表中。

  上面的例子中,都只用到兩個(gè)參數,并沒(méi)有用到更多的選項,下面介紹MySQLimport的選項

2.MySQLimport的常用選項介紹:

  選項 功能

  -d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息
  -f or --force 不管是否遇到錯誤,MySQLimport將強制繼續插入數據
  -i or --ignore MySQLimport跳過(guò)或者忽略那些有相同唯一關(guān)鍵字的行, 導入文件中的數據將被忽略。
  -l or -lock-tables 數據被插入之前鎖住表,這樣就防止了,你在更新數據庫時(shí),用戶(hù)的查詢(xún)和更新受到影響。
  -r or -replace 這個(gè)選項與-i選項的作用相反;此選項將替代表中有相同唯一關(guān)鍵字的記錄。
  --fields-enclosed- by= char 指定文本文件中數據的記錄時(shí)以什么括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒(méi)有被字符括起的。

  --fields-terminated- by=char 指定各個(gè)數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。

  默認的分隔符是跳格符(Tab)

  --lines-terminated- by=str 此選項指定文本文件中行與行之間數據的分隔字符串或者字符。 默認的情況下MySQLimport以newline為行分隔符。

  您可以選擇用一個(gè)字符串來(lái)替代一個(gè)單個(gè)的字符:

  一個(gè)新行或者一個(gè)回車(chē)。

  MySQLimport命令常用的選項還有-v 顯示版本(version),-p 提示輸入密碼(password)等。

3.例子:導入一個(gè)以逗號為分隔符的文件

  文件中行的記錄格式是這樣的:

  "1", "ORD89876", "1 Dozen Roses", "19991226"

  我們的任務(wù)是要把這個(gè)文件里面的數據導入到數據庫Meet_A_Geek中的表格Orders中,我們使用這個(gè)命令:

  bin/MySQLimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt

  這個(gè)命令可能看起來(lái)很不爽,不過(guò)當你熟悉了之后,這是非常簡(jiǎn)單的。第一部分,bin/MySQLimport ,告訴操作系統你要運行的命令是MySQL/bin目錄下的MySQLimport,選項p是要求輸入密碼,這樣就要求你在改動(dòng)數據庫之前輸入密碼,操作起來(lái)會(huì )更安全。我們用了r選項是因為我們想要把表中的唯一關(guān)鍵字與文件記錄中有重復唯一關(guān)鍵字的記錄替換成文件中的數據。我們表單中的數據不是最新的,需要用文件中的數據去更新,因而就用r這個(gè)選項,替代數據庫中已經(jīng)有的記錄。l選項的作用是在我們插入數據的時(shí)候鎖住表,這樣就阻止了用戶(hù)在我們更新表的時(shí)候對表進(jìn)行查詢(xún)或者更改的操作。

批處理是一種非交互式運行MySQL程序的方法,如同您在MySQL中使用的命令一樣,你仍然將使用這些命令。

  為了實(shí)現批處理,您重定向一個(gè)文件到MySQL程序中,首先我們需要一個(gè)文本文件,這個(gè)文本文件包含有與我們在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");

  注意上面的這些句子的語(yǔ)法都必須是正確的,并且每個(gè)句子以分號結束。

  上面的USE命令選擇數據庫,INSERT命令插入數據。

  下面我們要把上面的文件導入到數據庫中,導入之前要確認數據庫已經(jīng)在運行,即是MySQLd進(jìn)程(或者說(shuō)服務(wù),Windows NT下面稱(chēng)為”服務(wù)“,unix下面為”進(jìn)程“)已經(jīng)在運行。

  然后運行下面的命令:

  bin/MySQL –p < /home/mark/New_Data.sql

  接著(zhù)按提示輸入密碼,如果上面的文件中的語(yǔ)句沒(méi)有錯誤,那么這些數據就被導入到了數據庫中。

  命令行中使用LOAD DATA INFILE 從文件中導入數據到數據庫:

  現在您可能會(huì )問(wèn)自己,"究竟為什么我要輸入所有的這些SQL語(yǔ)句到文件中,然后通過(guò)程序運行它們呢?”
這樣看起來(lái)好像需要大量的工作。很好,你這樣想很可能就對了。但是假如你有從所有這些命令中產(chǎn)生的log記錄呢?現在這樣就很棒,嗯,大多數數據庫都會(huì )自動(dòng)產(chǎn)生數據庫中的事件記錄的 log。而大部分log都包含有用過(guò)的原始的SQL命令。因此,如果您不能從您現在的數據庫中導出數據到新的MySQL數據庫中使用,那么您可以使用 log和MySQL的批處理特性,來(lái)快速且方便地導入您地數據。當然,這樣就省去了打字的麻煩。

  LOAD DATA INFILE

  這是我們要介紹的最后一個(gè)導入數據到MySQL數據庫中的方法。這個(gè)命令與MySQLimport非常相似,但這個(gè)方法可以在MySQL命令行中使用。也就是說(shuō)您可以在所有使用API的程序中使用這個(gè)命令。使用這種方法,您就可以在應用程序中導入您想要導入的數據。

  使用這個(gè)命令之前,MySQLd進(jìn)程(服務(wù))必須已經(jīng)在運行。

  啟動(dòng)MySQL命令行:
  bin/MySQL –p

  按提示輸入密碼,成功進(jìn)入MySQL命令行之后,輸入下面的命令:

  USE Meet_A_Geek;
  LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;

  簡(jiǎn)單的講,這樣將會(huì )把文件data.sql中的內容導入到表Orders中,如MySQLimport工具一樣,這個(gè)命令也有一些可以選擇的參數。比如您需要把自己的電腦上的數據導入到遠程的數據庫服務(wù)器中,您可以使用下面的命令:
  LOAD DATA LOCAL INFILE "C:\MyDocs\SQL.txt" INTO TABLE Orders;

上面的LOCAL參數表示文件是本地的文件,服務(wù)器是您所登陸的服務(wù)器。

  這樣就省去了使用ftp來(lái)上傳文件到服務(wù)器,MySQL替你完成了.

  您也可以設置插入語(yǔ)句的優(yōu)先級,如果您要把它標記為低優(yōu)先級(LOW_PRIORITY),那么MySQL將會(huì )等到?jīng)]有其他人讀這個(gè)表的時(shí)候,才把插入數據??梢允褂萌缦碌拿睿?
  LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Orders;

  您也可以指定是否在插入數據的時(shí)候,取代或者忽略文件與數據表中重復的鍵值。替代重復的鍵值的語(yǔ)法:

  LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Orders;

  上面的句子看起來(lái)有點(diǎn)笨拙,但卻把關(guān)鍵字放在了讓您的剖析器可以理解的地方。

  下面的一對選項描述了文件的記錄格式,這些選項也是在MySQLimport工具中可以用的。他們在這里看起來(lái)有點(diǎn)不同。首先,要用到FIELDS關(guān)鍵字,如果用到這個(gè)關(guān)鍵字,MySQL剖析器希望看到至少有下面的一個(gè)選項:

  TERMINATED BY character
  ENCLOSED BY character
  ESCAPED BY character

  這些關(guān)鍵字與它們的參數跟MySQLimport中的用法是一樣的. The
  TERMINATED BY 描述字段的分隔符,默認情況下是tab字符(\t)
  ENCLOSED BY描述的是字段的括起字符。比方以引號括起每一個(gè)字段。
  ESCAPED BY 描述的轉義字符。默認的是反些杠(backslash:\ ).

  下面仍然使用前面的MySQLimport命令的例子,用LOAD DATA INFILE語(yǔ)句把同樣的文件導入到數據庫中:

  LOAD DATA INFILE "/home/mark/Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ‘,‘   ENCLOSED BY ‘"‘;

  LOAD DATA INFILE語(yǔ)句中有一個(gè)MySQLimport工具中沒(méi)有特點(diǎn):

  LOAD DATA INFILE 可以按指定的列把文件導入到數據庫中。

  當我們要把數據的一部分內容導入的時(shí)候,這個(gè)特點(diǎn)就很重要。比方說(shuō),我們要從Access數據庫升級到MySQL數據庫的時(shí)候,需要加入一些欄目(列/字段/field)到MySQL數據庫中,以適應一些額外的需要。

  這個(gè)時(shí)候,我們的Access數據庫中的數據仍然是可用的,但是因為這些數據的欄目(field)與MySQL中的不再匹配,因此而無(wú)法再使用 MySQLimport工具。盡管如此,我們仍然可以使用LOAD DATA INFILE,下面的例子顯示了如何向指定的欄目(field)中導入數據:

  LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);

  如您所見(jiàn),我們可以指定需要的欄目(fields)。這些指定的字段依然是以括號括起,由逗號分隔的,如果您遺漏了其中任何一個(gè),MySQL將會(huì )提醒您^_^

  Importing Data from Microsoft Access (從Access中導入數據,略)

  您可以看到MySQL有很多可以導入數據的方法,然而這些只是數據傳輸中的一半。另外的一般是從MySQL數據庫中導出數據。有許多的原因我們需要導出數據。一個(gè)重要的原因是用于備份數據庫。數據的造價(jià)常常是昂貴的,需要謹慎處理它們。經(jīng)常地備份可以幫助防止寶貴數據地丟失;另外一個(gè)原因是,也許您希望導出數據來(lái)共享。 在這個(gè)信息技術(shù)不斷成長(cháng)的世界中,共享數據變得越來(lái)越常見(jiàn)。

  比方說(shuō)Macmillan USA維護護著(zhù)一個(gè)將要出版的書(shū)籍的大型數據庫。這個(gè)數據庫在許多書(shū)店之間共享,這樣他們就知道哪些書(shū)將會(huì )很快出版。醫院越來(lái)越走向采用無(wú)紙病歷記錄,這樣這些病歷可以隨時(shí)跟著(zhù)你。世界變得越來(lái)越小,信息也被共享得越來(lái)越多。有很多中導出數據得方法,它們都跟導入數據很相似。因為,畢竟,這些都只是一種透視得方式。從數據庫導出的數據就是從另一端導入的數據。這里我們并不討論其他的數據庫各種各樣的導出數據的方法,您將學(xué)會(huì )如何用MySQL來(lái)實(shí)現數據導出。

============================================================================
 

備份

因為MySQL表作為文件存儲,做一個(gè)備份是容易的。為了得到一個(gè)一致的備份,在相關(guān)的表上做一個(gè)LOCK TABLES。你只需一個(gè)讀鎖定;當你在數據庫目錄中做文件的一個(gè)拷貝時(shí),這允許其他線(xiàn)程繼續查詢(xún)該表。如果你想要做一個(gè)SQL級的備份,你可以SELECT INTO OUTFILE。

備份一個(gè)數據庫的另一個(gè)方法是使用mysqldump程序:

  1. 為你的數據庫做一個(gè)完整的備份:
    shell> mysqldump --tab=/path/to/some/dir --opt --full

    你也可以簡(jiǎn)單地拷貝所有的表文件(“*.frm”、“*.MYD”和“*.MYI”文件),只要服務(wù)器不在更新任何東西。(frame,data,index)

  2. 停止mysqld如果它正在運行,然后以--log-update選項啟動(dòng)它。你將得到一個(gè)名為“hostname.n”形式的日志文件, 這里n是隨著(zhù)你每次執行mysqladmin refresh或mysqladmin flush-logs、FLUSH LOGS語(yǔ)句、或重啟服務(wù)器而遞增的一個(gè)數字。這些日志文件向你提供了在你執行mysqldump處后面進(jìn)行的復制數據庫改變的所需信息。

如果你必須恢復一些東西,嘗試首先用myisamchk -r恢復你的表。這應該處理所有情況的99.9%。如果myisamchk失敗,嘗試下列過(guò)程:

  1. 恢復原來(lái)的mysqldump備份。
  2. 執行下列命令以再次運行更新日志中的更改:
    shell> ls -1 -t -r hostname.[0-9]* | xargs cat | mysql

ls被用來(lái)以正確的順序得到所有的日志文件。

你也可以與SELECT * INTO OUTFILE ‘file_name‘ FROM tbl_name做有選擇的備份并且用LOAD DATA INFILE ‘file_name‘ REPLACE ...恢復。為了避免重復記錄,在表中你需要一個(gè)PRIMARY KEY或UNIQUE鍵。當在唯一鍵值上一個(gè)新記錄與一個(gè)老記錄重復時(shí),REPLACE關(guān)鍵詞使得老記錄用一個(gè)新記錄替代。


使用MySQLdump:

  MySQLdump工具很多方面類(lèi)似相反作用的工具M(jìn)ySQLimport。它們有一些同樣的選項。但MySQLdump能夠做更多的事情。它可以把整個(gè)數據庫裝載到一個(gè)單獨的文本文件中。這個(gè)文件包含有所有重建您的數據庫所需要的SQL命令。這個(gè)命令取得所有的模式(Schema,后面有解釋?zhuān)┎⑶覍⑵滢D換成DDL語(yǔ)法(CREATE語(yǔ)句,即數據庫定義語(yǔ)句),取得所有的數據,并且從這些數據中創(chuàng )建INSERT語(yǔ)句。這個(gè)工具將您的數據庫中所有的設計倒轉。因為所有的東西都被包含到了一個(gè)文本文件中。這個(gè)文本文件可以用一個(gè)簡(jiǎn)單的批處理和一個(gè)合適SQL語(yǔ)句導回到MySQL中。這個(gè)工具令人難以置信地簡(jiǎn)單而快速。決不會(huì )有半點(diǎn)讓人頭疼地地方。

  因此,如果您像裝載整個(gè)數據庫Meet_A_Geek的內容到一個(gè)文件中,可以使用下面的命令:
  bin/MySQLdump –p Meet_A_Geek > MeetAGeek_Dump_File.txt

  這個(gè)語(yǔ)句也允許您指定一個(gè)表進(jìn)行dump(備份/導出/裝載?)。如果您只是希望把數據庫Meet_A_Geek中的表Orders中的整個(gè)內容導出到一個(gè)文件,可以使用下面的命令:
  bin/MySQLdump –p Meet_A_Geek Orders >MeetAGeek_Orders.txt

  這個(gè)非常的靈活,您甚至可以使用WHERE從句來(lái)選擇您需要的記錄導出到文件中。要達到這樣的目的,可以使用類(lèi)似于下面的命令:
  bin/MySQLdump –p –where="Order_ID > 2000" Meet_A_Geek Orders > Special_Dump.txt

  MySQLdump工具有大量的選項,部分選項如下表:

  選項/Option 作用/Action Performed

  --add-drop-table
  這個(gè)選項將會(huì )在每一個(gè)表的前面加上DROP TABLE IF EXISTS語(yǔ)句,這樣可以保證導回MySQL數據庫的時(shí)候不會(huì )出錯,因為每次導回的時(shí)候,都會(huì )首先檢查表是否存在,存在就刪除

  --add-locks
  這個(gè)選項會(huì )在INSERT語(yǔ)句中捆上一個(gè)LOCK TABLE和UNLOCK TABLE語(yǔ)句。這就防止在這些記錄被再次導入數據庫時(shí)其他用戶(hù)對表進(jìn)行的操作

  -c or - complete_insert
  這個(gè)選項使得MySQLdump命令給每一個(gè)產(chǎn)生INSERT語(yǔ)句加上列(field)的名字。當把數據導出導另外一個(gè)數據庫時(shí)這個(gè)選項很有用。

  --delayed-insert 在INSERT命令中加入DELAY選項
  -F or -flush-logs 使用這個(gè)選項,在執行導出之前將會(huì )刷新MySQL服務(wù)器的log.
  -f or -force 使用這個(gè)選項,即使有錯誤發(fā)生,仍然繼續導出
  --full 這個(gè)選項把附加信息也加到CREATE TABLE的語(yǔ)句中
  -l or -lock-tables 使用這個(gè)選項,導出表的時(shí)候服務(wù)器將會(huì )給表加鎖。
  -t or -no-create- info
  這個(gè)選項使的MySQLdump命令不創(chuàng )建CREATE TABLE語(yǔ)句,這個(gè)選項在您只需要數據而不需要DDL(數據庫定義語(yǔ)句)時(shí)很方便。

  -d or -no-data 這個(gè)選項使的MySQLdump命令不創(chuàng )建INSERT語(yǔ)句。
  在您只需要DDL語(yǔ)句時(shí),可以使用這個(gè)選項。

  --opt 此選項將打開(kāi)所有會(huì )提高文件導出速度和創(chuàng )造一個(gè)可以更快導入的文件的選項。
  -q or -quick 這個(gè)選項使得MySQL不會(huì )把整個(gè)導出的內容讀入內存再執行導出,而是在讀到的時(shí)候就寫(xiě)入導文件中。
  -T path or -tab = path 這個(gè)選項將會(huì )創(chuàng )建兩個(gè)文件,一個(gè)文件包含DDL語(yǔ)句或者表創(chuàng )建語(yǔ)句,另一個(gè)文件包含數據。DDL文件被命名為table_name.sql,數據文件被命名為table_name.txt.路徑名是存放這兩個(gè)文件的目錄。目錄必須已經(jīng)存在,并且命令的使用者有對文件的特權。

  -w "WHERE Clause" or -where = "Where clause "
  如前面所講的,您可以使用這一選項來(lái)過(guò)篩選將要放到導出文件的數據。

  假定您需要為一個(gè)表單中要用到的賬號建立一個(gè)文件,經(jīng)理要看今年(2004年)所有的訂單(Orders),它們并不對DDL感興趣,并且需要文件有逗號分隔,因為這樣就很容易導入到Excel中。 為了完成這個(gè)人物,您可以使用下面的句子:

  bin/MySQLdump –p –where "Order_Date >=‘2000-01-01‘"
  –tab = /home/mark –no-create-info –fields-terminated-by=, Meet_A_Geek Orders
  這將會(huì )得到您想要的結果。

  schema:模式The set of statements, expressed in data definition language, that completely describe the structure of a data base.
  一組以數據定義語(yǔ)言來(lái)表達的語(yǔ)句集,該語(yǔ)句集完整地描述了數據庫的結構。

SELECT INTO OUTFILE :

  如果您覺(jué)得MySQLdump工具不夠酷,就使用SELECT INTO OUTFILE吧, MySQL同樣提供一個(gè)跟LOAD DATA INFILE命令有相反作用的命令,這就是SELECT INTO OUTFILE 命令,這兩個(gè)命令有很多的相似之處。首先,它們有所有的選項幾乎相同?,F在您需要完成前面用MySQLdump完成的功能,可以依照下面的步驟進(jìn)行操作:

  1. 確保MySQLd進(jìn)程(服務(wù))已經(jīng)在運行
  2. cd /usr/local/MySQL
  3. bin/MySQLadmin ping ;// 如果這個(gè)句子通不過(guò),可以用這個(gè):MySQLadmin -u root -p ping
MySQLadmin ping用于檢測MySQLd的狀態(tài),is alive說(shuō)明正在運行,出錯則可能需要用戶(hù)名和密碼。
  4. 啟動(dòng)MySQL 監聽(tīng)程序.
  5. bin/MySQL –p Meet_A_Geek;// 進(jìn)入MySQL命令行,并且打開(kāi)數據庫Meet_A_Geek,需要輸入密碼
  6. 在命令行中,輸入一下命令:

  SELECT * INTO OUTFILE ‘/home/mark/Orders.txt‘
  FIELDS
  TERMINATED BY = ‘,‘
  FROM Orders
  WHERE Order_Date >= ‘2000-01-01‘

  在你按了Return(回車(chē))之后,文件就創(chuàng )建了。這個(gè)句子就像一個(gè)規則的SELECT語(yǔ)句,只是把想屏幕的輸出重定向到了文件中。這意味這您可以使用JOIN來(lái)實(shí)現多表的高級查詢(xún)。這個(gè)特點(diǎn)也可以被用作一個(gè)報表產(chǎn)生器。

  比方說(shuō),您可以組合這一章中討論的方法來(lái)產(chǎn)生一個(gè)非常有趣的查詢(xún),試試這個(gè):

  在MySQL目錄建立一個(gè)名為Report_G.rpt 的文本文件,加入下面的行:

  USE Meet_A_Geek;
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Kinnard", "Vicky");
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Kinnard", "Steven");
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Brown", "Sam");
  SELECT Last_Name INTO OUTFILE ‘/home/mark/Report.rpt‘
  FROM Customers WHERE Customer_ID > 1;

  然后確認 MySQL進(jìn)程在運行,并且您在MySQL目錄中, 輸入下面的命令:

  bin/MySQL < Report_G.rpt檢查您命名作為輸出的文件,這個(gè)文件將會(huì )包含所有您在Customers表中輸入的顧客的姓。 如您所見(jiàn),您可以使用今天學(xué)到的導入/導出(import/export)的方法來(lái)幫助得到報表。

 
from:
 
 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
【5】MySQL導入導出方法與工具總結
用批處理對MySQL進(jìn)行數據操作
Linux下mysql命令 導入 導出sql文件
Linux下MySQL的導出與導入 ? Ren的Linux大雜壇
mysql 數據庫 備份還原命令
Linux下Mysql數據庫備份和恢復全攻略(含網(wǎng)絡(luò )備份、實(shí)時(shí)備份)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久