1
2
3
4
5
6
7
8
9
10
11

SQL操作和查詢語言

發(fā)布時間:2017-09-26 05:10   發(fā)布人:毛書朋   浏覽次數:7584


關聯課件:   3子項目三 -SQL操作和查詢語言(點擊在線預覽)


3.3.3.3  數據操作語言(INSERT/UPDATE/DELETE)


1.INSERT語句

      INSERT語句用來向(xiàng)表中插入新的數據記錄。每次插入一條。如要向(xiàng)剛才創建的info表中插入一條各字段值分别爲“張三”、“男”、“20”的記錄,可以使用下面(miàn)的語句:

mysql> INSERT INTO info VALUES(“張三”,”男”,20);

      執行後(hòu)顯示“Query OK, 1 row affected (0.08 sec)”,表示語句執行成(chéng)功。

      值得注意的是,在插入數據時,字符串型值要用雙引号或者單引号引起(qǐ)來,數值型不用引号(加引号就錯了)。而且提供的數據也必須按照表的字段順序排列,不能(néng)颠倒。

      在下面(miàn)的小節中將(jiāng)介紹如何從表中查詢數據。在查詢之前,先執行幾次INSERT語句向(xiàng)表中插入幾條信息,這(zhè)樣可以更加形象地說明查詢語句的作用。不妨再插入“李四”、“王五”、“趙六”3條記錄,這(zhè)樣表中共有4條記錄。


2.UPDATE語句

      UPDATE語句可以對(duì)表中現有的記錄進(jìn)行修改。

1)修改全部記錄的某個字段的值

     例如要將(jiāng)info表中全部記錄的年齡都(dōu)修改成(chéng)25,可以使用下面(miàn)的語句:

mysql> UPDATE info SET age=25;

     這(zhè)時如果用SELECT語句查詢此表,會看到所有記錄的age字段都(dōu)變成(chéng)了25。(讀者可以執行SELECT * FROM info;語句來查看表中的數據,SELECT語句的詳細用法將(jiāng)在7.4.4節介紹)。

      此外,還(hái)可以一次修改多個字段的值。如除了要將(jiāng)所有記錄的age字段修改成(chéng)25,還(hái)要將(jiāng)所有sex記錄修改爲“女”,可以用如下語句:

mysql> UPDATE info SET age = 25, sex = “女”;

      也就是說,多個字段之間用逗号隔開(kāi),可以一次修改多個字段的值。

2)修改滿足某條件的記錄

     通過(guò)WHERE子句指定的條件,可以修改滿足指定條件的記錄的值。如要將(jiāng)姓名爲“張三”的記錄的年齡修改成(chéng)23,可以用如下語句:

mysql> UPDATE info SET age = 23 WHERE name = “張三”;

      執行之後(hòu)再用SELECT語句查詢此表,會發(fā)現“張三”的年齡爲23,其他記錄的年齡的均爲25。

      同樣可以用逗号隔開(kāi)的方法,修改滿足指定條件的記錄的多個字段。


3.DELETE語句

     DELETE語句用來删除表中的記錄。可以一次删除全部記錄,也可以删除滿足指定條件的記錄。

1)删除表中的全部記錄。

     如要删除表info中全部記錄,可以用以下語句:

mysql>DELETE FROM info;

     該語句執行後(hòu)表info中的全部記錄都(dōu)會被删除。可以看出該命令是比較危險的,不小心很容易造成(chéng)誤删,帶來意想不到的後(hòu)果。因此使用此命令時應盡量注意。

2)删除滿足條件的記錄

     如果要删除表info中性别爲“女”的記錄,可以用如下命令:

mysql> DELETE FORM info WHERE sex = “女”;

     讀者可以自行嘗試變換條件,來觀察語句運行效果。

3.3.3.4  數據查詢語言(SELECT)


     SELECT語句用來查詢表中的數據。SELECT語句是SQL中最複雜的語句之一。因爲用SELECT語句可以實現極爲複雜的查詢功能(néng),如可以查詢某個表中全部記錄、部分滿足條件的記錄、全部字段、部分滿足條件的字段等。還(hái)可以同時從多個表中查詢滿足條件的記錄,以及對(duì)查詢結果進(jìn)行排序等。

     這(zhè)裡(lǐ)僅介紹幾種(zhǒng)常用的SELECT語句,讀者可以參考其他數據庫專業書籍來更加深入地學(xué)習。

1)查詢全部記錄全部字段

     查詢一個表中全部記錄,可以用如下語句:

mysql> SELECT * FROM info;

     這(zhè)裡(lǐ)“*”表示所有字段。info爲表名。程序執行後(hòu)輸出:

------ ------ ------

| name | sex  | age  |

------ ------ ------

| 張三 | 男   |   20 |

