數據庫(七)-Data Manipulation Language:數據操作語言

DML:數據操作語言

數據操作在SQL主要是操作表中的數據,使用DML可以完成以下三個操作:

  • 插入數據
  • 修改數據
  • 刪除數據

下面我們來簡單介紹一下DML的三種功能語句。

一、插入數據

在向數據表插入數據時,可以輸用以下語句:

INSERT INTO 表名(l1, l2, ........) VALUE (c1, c2, .....);
/*其中li(i = 1, 2, ....)爲表中的列名,ci(i = 1, 2, .....)表示要插入數據的內容*/

在使用VALUE關鍵字的時候,每條語句只能插入一條數據,如果需要使用一條語句插入多行記錄,需要使用VALUES關鍵字。(這種指定列名插入的方式,可以選擇表中的若干列進行記錄的插入操作,未進行數據插入的列將賦值爲MySQL的默認值’(null)’)
例如,我們想在‘dept’表中插入多行記錄,可以這樣編寫SQL語句:

INSERT  INTO dept(deptno,dname,loc) VALUES (10,'教研部','北京'),(20,'學工部','上海'),(30,'銷售部','廣州');
/*多行記錄之間要用‘,’隔開*/

使用插入語句時,也可以不指定插入的列名,但必須將每一列的數據按照表中列名順序依次填寫,否則DBMS會報錯,例如,我們想在‘dept’表中插入一行記錄,可以這樣編寫SQL語句:

INSERT  INTO dept VALUES (10,'教研部','北京');

在進行插入操作時,不確定的列可以賦值爲_null_,所有字符串賦值使用單引號。


+

WHERE字句

在介紹SQL語句的修改和刪除語句之前,我們需要先了解SQL語句的條件選擇子句:WHERE子句。

  • WHERE選擇子句的作用是在主句中有選擇的選取數據,相當於Java語言中的_if_語句;
  • WHERE子句的語法很簡單:WHERE 列 運算符 值;
  • WHERE子句中常用的運算符有:
運算符 描述
= 等於
<> 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
BETWEEN a AND b 在(a, b)範圍內
LIKE 搜索某種模式
IS NULL 數據爲(null)
NOT
AND 邏輯與
OR 邏輯或

先簡單介紹一下WHERE條件子句,具體用法會在後面的文章中具體介紹

二、修改數據

《數據庫(六)》中簡單介紹了表結構修改的數據庫語句,但我們在實際開發中一般不會輕易的去修改已經建好的數據表的結構,因爲那樣會引起一系列的連鎖反應,像前後端代碼可能會有較大的變動,對開發造成不良影響。相對與表結構的修改,我們在實際開發中用的比較多的是對錶中數據的修改,下面我們介紹一下對MySQL數據庫表中數據修改的SQL語句。

基本語法:

UPDATE 表名 SET col1 = value1, col2 = value2... WHERE ...;

其中WHERE語句爲可選選項,如果不添加WHERE子句,那麼表中所有記錄的col1col2字段的值都會被修改爲value1value2

例如,我們有一個dept表,裏面存儲的是公司各個部門及其信息,如下圖:
dept數據表
如果我們不加WHERE子句就對錶中數據修改,我們以修改deptmo爲例,在非安全模式下,可以執行以下語句:

UPDATE dept SET deptno = 10; /*不建議使用該語句*/

在MySQL中,如果執行上述語句會對錶中所有數據進行修改,但在MySQL系統中,設計者爲了避免開發人員的某些事物導致執行數據修改以及數據刪除過程中未添加限制條件,導致整個數據表中的數據全部被修改或刪除,設計了一種安全模式,這種模式使用SQL_SAFE_UPDATES參數標識是否使用該模式,參數值爲1時,啓動該模式,爲0時禁用該模式。
這裏我們先不做過多介紹。
下面我們使用帶WHERE子句的SQL語句進行表的數據值修改操作;執行下面的語句:

/*將loc字段值爲'武漢'的記錄改爲loc='杭州'*/
UPDATE dept SET loc = '杭州' WHERE loc = '武漢';

記錄更新後的表記錄:
數據修改後的表

三、刪除數據

基本語法爲:

DELETE FROM 表名 WHERE ...

使用方法和修改數據語句相同,其基本作用是在指定表中刪除滿足WHERE條件的記錄。


以上就是數據操作語言的基本內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章