DML是數(shù)據(jù)操作語言,包括對數(shù)據(jù)庫表記錄的添加、刪除與修改。今天我們先來學(xué)習(xí)向表中插入數(shù)據(jù),向表中插入數(shù)據(jù)后需要查看數(shù)據(jù)是否插入成功,這時就需要使用DQL,DQL是數(shù)據(jù)查詢語言,它的語法是:
- SELECT * FROM 表名:表示查詢指定表的所有記錄;
使用DML語句向表中插入記錄的語法是:INTERT INTO 表名(列名1,列名2, ...) VALUES(列值1, 列值2, ...);其中,“列名1,列名2…”指的是要向哪些列插入數(shù)據(jù),而values關(guān)鍵字后面的“列值1,列值2…”要與列名一一對應(yīng),表示插入的列值。
向表中插入數(shù)據(jù)有以下三種方式:
1.插入所有列
插入所有列指的是在插入的時候指定表的所有列名,如:
insert into 表名(列名1,列名2, ...) values(列值1, 列值2, ...)
(1)在user數(shù)據(jù)庫中有一張表emp,點(diǎn)擊此處
下載對應(yīng)sql語句,首先使用DQL語句查看該表的記錄,查詢語句是:select * from emp,如圖1-1所示:
圖1-1 emp表的所有記錄
(2)在查詢表記錄時,如果表記錄中包含中文,那么在dos窗口中可能會出現(xiàn)亂碼,如圖1-2所示:
圖1-2 中文亂碼
(3)解決圖1-2中的亂碼,首先查看數(shù)據(jù)庫的字符集,命令為:show variables like 'character_set_%',如圖1-3所示:
圖1-3 查看數(shù)據(jù)庫字符集
(4)因為在安裝數(shù)據(jù)庫服務(wù)器,我們設(shè)置的編碼是utf8,而dos窗口的編碼是gbk,因此我們需要將character_set_client以及character_set_results的值設(shè)置為gbk,如圖1-4所示:
(5)這時再來查看emp數(shù)據(jù)庫的所有記錄,如圖1-5所示:
圖1-5 無亂碼的emp
(6)然后再來查看另外一張表,student表,如圖1-6所示:
圖1-6 student表中的記錄
(7)student表的結(jié)構(gòu)如圖1-7所示:
圖1-7 student的表結(jié)構(gòu)
(8)由圖1-7可知,student表中有四列,現(xiàn)在向student表中插入數(shù)據(jù),如圖1-8所示:
圖1-8 插入數(shù)據(jù)
圖1-8中,向student表中插入數(shù)據(jù),每一列都有對應(yīng)的數(shù)據(jù),其中“itcast_0001”對應(yīng)的是number列,“zhangsan”對應(yīng)的是name列,“23”對應(yīng)的是age列,“male”對應(yīng)的是gender列。需要注意的是在數(shù)據(jù)庫中,所有的字符串類型必須使用單引號引起來,不能使用雙引號,日期類型也要使用單引號引起,數(shù)字類型不需要使用單引號引起。
2.插入部分列
插入部分列是指在插入數(shù)據(jù)時只插入部分?jǐn)?shù)據(jù),例如:insert into student(number,name) values(‘xxx’,’xxx’);只插入了number,name兩列數(shù)據(jù),其他兩列沒有插入數(shù)據(jù),默認(rèn)值就為null,如圖1-9所示:
圖1-9 插入部分列
插入數(shù)據(jù)時如果指定了列名,那么可不按照創(chuàng)建表時給出的列的順序,例如:insert into student(age,name,number,gender) values(23,’lisi’,’itcast_0003’,’female’),values后給出的列值,值的順序和個數(shù)必須與前面指定的列對應(yīng)。
3.不給出插入的列名
insert into student values(‘xxx’,’xxx’,33,’xxx’)就是不給出要插入的列名,使用這種方式插入數(shù)據(jù)時有以下要求:
- 沒有給出要插入的列,那么表示插入所有列;
- 值的個數(shù)必須是該表的列的個數(shù);
- 值的順序,必須與表創(chuàng)建時給出的列的順序相同。
下面我們使用這種方式向數(shù)據(jù)庫中插入數(shù)據(jù),如圖1-10所示:
圖1-10 插入的數(shù)據(jù)
使用左外連接查詢,左表是e1,因此e1表中的所有員工姓名都被查詢出來,e2表中不滿足條件的位置用null代替。
本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員Java培訓(xùn)學(xué)院
首發(fā):http://3rdspacecomics.com/special/hmjavaeezly/