| 李四 | 男   |   18 |

| 王五 | 女   |   18 |

| 趙六 | 女   |   17 |

------ ------ ------

4 rows in set (0.02 sec)

     可見剛才插入的4條數據全部被查詢出來了。

2)查詢全部記錄的部分字段值

      可以通過(guò)指定具體的字段和排序方式,來過(guò)濾掉不需要顯示的字段。如要查詢所有記錄的姓名、年齡兩(liǎng)個字段值,可以用如下語句:

mysql> SELECT name,age FROM info;

      執行後(hòu)輸出

------ ------

| name | age  |

------ ------

| 張三 |   20 |

| 李四 |   18 |

| 王五 |   18 |

| 趙六 |   17 |

------ ------

4 rows in set (0.00 sec)

3)查詢滿足某個條件的記錄

      通過(guò)SELECT語句的WHERE子句,可以查詢某些滿足指定條件的記錄,這(zhè)在查詢中極爲常用。如要查詢所有年齡小于19的記錄,可以用如下語句:

mysql> SELECT * FROM info WHERE age<19;

     執行後(hòu)輸出:

------ ------ ------

| name | sex  | age  |

------ ------ ------

| 李四 | 男   |   18 |

| 王五 | 女   |   18 |

| 趙六 | 女   |   17 |

------ ------ ------

3 rows in set (0.01 sec)

      當查詢條件有多個時,可以使用AND關鍵字。如現在查詢所有年齡小于19并且性别爲女的記錄,可以使用下列語句:

mysql> SELECT * FROM infor WHERE age<19 AND sex = “女”;

       該語句執行後(hòu),將(jiāng)隻輸出滿足條件的王五、趙六的兩(liǎng)條記錄。

4)查詢某些記錄,并對(duì)結果進(jìn)行排序

      使用SELECT語句的ORDER BY子句可以對(duì)查詢結果進(jìn)行排序。如查詢所有性别爲“女”的記錄,并且將(jiāng)結果按照年齡從小到大排序。

mysql> SELECT * FROM info WHERE sex= “女” ORDER BY age ASC;

      運行後(hòu)輸出結果如下:

------ ------ ------

| name | sex  | age  |

------ ------ ------

| 趙六 | 女   |   17 |

| 王五 | 女   |   18 |

------ ------ ------

2 rows in set (0.01 sec)

       如果要將(jiāng)從小到大改爲從大到小,則將(jiāng)命令中的“ASC”改爲“DESC”即可。

本節簡要地介紹了一些Web開(kāi)發(fā)中最爲常用的SQL語句。這(zhè)些語句能(néng)夠滿足一般Web開(kāi)發(fā)的需求。在後(hòu)面(miàn)的編程中經(jīng)常會用到SQL語句,讀者應注意多積累、多比較、多練習。掌握盡量多的SQL語句的使用方法,才能(néng)在以後(hòu)的開(kāi)發(fā)中得心應手。




  • 劉普敏 2018-01-07 15:39:09
    //返回括号裡(lǐ)字符串的字符全部大寫的字符串 $str=strtoupper("sdaf"); //將(jiāng)括号裡(lǐ)第一個字符串變成(chéng)大寫後(hòu)返回 $str=ucfirst("asdf"); //用echo等將(jiāng)括号裡(lǐ)字符串打印在網頁上時原汁原味打印出括号裡(lǐ)的字符串,包括标簽字符 $str=htmlentities("<br/>");
  • 劉普敏 2018-01-07 15:40:16
    批量插入多條數據 insert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);
  • 劉鑫蕊 2018-01-09 16:07:30
    老師講的很詳細,從中學(xué)到了很多。
  • 嶽猛 2018-01-09 16:11:24
    經(jīng)過(guò)SQL操作和查詢語言講的非常的詳細,讓我學(xué)會了好(hǎo)多的知識
  • 甄丹丹 2018-01-09 16:27:57
    條理清晰,通俗易懂
  • 潘龍飛 2018-01-09 17:17:27
    精緻的講解,通俗易懂,學(xué)到不少,
  • 李倩文 2018-01-10 11:48:39
    簡要地介紹了一些Web開(kāi)發(fā)中最爲常用的SQL語句。這(zhè)些語句能(néng)夠滿足一般Web開(kāi)發(fā)的需求。在後(hòu)面(miàn)的編程中經(jīng)常會用到SQL語句,讀者應注意多積累、多比較、多練習。掌握盡量多的SQL語句的使用方法,才能(néng)在以後(hòu)的開(kāi)發(fā)中得心應手。
  • 劉心怡 2018-01-10 12:06:04
    通俗易懂 方便學(xué)習
  • 楊宇生 2018-01-10 19:19:41
    内容詳細易懂,感謝老師