數據操作語言 - DML

寫在前面:博主是一只經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。

  • 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
  • 有任何想要討論和學習的問題可聯繫我:[email protected]
  • 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。

數據操作語言 - DML

本文關鍵字:數據庫、數據操作語言、DML


之前我們已經瞭解了SQL語言的分類,可以劃分爲:DDL(數據定義語言)、DML(數據操縱語言)、DQL(數據查詢語言)、DCL(數據控制語言)、TPL(事務處理語言)、CCL(指針控制語言),本文將介紹DML。

一、INSERT

INSERT語句用於向數據表中插入數據,我們主要需要注意數據類型的匹配以及插入數據的順序。

1. 全字段插入

全字段插入是指:根據數據表的表結構,向所有的列中均插入數據,此時可以在INSERT後省略列名,直接使用INSERT INTO語句即可,在插入之前可以先查看一下表結構,或使用DESC命令查看一下表結構。

DESC Student;


當進行全字段插入時,我們需要完全按照定義數據表時預設的字段順序,來調整插入數據的順序。數據庫在進行插入數據校驗時,只能進行數據類型是否匹配的校驗。

INSERT INTO Student VALUES('001103','js0001','王小明','男','1981-10-07 00:00:00');

2. 指定字段插入

指定字段插入可以只向數據表中的某幾列插入數據,其他列會被默認值或NULL值填充,在操作時需要注意未插入數據的列已經設置好了默認值或者允許爲空,否則必須向該列插入數據。
由於我們插入的是數據表中的某幾列,數據庫自身並不能判斷我們要向那幾列插入數據,所以在表名後一定要指定目標列,並且VALUES中的值的順序要與列的順序一致。

INSERT INTO Student(S_no,Class_no,S_name) VALUES('001103','js0001','王小明');

3. 同時插入多條數據

如果想向一個數據表中插入多條數據,直接在VALUES後用逗號隔開。

INSERT INTO 
Student(S_no,Class_no,S_name) 
VALUES
('001103','js0001','王小明'),
('001104','js0002','張小明'),
('001105','js0003','李小明');

4. 將查詢結果直接插入

如果想要複製一個表的數據到名外一個表,可以使用INSERT INTO SELECT語句。前提是兩個表具有相似的結構,在數據類型上匹配,數據長度上能夠兼容,即:查詢出的數據到能夠放入到目標數據表。

INSERT INTO `目標表`
SELECT * FROM `源數據表`;
INSERT INTO `目標表`(`列名`,...)
SELECT `列名`,... FROM `源數據表`;

二、DELETE

1. 清空數據

在使用DELETE時要尤其注意,在不加任何條件時,會清空數據表中的數據。

DELETE FROM `表名`;

2. DELETE與DROP的區別

之前在講解DDL時介紹了DROP(傳送門地址:數據定義語言 - DDL),在最開始的時候容易混淆,其實很容易理解。DROP刪除的是表結構,既然結構都沒有了,那數據也就一同被清除了。DELETE只是刪除數據,而表結構依然存在。

3. 篩選刪除

在執行刪除操作時,只能以行爲單位(如果要清空某一列,需要使用UPDATE),通過添加WHERE子句來實現,使用規則與查詢時相同,可進傳送門:數據庫單表查詢 - 簡單篩選查詢

DELETE FROM `表名`
WHERE 篩選條件;

三、UPDATE

1. 全量更新

與DELETE類似,當不添加篩選條件時將會更新整表的數據,可以同時更新多個列,使用逗號隔開,需要用到賦值運算符(=)。

UPDATE `表名` SET `列名` = 值或表達式,`列名` = 值或表達式;

2. 選擇更新

通過WHERE子句可以添加篩選條件,對符合條件的數據進行更新。

UPDATE `表名` SET `列名` = 值或表達式,`列名` = 值或表達式
WHERE 篩選條件;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章