歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 如何向mysql數據庫的表中錄入數據

如何向mysql數據庫的表中錄入數據

日期:2017/2/27 14:23:46   编辑:更多Linux
  當你建好了數據庫及表時,你首先想到的就是向數據庫的表中輸入數據.這就牽涉到如何向數據庫增加數據.下面我們就來探討一下這個問題:    1.一般我們常用的方法是insert語句(這裡假定各位的版本都不是很低).她有以下幾種形式:    insert into tablename values(value1,value2,...)    insert into tablename(fieldname1,fieldname2,...) values(value1,value2,...)    insert into tablename set fieldname1=value1,fieldname2=value2,...    insert into tablename(fieldname1,fieldname2) select fieldname1,fieldname2 from tablename1    以上基本上羅列了用insert插入數據的方法,當然你也可以用insert語句將幾行同時插入到一個表中.如下所示:    insert into tablename values(...),(...),...    2.在mysql運行環境下,我們還可以用LOAD DATA 語句把文件裡面的數據讀取錄入到表裡面.一般來講,因為此文件是由服務器在主機上直接讀取的.所以你必須具有file權限且文件必須是完全可讀.當你版本夠新的話,你可以給出local,這樣由於你是從客戶機上讀取該文件並將內容傳送到服務器,你就不需要file權限.    如果你沒有給出local,則服務器按如下方法對其進行定位:    1)如果你的filename為絕對路徑,則服務器從根目錄開始查找該文件.    2)如果你的filename為相對路徑,則服務器從數據庫的數據目錄中開始查找該文件.    如果你給出了local,則文件將按以下方式進行定位:    1)如果你的filename為絕對路徑,則客戶機從根目錄開始查找該文件.    2)如果你的filename為相對路徑,則客戶機從當前目錄開始查找該文件.    說了半天,也許你還不明白這具體的格式,看下面先:    LOAD DATA [LOCAL] INFILE 'filename' into table tablename import_options [(fieldname_list)]    import options的語法為:    fields    terminated by 'char'    enclosed by 'char'    escaped by 'char'    lines    terminated by 'string'    下面我們對其進行一些說明:   1)fields terminated by char 指定分隔列的字符.缺省時假定列值由制表符分隔.    2)fields enclosed by char 指明列值應包括在指定的字符中.通常用引號.缺省時,假定列值不包括在任何字符中.    3)fields escaped by char 表示用於轉義特殊字符的轉義符.缺省時表示無轉義符    4)lindes escaped by string 指定結束輸入行的串(可以是多字符的).缺省時假定由換行符終止行    需要注意的是轉義字符的使用. 如:\' 表示單引號,\" 表示雙引號 等等.另外還有一些選項這裡沒有具體談到,如 ignore n lines 她可以控制文件的前n行不被讀入數據庫.詳細請看mysql中文參考.    說了上面這麼多,給一行命令大家具體體會一下:    load data [local] infile "sample.txt" into table sample fields terminated by "," enclosed by "\""    3.在系統命令行下你可以用mysqlimport實用程序,她將文本文件的內容讀取到已有表中(其實mysqlimport起的作用就是實現load data命令行的接口),調用完mysqlimport後她生成一個load data 語句.語法基本上和load data差不多:    mysqlimport [options] sample_db filename    同樣,給條命令看一下吧:    mysqlimport Cu root [--local] Cfields-terminated-by=”,” -fields-enclosed-by="\"" samp_db samp_table.txt    (REMARK:此語句中samp_db為指定的數據庫,要錄入數據的表由文件名參數確定.文件名去掉其任何擴展名,留下的就是表名.所以此語句中錄入數據的表名為samp_table.也就是說在執行這條語句時首先應該肯定表samp_table存在.另外如果你有多個文件需要裝入同一個表裡,你可以用samp_table.n.txt來處理)




Copyright © Linux教程網 All Rights Reserved