向資料表中插入行記錄

2021-05-24 07:18:22 字數 2011 閱讀 7793

向資料庫中插入資料是資料庫的基本操作之一。在mysql中通過sql語句實現向資料庫插入資料的方式大致有如下幾種:

1、使用insert、replace語句。

2、使用insert/replace into…select語句。

3、使用load data infile語句。

另外可以使用mysqlimport工具向資料庫插入資料,以後再講。

對於第一種情況,insert、replace語句,insert向表中插入資料,

語法同ms sql基本相同,差別是mysql可以一次插入多條記錄,而且

書寫方便,如:

insert into student values(『李蕾',』女'),('李雷','男');

而insert 和replace的區別是insert如果在插入記錄具有唯一索引相同

時會出錯,而replace則會修改原記錄。

另外insert中可以使用col_name = value的方式賦值,當只能對乙個列

進行操作。如:

insert into student set name = 『張三』;

insert 中允許後一列引用前一列的值。如:

insert info test_table (col1,col1*2);但不支援後一列引用前一列的值。

insert/replace into …select語句是將後面select語句的記錄插入到

into後的表中,如:

insert  into table1_name select col1,col2 from table2_name;

但此處要求在select查詢中不能包含order by排序子句且table1_name不

能夠出現在table2_name的位子上。

第三種就是使用load data infile語句批量錄入資料,該資料一般是通過

select into  outfile來生成的檔案中獲取。select into outfile在後面

備份資料庫資料時再將,下面是load data infile 的用法。

load data  [local] infile 『filename』  [replace|ignore] into table tab_name;

local可選,是指後面的檔案filename是存在伺服器上還是客戶端上。replace和ignore

是指遇見唯一索引相同是是修改還是跳過該條記錄繼續執行,如果不指定則遇見唯一索引相同

是抱錯停止,但如果指定了local選項,則是處理的是傳輸過去的檔案,伺服器無法阻止該過程

則相當於在指定local選項時,如果不指定replace或ignore中的任何乙個,預設是ignore。

而在此處對檔案的位置卻是要注意的,如果給出的是絕對路徑,則直接到該路徑讀檔案即可,如果

給出的檔名有字首,則該路徑是相對於資料目錄的,即是相對於data(如果資料目錄未修改)目錄的。而如果給定的是乙個檔名,則要檔案是在當前資料庫的目錄下,因此現在的./file.txt和file.txt不在

是指向同一檔案了。

另外,load data infile還可以用如下用法:

load data infile 'data.txt' into table tbl_name

fields terminated by ','---指定了每個欄位的終止符為逗號

enclosed by '"' --指定欄位是使用引號來包圍著

lines terminated by '/n'; --制定每條記錄的結束符是換行符。

其中還可以使用escaped  by來指定轉義字元,但 escaped  by和enclosed by指定的字元

只能夠是單字元,而fields terminated 和lines terminated 指定的字元可以是多個。如 lines terminated by 『/r/n』.

另外如果escaped by指定字元不為空時,除了指定字元被剝去後,後面的字元作為欄位的內容被儲存,但是\0和\n例外,乙個被解釋為ascii 0 乙個是null。

MySQL 資料表插入記錄

建立完資料表之後可以檢視資料表的具體字段資訊 show columns from tb name 例如檢視上次建立的資料表的字段資訊 有了字段,當然要有記錄 不然只是一張空表 插入記錄 方法一 insert tb name column name,values val,tb name括號裡面跟的是欄...

向MySQL資料表中插入資料報1366錯誤

向資料表中插入中文時,會報錯1366,資料表不支援中文顯示。解決辦法 1.建立資料表時,指定引擎,指定字符集編碼 engine innodb default charset utf8 mysql create table persion id int not null auto increment,...

大作業之向資料表插入資料

今天我想去實現插入資料。我的想法是在之前的操作修改表的字段,那麼匯入的資料檔案也要做出相應的變化。我想象這樣乙個場景,現在需要儲存乙份資料,但是之前的表結構有些字段需要改變或者不需要這些表字段,所以需要修改表字段後匯入相應資料。所以我的想法是在表的基礎上新增匯入資料按鈕,進行檔案上傳分析,這裡我碰到...