首頁(yè)技術(shù)文章正文

JAVA培訓(xùn)DML之插入記錄

更新時(shí)間:2017-04-13 來源:傳智播客Java培訓(xùn)學(xué)院 瀏覽量:

DML是數(shù)據(jù)操作語言,包括對(duì)數(shù)據(jù)庫(kù)表記錄的添加、刪除與修改。今天我們先來學(xué)習(xí)向表中插入數(shù)據(jù),向表中插入數(shù)據(jù)后需要查看數(shù)據(jù)是否插入成功,這時(shí)就需要使用DQL,DQL是數(shù)據(jù)查詢語言,它的語法是:
  • SELECT * FROM 表名:表示查詢指定表的所有記錄;
使用DML語句向表中插入記錄的語法是:INTERT INTO 表名(列名1,列名2, ...) VALUES(列值1, 列值2, ...);其中,“列名1,列名2…”指的是要向哪些列插入數(shù)據(jù),而values關(guān)鍵字后面的“列值1,列值2…”要與列名一一對(duì)應(yīng),表示插入的列值。
向表中插入數(shù)據(jù)有以下三種方式:

1.插入所有列

插入所有列指的是在插入的時(shí)候指定表的所有列名,如:
insert into 表名(列名1,列名2, ...) values(列值1, 列值2, ...)
(1)在user數(shù)據(jù)庫(kù)中有一張表emp,點(diǎn)擊此處 1554097548284_1.png下載對(duì)應(yīng)sql語句,首先使用DQL語句查看該表的記錄,查詢語句是:select * from emp,如圖1-1所示:
1554097586058_2.png圖1-1 emp表的所有記錄
(2)在查詢表記錄時(shí),如果表記錄中包含中文,那么在dos窗口中可能會(huì)出現(xiàn)亂碼,如圖1-2所示:
1554097595668_3.png圖1-2 中文亂碼
(3)解決圖1-2中的亂碼,首先查看數(shù)據(jù)庫(kù)的字符集,命令為:show variables like 'character_set_%',如圖1-3所示:
1554097601440_4.png圖1-3 查看數(shù)據(jù)庫(kù)字符集
(4)因?yàn)樵诎惭b數(shù)據(jù)庫(kù)服務(wù)器,我們?cè)O(shè)置的編碼是utf8,而dos窗口的編碼是gbk,因此我們需要將character_set_client以及character_set_results的值設(shè)置為gbk,如圖1-4所示:
1554097564259_4.png
(5)這時(shí)再來查看emp數(shù)據(jù)庫(kù)的所有記錄,如圖1-5所示:
1554097607067_5.png圖1-5 無亂碼的emp
(6)然后再來查看另外一張表,student表,如圖1-6所示:
1554097611793_6.png圖1-6 student表中的記錄
(7)student表的結(jié)構(gòu)如圖1-7所示:
1554097624007_7.png圖1-7 student的表結(jié)構(gòu)
(8)由圖1-7可知,student表中有四列,現(xiàn)在向student表中插入數(shù)據(jù),如圖1-8所示:
1554097629124_8.png圖1-8 插入數(shù)據(jù)
圖1-8中,向student表中插入數(shù)據(jù),每一列都有對(duì)應(yīng)的數(shù)據(jù),其中“itcast_0001”對(duì)應(yīng)的是number列,“zhangsan”對(duì)應(yīng)的是name列,“23”對(duì)應(yīng)的是age列,“male”對(duì)應(yīng)的是gender列。需要注意的是在數(shù)據(jù)庫(kù)中,所有的字符串類型必須使用單引號(hào)引起來,不能使用雙引號(hào),日期類型也要使用單引號(hào)引起,數(shù)字類型不需要使用單引號(hào)引起。

2.插入部分列

插入部分列是指在插入數(shù)據(jù)時(shí)只插入部分?jǐn)?shù)據(jù),例如:insert into student(number,name) values(‘xxx’,’xxx’);只插入了number,name兩列數(shù)據(jù),其他兩列沒有插入數(shù)據(jù),默認(rèn)值就為null,如圖1-9所示:
1554097634012_9.png
圖1-9 插入部分列
插入數(shù)據(jù)時(shí)如果指定了列名,那么可不按照創(chuàng)建表時(shí)給出的列的順序,例如:insert into student(age,name,number,gender) values(23,’lisi’,’itcast_0003’,’female’),values后給出的列值,值的順序和個(gè)數(shù)必須與前面指定的列對(duì)應(yīng)。

3.不給出插入的列名

insert into student values(‘xxx’,’xxx’,33,’xxx’)就是不給出要插入的列名,使用這種方式插入數(shù)據(jù)時(shí)有以下要求:
  • 沒有給出要插入的列,那么表示插入所有列;
  • 值的個(gè)數(shù)必須是該表的列的個(gè)數(shù);
  • 值的順序,必須與表創(chuàng)建時(shí)給出的列的順序相同。
下面我們使用這種方式向數(shù)據(jù)庫(kù)中插入數(shù)據(jù),如圖1-10所示:
1554097642006_10.png圖1-10 插入的數(shù)據(jù)

使用左外連接查詢,左表是e1,因此e1表中的所有員工姓名都被查詢出來,e2表中不滿足條件的位置用null代替。

本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員Java培訓(xùn)學(xué)院

首發(fā):http://ko1818.cn/special/hmjavaeezly/

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!