在mysql中,可以使用SELECT語句進(jìn)行表數(shù)據(jù)的查詢,使用INSERT語句進(jìn)行表數(shù)據(jù)的增加,使用UPDATE語句進(jìn)行表數(shù)據(jù)的修改,使用DELETE語句進(jìn)行表數(shù)據(jù)的刪除。
mysq表數(shù)據(jù)的查詢
在 MySQL 中,可以使用 SELECT 語句來查詢數(shù)據(jù)。查詢數(shù)據(jù)是指從數(shù)據(jù)庫中根據(jù)需求,使用不同的查詢方式來獲取不同的數(shù)據(jù),是使用頻率最高、最重要的操作。
SELECT 的語法格式如下:
SELECT {*?|?} [ FROM?,?… [WHERE? [GROUP?BY?<group> [HAVING?<expression>?[{<operator>?<expression>}…]] [ORDER?BY?<order>] [LIMIT[<offset>,]?<row>] ]</row></offset></order></expression></operator></expression></group>
其中,各條子句的含義如下:
-
{*|}包含星號通配符的字段列表,表示所要查詢字段的名稱。
-
,…,表 1 和表 2 表示查詢數(shù)據(jù)的來源,可以是單個或多個。
-
WHERE 是可選項(xiàng),如果選擇該項(xiàng),將限定查詢數(shù)據(jù)必須滿足該查詢條件。
-
GROUP BY,該子句告訴 MySQL 如何顯示查詢出來的數(shù)據(jù),并按照指定的字段分組。
-
[ORDER BY],該子句告訴 MySQL 按什么樣的順序顯示查詢出來的數(shù)據(jù),可以進(jìn)行的排序有升序(ASC)和降序(DESC),默認(rèn)情況下是升序。
[LIMIT[
例:查詢表中指定的字段
查詢表中的某一個字段的語法格式為:
SELECT??FROM?;
查詢 tb_students_info 表中 name 列所有學(xué)生的姓名,SQL 語句和運(yùn)行結(jié)果如下所示。
mysql>?SELECT?name?FROM?tb_students_info; +--------+ |?name???| +--------+ |?Dany???| |?Green??| |?Henry??| |?Jane???| |?Jim????| |?John???| |?Lily???| |?Susan??| |?Thomas?| |?Tom????| +--------+ 10?rows?in?set?(0.00?sec)
輸出結(jié)果顯示了 tb_students_info 表中 name 字段下的所有數(shù)據(jù)。
使用 SELECT 聲明可以獲取多個字段下的數(shù)據(jù),只需要在關(guān)鍵字 SELECT 后面指定要查找的字段名稱,不同字段名稱之間用逗號“,”分隔開,最后一個字段后面不需要加逗號,語法格式如下:
SELECT?,,…,?FROM?;
mysq表數(shù)據(jù)的增加
數(shù)據(jù)庫與表創(chuàng)建成功以后,需要向數(shù)據(jù)庫的表中插入數(shù)據(jù)。在 MySQL 中可以使用 INSERT 語句向數(shù)據(jù)庫已有的表中插入一行或者多行元組數(shù)據(jù)。
基本語法
INSERT 語句有兩種語法形式,分別是 INSERT…VALUES 語句和 INSERT…SET 語句。
1) INSERT…VALUES語句
INSERT?VALUES?的語法格式為: INSERT?INTO??[??[?,?…?]?] VALUES?(值1)?[…?,?(值n)?];
語法說明如下。
-
:指定被操作的表名。
-
:指定需要插入數(shù)據(jù)的列名。若向表中的所有列插入數(shù)據(jù),則全部的列名均可以省略,直接采用 INSERTVALUES(…) 即可。
-
VALUES 或 VALUE 子句:該子句包含要插入的數(shù)據(jù)清單。數(shù)據(jù)清單中數(shù)據(jù)的順序要和列的順序相對應(yīng)。
2) INSERT…SET語句
語法格式為:
INSERT?INTO? SET??=?, ?????????=?, ????????…
此語句用于直接給表中的某些列指定對應(yīng)的列值,即要插入的數(shù)據(jù)的列名在 SET 子句中指定,col_name 為指定的列名,等號后面為指定的數(shù)據(jù),而對于未指定的列,列值會指定為該列的默認(rèn)值。
由 INSERT 語句的兩種形式可以看出:
-
使用 INSERT…VALUES 語句可以向表中插入一行數(shù)據(jù),也可以插入多行數(shù)據(jù);
-
使用 INSERT…SET 語句可以指定插入行中每列的值,也可以指定部分列的值;
-
INSERT…SELECT 語句向表中插入其他表的數(shù)據(jù)。
-
采用 INSERT…SET 語句可以向表中插入部分列的值,這種方式更為靈活;
-
INSERT…VALUES 語句可以一次插入多條數(shù)據(jù)。
在 MySQL 中,用單條 INSERT 語句處理多個插入要比使用多條 INSERT 語句更快。
當(dāng)使用單條 INSERT 語句插入多行數(shù)據(jù)的時候,只需要將每行數(shù)據(jù)用圓括號括起來即可。
mysq表數(shù)據(jù)的修改
在 MySQL 中,可以使用 UPDATE 語句來修改、更新一個或多個表的數(shù)據(jù)。
UPDATE 語句的基本語法
使用 UPDATE 語句修改單個表,語法格式為:
UPDATE??SET?字段?1=值?1?[,字段?2=值?2…?]?[WHERE?子句?] [ORDER?BY?子句]?[LIMIT?子句]
語法說明如下:
:用于指定要更新的表名稱。
SET 子句:用于指定表中要修改的列名及其列值。其中,每個指定的列值可以是表達(dá)式,也可以是該列對應(yīng)的默認(rèn)值。如果指定的是默認(rèn)值,可用關(guān)鍵字 DEFAULT 表示列值。
WHERE 子句:可選項(xiàng)。用于限定表中要修改的行。若不指定,則修改表中所有的行。
ORDER BY 子句:可選項(xiàng)。用于限定表中的行被修改的次序。
LIMIT 子句:可選項(xiàng)。用于限定被修改的行數(shù)。
注意:修改一行數(shù)據(jù)的多個列值時,SET 子句的每個值用逗號分開即可。
實(shí)例:修改表中的數(shù)據(jù)
在 tb_courses_new 表中,更新所有行的 course_grade 字段值為 4,輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。
mysql>?UPDATE?tb_courses_new ????->?SET?course_grade=4; Query?OK,?3?rows?affected?(0.11?sec) Rows?matched:?4??Changed:?3??Warnings:?0 mysql>?SELECT?*?FROM?tb_courses_new; +-----------+-------------+--------------+------------------+ |?course_id?|?course_name?|?course_grade?|?course_info??????| +-----------+-------------+--------------+------------------+ |?????????1?|?Network?????|????????????4?|?Computer?Network?| |?????????2?|?Database????|????????????4?|?MySQL????????????| |?????????3?|?Java????????|????????????4?|?Java?EE??????????| |?????????4?|?System??????|????????????4?|?Operating?System?| +-----------+-------------+--------------+------------------+ 4?rows?in?set?(0.00?sec)
mysq表數(shù)據(jù)的刪除
在 MySQL 中,可以使用 DELETE 語句來刪除表的一行或者多行數(shù)據(jù)。
刪除單個表中的數(shù)據(jù)
使用 DELETE 語句從單個表中刪除數(shù)據(jù),語法格式為:
DELETE?FROM??[WHERE?子句]?[ORDER?BY?子句]?[LIMIT?子句]
語法說明如下:
-
:指定要刪除數(shù)據(jù)的表名。
-
ORDER BY 子句:可選項(xiàng)。表示刪除時,表中各行將按照子句中指定的順序進(jìn)行刪除。
-
WHERE 子句:可選項(xiàng)。表示為刪除操作限定刪除條件,若省略該子句,則代表刪除該表中的所有行。
-
LIMIT 子句:可選項(xiàng)。用于告知服務(wù)器在控制命令被返回到客戶端前被刪除行的最大值。
注意:在不使用 WHERE 條件的時候,將刪除所有數(shù)據(jù)。
刪除表中的全部數(shù)據(jù)
實(shí)例:刪除 tb_courses_new 表中的全部數(shù)據(jù),輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。
mysql>?DELETE?FROM?tb_courses_new; Query?OK,?3?rows?affected?(0.12?sec) mysql>?SELECT?*?FROM?tb_courses_new; Empty?set?(0.00?sec)
推薦教程:mysql視頻教程