在上一篇已經(jīng)講述了DML的基本概念再次就不在累述了。
在了解了對數(shù)據(jù)庫的基本操作后,我們開始學(xué)習(xí)對數(shù)據(jù)庫中表的操作(增刪改查)蜈块。
首先我們新建一張名為“emp"的表摩骨。
現(xiàn)在正式開始我們今天的環(huán)節(jié),對表的操作,第一步增加數(shù)據(jù)(插入數(shù)據(jù))。
增加數(shù)據(jù)即為插入數(shù)據(jù),在表中插入新的數(shù)據(jù)即為增加港谊。
1.增加數(shù)據(jù)(插入數(shù)據(jù))
INSERT INTO 表名 (字段名1,字段名2,……字段名n) VALUES(value1,value2,……valuesn); //再次說明字段名等同于列名即圖中的Field,之后不再解釋
根據(jù)我們新建的emp表可以看出橙弱,我們現(xiàn)在存在兩個字段歧寺,"ename"和"age",現(xiàn)在對這連個字段進(jìn)行增加數(shù)據(jù)棘脐。
我們添加了"yanxueer斜筐,21","zhangsan,21","lisi,21","wangwu,22"四條數(shù)據(jù)。
在這里我們通過了select查詢命令查看了表的信息蛀缝,有人會問select是什么干什么用的顷链,別急,再一下篇就會講到的屈梁。
注insert有一個非常好的特性:可以一次插入多條數(shù)據(jù)嗤练。這樣可以提高插入效率。
INSERT INTO 表名 (字段名, 字段名2,……字段名n)
VALUES
(value1, value2,……valuesn),
(value1, value2,……valuesn),
……
(value1, value2,……valuesn)
;
2.更新數(shù)據(jù)(修改數(shù)據(jù))
--2.1單表更新
UPDATE 表名 SET 字段1=value1在讶,字段2.=value2煞抬,……字段n=valuen [WHERE 條件] //[ ]表示可以不加條件,不加條件則默認(rèn)某字段全部替換构哺。where前為修改的數(shù)據(jù)革答,where后是修改數(shù)據(jù)的條件即改變誰的數(shù)據(jù)。修改數(shù)據(jù),可以只修改其中一條或者多條残拐。
此時我們已經(jīng)把百家姓中的'li'改成了’zhou'.那么我們來解讀一下命令:update
更新途茫;在許多語言中set
這個屬性都是修改值的,get
是用來獲取值的蹦骑,學(xué)過java同學(xué)應(yīng)該很清楚這一點(diǎn)慈省。既然set
是設(shè)置值的臀防,那么set ename='zhou';age=20
就是設(shè)置了值眠菇,既然設(shè)置了值,那么是不是要有個判斷袱衷,該改變誰的值呢捎废?根據(jù)什么來判斷呢?判斷條件是什么呢致燥?此時就是where
的作用了登疗,where
后面跟判斷的條件,判斷改變誰嫌蚤!where ename='li'
辐益。連起來就是,把ename
字段中值為'li'
的改變它的ename
和age
分別為'zhou';20
,當(dāng)然從前往后讀也是可以的脱吱,更新了ename
和age
的值為zhou
和20
智政,條件是ename
值為'li'
的。
其實到了這里我不知道是不是應(yīng)該講更新數(shù)據(jù)的更深層次的箱蝠,如果如果講了续捂,純小白是無法看懂的,當(dāng)然悟性好的除外宦搬,但是不講的話牙瓢,后面很難單另出模塊來單獨(dú)講。算了還是先講吧间校。聽不懂的矾克,我可以在后面的某個模塊中再次解釋。
---2.2*多表更新
此時我們需要在添加一個新表dept
表憔足,而且要在原先的emp
表中添加外鍵
胁附。這里就牽扯到了主鍵
和外鍵
的概念。
關(guān)于主外鍵可以參考我的這篇文章:http://www.reibang.com/p/e977068a4345
我們新建一個dept
表設(shè)置deptno
字段為主鍵四瘫,并且在原先的emp
表中添加deptno
字段設(shè)置為外鍵汉嗽。(不演示代碼了,在番外篇中我都已經(jīng)演示了找蜜。我們直接使用)
在這里習(xí)慣使用了別名
饼暑,別名
就是給表起了一個新名字,就相當(dāng)于李白,字太白
弓叛,李白和李太白是同一個人彰居,這里的別名就類似于古代人的“表字”。為什么要起別名
呢撰筷?因為有些時候有的表的名字太長陈惰,所以給它起一個短一點(diǎn)的別名
方便后面的引用,別名
只能在一條sql語句中產(chǎn)生作用毕籽,離開的這條sql語句就失去了作用域抬闯。還記得一段sql語句結(jié)束的標(biāo)志嗎?那就是;
关筒。別名
的命名格式是表名 as 別名
但是as
可以省略溶握,所以我寫成了emp e
。
注意:多表更新的語法更多地用在了根據(jù)一個表的字段蒸播,來動態(tài)的更新另外一個表的字段
3.刪除數(shù)據(jù)
--3.1單表刪除
DELETE FROM 表名 [WHERE 條件] //[ ] 不寫where條件的時候默認(rèn)全部刪除睡榆,則清空表。
判斷條件為yan
所以ename='yan'
的記錄全部刪掉了袍榆。
如上圖胀屿,在沒有加約束條件的時候,默認(rèn)刪除了所有數(shù)據(jù)包雀,則此時表為空宿崭。
--3.2多表刪除
注:凡是牽扯多表的都存在主外鍵的概念,主外鍵是數(shù)據(jù)庫中非常重要且常用的概念馏艾。
注意:不管是單表還是多表劳曹,不加 where 條件將會把表的所有記錄刪除,所以操作時一定要小心琅摩。
4.命令總結(jié)
//插入數(shù)據(jù)
INSERT INTO 表名 (字段名1,字段名2,……字段名n) VALUES(value1,value2,……valuesn);
//一次插入多條數(shù)據(jù)
INSERT INTO 表名 (字段名, 字段名2,……字段名n)
VALUES
(value1, value2,……valuesn),
(value1, value2,……valuesn),
……
(value1, value2,……valuesn)
;
//更新數(shù)據(jù)
UPDATE 表名 SET 字段1=value1铁孵,字段2.=value2,……字段n=valuen [WHERE 條件] //[ ]表示可以不加條件房资,不加條件則默認(rèn)某字段全部替換
//刪除數(shù)據(jù)
DELETE FROM 表名 [WHERE 條件] //[ ] 不寫where條件的時候默認(rèn)全部刪除蜕劝,則清空表。
數(shù)據(jù)庫中的增刪改查轰异,最難和最復(fù)雜的就是查詢岖沛,所以我打算把查詢單另出來講。
小白出品搭独!不喜勿噴婴削!
生活總會給你第二次機(jī)會,叫明天牙肝。