程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 關於Mysql數據庫中數據輸入問題

關於Mysql數據庫中數據輸入問題

編輯:關於MYSQL數據庫
 關於數據庫中數據輸入問題

  -------------------SELECT ... INTOOUTFILE 的 LOAD DATA INFILE 的逆操作問題.

  一般我們都用insert into table_name values();來給數據表添加記錄.這是一種方法. 當然也可以使用MySQLimport實用程序裝載數據文件.其實它也是發送local data infile命令到服務器

  而在輸入大量數據的時候 ,我們可以用load data infile 語法來實現.

  之前,我們需要先編輯一個文本文件.錄入我們的數據.

  load data infile的語法如下:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name
[FIELDS
[TERMINATED BY '  '] ('  '為制表符)
[[OPTIONALLY] ENCLOSED BY ''] 說明不包括在任何字符裡面.
[ESCAPED BY '\' ] 表明無轉義字符
]
[LINES TERMINATED BY '
'] 這也是它的缺省狀態了
[IGNORE number LINES]
[(col_name,...)]

  注:local關鍵字沒有被指定的時候 ,文件必須在服務器上.而local被指定時,則可以從客戶端讀取文件.(在 MySQL 3.23.49 和 MySQL 4.0.2 中,只有當你沒有以 --local-infile=0 選項啟動 mysqld,或你沒有禁止你的客戶端程序支持 LOCAL的情況下,LOCAL 才會工作,先於 MySQL 3.23.24 的版本,不能夠以 LOAD DATA INFILE 讀取)

  如果是在服務上讀取的時候,則我們需要知道下面三個問題:

  1,若以相對路徑的形式給出,如"./*.txt",則這個目錄是相對服務器的數據目錄.

  2,若是"*.txt"則是從當前數據庫目錄下讀取的文件.

  3,則是完整路徑.即絕對路徑了!

  下面的fields子句,一開始錄入的時候,總是報錯.是因為我對fIElds可選項不清晰的理解問題, 其中的terminated by char 指定一個字符,標記分隔列.而enclosed

  by char 則指示列值被什麼字符所包含.最後的escaped by char則表示用於轉義特殊字符的轉義符.我第一次錄入時,錯誤的原因是因為不清楚它們三個的缺省狀況.上面的語法部分列出的就是它們的缺省狀況.見上.

  另外當你同時輸出文件與讀取記錄時,即用SELECT ... INTO OUTFILELOAD DATA INFILE 和 LOAD DATA INFILE 時,必須注意兩個命令的字段和行處理選項必須匹配.

  可能會遇到的問題如下:

  data truncation: data truncated for column 'id' at row 3

  這種問題是在你沒有搞清MySQL數據類型的前提下會發生的一種情況,建議基礎不好的先看一下sql語言的數據類型.搞清之後就不會發生truncation(斷開)問題了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved