中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL操作數據表的方式

發布時間:2021-09-16 14:48:03 來源:億速云 閱讀:117 作者:chen 欄目:編程語言

本篇內容主要講解“MySQL操作數據表的方式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL操作數據表的方式”吧!

前言

我們在頁面上看到的數據展示和修改等一系列操作,其實是對數據表的查詢修改。所以學習基礎的程序設計,我們必須掌握數據表的操作!

查詢(select)

基本格式如下:

SELECT
{* | <字段列名>}
[
FROM <表 1>, <表 2>…
[WHERE <表達式>
[GROUP BY <group by definition>
[HAVING <expression> [{<operator> <expression>}…]]
[ORDER BY <order by definition>]
[LIMIT[<offset>,] <row count>]
]

名詞含義如下:

  • {*|<字段列名>}包含星號通配符的字段列表,表示所要查詢字段的名稱。

  • <表 1>,<表 2>…,表 1 和表 2 表示查詢數據的來源,可以是單個或多個。

  • WHERE <表達式>是可選項,如果選擇該項,將限定查詢數據必須滿足該查詢條件。

  • GROUP BY< 字段 >,該子句告訴 MySQL 如何顯示查詢出來的數據,并按照指定的字段分組。

  • [ORDER BY< 字段 >],該子句告訴 MySQL 按什么樣的順序顯示查詢出來的數據,可以進行的排序有升序(ASC)和降序(DESC),默認情況下是升序。

  • [LIMIT[<offset>,]<row count>],該子句告訴 MySQL 每次顯示查詢出來的數據條數。

查詢表中所有字段

SELECT 使用“*”查找表中所有字段的數據,或者列出所有字段名,語法格式如下:  

SELECT * FROM 表名;

注意:使用“*”查詢時,只能按照數據表中字段的順序進行排列,不能改變字段的排列順序。  

查詢表中指定的字段

查詢表中的某一個字段的語法格式為: 

SELECT < 列名 > FROM < 表名 >;

去重(DISTINCT)

基本語法格式如下:

SELECT DISTINCT <字段名> FROM <表名>;

“字段名”為需要消除重復記錄的字段名稱,多個字段時用逗號隔開。  

使用 DISTINCT 關鍵字時需要注意以下幾點:

  • DISTINCT 關鍵字只能在 SELECT 語句中使用。

  • 在對一個或多個字段去重時,DISTINCT 關鍵字必須在所有字段的最前面。

  • 如果 DISTINCT 關鍵字后有多個字段,則會對多個字段進行組合去重,也就是說,只有多個字段組合起來完全是一樣的情況下才會被去重。

為表指定別名

基本語法格式如下: 

<表名> [AS] <別名>

其中各子句的含義如下:

  • <表名>:數據庫中存儲的數據表的名稱。

  • <別名>:查詢時指定的表的新名稱。

  • AS關鍵字可以省略,省略后需要將表名和別名用空格隔開。

注意:表的別名不能與該數據庫的其它表同名。字段的別名不能與該表的其它字段同名。在條件表達式中不能使用字段的別名,否則會出現“ERROR 1054 (42S22): Unknown column”這樣的錯誤提示信息。 

為字段指定別名

基本語法格式如下:

<字段名> [AS] <別名>

其中,各子句的語法含義如下:

  • <字段名>:為數據表中字段定義的名稱。

  • <字段別名>:字段新的名稱。

  • AS關鍵字可以省略,省略后需要將字段名和別名用空格隔開。

限制查詢結果的條數(limit)

LIMIT 是 MySQL 中的一個特殊關鍵字,用于指定查詢結果從哪條記錄開始顯示,一共顯示多少條記錄。LIMIT 關鍵字有 3 種使用方式,即指定初始位置、不指定初始位置以及與 OFFSET 組合使用。  

指定初始位置

基本語法格式如下: 

LIMIT 初始位置,記錄數SELECT * FROM 表名 LIMIT 3,5;  //起始位置3,結束為止5

不指定初始位置

基本語法格式如下:  

LIMIT 記錄數SELECT * FROM 表名 LIMIT 4;  //4條記錄數量

LIMIT和OFFSET組合使用

基本語法格式如下:  

LIMIT 記錄數 OFFSET 初始位置SELECT * FROM tb_students_info LIMIT 5 OFFSET 3;  //返回從第 4 條記錄開始的行數為 5 的記錄

對查詢結果排序 (ORDER BY)

其語法格式如下: 

ORDER BY <字段名> [ASC|DESC]

語法說明如下。

  • 字段名:表示需要排序的字段名稱,多個字段時用逗號隔開。

  • ASC|DESC:ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC為默認值。

注意:

  • ORDER BY 關鍵字后可以跟子查詢(關于子查詢后面教程會詳細講解,這里了解即可)。

  • 當排序的字段中存在空值時,ORDER BY 會將該空值作為最小值來對待。

單字段排序

SELECT * FROM 表名 ORDER BY 字段名;

多字段排序

SELECT 字段1,字段2 FROM 表名 ORDER BY 字段1,字段2;

注意:在對多個字段進行排序時,排序的第一個字段必須有相同的值,才會對第二個字段進行排序。如果第一個字段數據中所有的值都是唯一的,MySQL 將不再對第二個字段進行排序。  

默認情況下,查詢數據按字母升序進行排序(A~Z),但數據的排序并不僅限于此,還可以使用 ORDER BY 中的 DESC 對查詢結果進行降序排序(Z~A)。  

條件查詢數據(where)

基本語法格式如下:  

WHERE 查詢條件

查詢條件可以是:

  • 帶比較運算符和邏輯運算符的查詢條件

  • 帶 BETWEEN AND 關鍵字的查詢條件

  • 帶 IS NULL 關鍵字的查詢條件

  • 帶 IN 關鍵字的查詢條件

  • 帶 LIKE 關鍵字的查詢條件

單一條件的查詢語句

單一條件指的是在 WHERE 關鍵字后只有一個查詢條件。 

多條件的查詢語句

在 WHERE 關鍵詞后可以有多個查詢條件,這樣能夠使查詢結果更加精確。多個查詢條件時用邏輯運算符 AND(&&)、OR(||)或 XOR 隔開。

  • AND:記錄滿足所有查詢條件時,才會被查詢出來。

  • OR:記錄滿足任意一個查詢條件時,才會被查詢出來。

  • XOR:記錄滿足其中一個條件,并且不滿足另一個條件時,才會被查詢出來。

模糊查詢(like)

基本語法格式如下:

[NOT] LIKE  '字符串'

其中:

  • NOT :可選參數,字段中的內容與指定的字符串不匹配時滿足條件。

  • 字符串:指定用來匹配的字符串。“字符串”可以是一個很完整的字符串,也可以包含通配符。

LIKE 關鍵字支持百分號“%”和下劃線“_”通配符。 

通配符是一種特殊語句,主要用來模糊查詢。當不知道真正字符或者懶得輸入完整名稱時,可以使用通配符來代替一個或多個真正的字符。 

帶有“%”通配符的查詢

“%”是 MySQL 中最常用的通配符,它能代表任何長度的字符串,字符串的長度可以為 0。例如,a%b表示以字母 a 開頭,以字母 b 結尾的任意長度的字符串。該字符串可以代表 ab、acb、accb、accrb 等字符串。  

帶有“_”通配符的查詢

_”只能代表單個字符,字符的長度不能為 0。例如,a_b可以代表 acb、adb、aub 等字符串。  

LIKE 區分大小寫

默認情況下,LIKE 關鍵字匹配字符的時候是不區分大小寫的。如果需要區分大小寫,可以加入 BINARY 關鍵字。  

使用通配符的注意事項和技巧

注意事項:

  • 注意大小寫。MySQL 默認是不區分大小寫的。如果區分大小寫,像“Tom”這樣的數據就不能被“t%”所匹配到。

  • 注意尾部空格,尾部空格會干擾通配符的匹配。例如,“T% ”就不能匹配到“Tom”。

  • 注意 NULL。“%”通配符可以到匹配任意字符,但是不能匹配 NULL。也就是說 “%”匹配不到 tb_students_info 數據表中值為 NULL 的記錄。


使用技巧:

  • 不要過度使用通配符,如果其它操作符能達到相同的目的,應該使用其它操作符。因為 MySQL 對通配符的處理一般會比其他操作符花費更長的時間。

  • 在確定使用通配符后,除非絕對有必要,否則不要把它們用在字符串的開始處。把通配符置于搜索模式的開始處,搜索起來是最慢的。

  • 仔細注意通配符的位置。如果放錯地方,可能不會返回想要的數據。

范圍查詢(BETWEEN AND)

基本語法格式如下:

[NOT] BETWEEN 取值1 AND 取值2

其中:

  • NOT:可選參數,表示指定范圍之外的值。如果字段值不滿足指定范圍內的值,則這些記錄被返回。

  • 取值1:表示范圍的起始值。

  • 取值2:表示范圍的終止值。

BETWEEN AND 和 NOT BETWEEN AND 關鍵字在查詢指定范圍內的記錄時很有用。例如,查詢學生的年齡段、出生日期,員工的工資水平等。  

空值查詢 (IS NULL)

MySQL 提供了 IS NULL 關鍵字,用來判斷字段的值是否為空值(NULL)。空值不同于 0,也不同于空字符串。 如果字段的值是空值,則滿足查詢條件,該記錄將被查詢出來。如果字段的值不是空值,則不滿足查詢條件。 

基本語法格式如下:

IS [NOT] NULL

“NOT”是可選參數,表示字段值不是空值時滿足條件。  

分組查詢(GROUP BY)

基本語法格式如下:

GROUP BY  <字段名>

“字段名”表示需要分組的字段名稱,多個字段時用逗號隔開。 

GROUP BY單獨使用

單獨使用 GROUP BY 關鍵字時,查詢結果會只顯示每個分組的第一條記錄。

GROUP BY 與 GROUP_CONCAT() 

GROUP BY 關鍵字可以和 GROUP_CONCAT() 函數一起使用。GROUP_CONCAT() 函數會把每個分組的字段值都顯示出來。 

GROUP BY 與聚合函數

在數據統計時,GROUP BY 關鍵字經常和聚合函數一起使用。

聚合函數包括 COUNT(),SUM(),AVG(),MAX() 和 MIN()。其中,COUNT() 用來統計記錄的條數;SUM() 用來計算字段值的總和;AVG() 用來計算字段值的平均值;MAX() 用來查詢字段的最大值;MIN() 用來查詢字段的最小值。  

GROUP BY 與 WITH ROLLUP

WITH POLLUP 關鍵字用來在所有記錄的最后加上一條記錄,這條記錄是上面所有記錄的總和,即統計記錄數量。 

過濾分組(HAVING)

在 MySQL 中,可以使用 HAVING 關鍵字對分組后的數據進行過濾。  

基本語法格式如下:

HAVING <查詢條件>

HAVING 關鍵字和 WHERE 關鍵字都可以用來過濾數據,且 HAVING 支持 WHERE 關鍵字中所有的操作符和語法。
但是 WHERE 和 HAVING 關鍵字也存在以下幾點差異:

  • 一般情況下,WHERE 用于過濾數據行,而 HAVING 用于過濾分組。

  • WHERE 查詢條件中不可以使用聚合函數,而 HAVING 查詢條件中可以使用聚合函數。

  • WHERE 在數據分組前進行過濾,而 HAVING 在數據分組后進行過濾 。

  • WHERE 針對數據庫文件進行過濾,而 HAVING 針對查詢結果進行過濾。也就是說,WHERE 根據數據表中的字段直接進行過濾,而 HAVING 是根據前面已經查詢出的字段進行過濾。

  • WHERE 查詢條件中不可以使用字段別名,而 HAVING 查詢條件中可以使用字段別名。

正則表達式(REGEXP)

正則表達式主要用來查詢和替換符合某個模式(規則)的文本內容。例如,從一個文件中提取電話號碼,查找一篇文章中重復的單詞、替換文章中的敏感語匯等,這些地方都可以使用正則表達式。正則表達式強大且靈活,常用于非常復雜的查詢。 

基本語法格式如下:

屬性名 REGEXP '匹配方式'

其中,“屬性名”表示需要查詢的字段名稱;“匹配方式”表示以哪種方式來匹配查詢。“匹配方式”中有很多的模式匹配字符,它們分別表示不同的意思。下表列出了 REGEXP 操作符中常用的匹配方式。 

選項說明例子匹配值示例
^匹配文本的開始字符'^b' 匹配以字母 b 開頭的字符串book、big、banana、bike
$匹配文本的結束字符'st$' 匹配以 st 結尾的字符串test、resist、persist
.匹配任何單個字符'b.t' 匹配任何 b 和 t 之間有一個字符bit、bat、but、bite
*匹配零個或多個在它前面的字符'f*n' 匹配字符 n 前面有任意個字符 ffn、fan、faan、abcn
+匹配前面的字符 1 次或多次'ba+' 匹配以 b 開頭,后面至少緊跟一個 aba、bay、bare、battle
<字符串>匹配包含指定字符的文本'fa' 匹配包含‘fa’的文本fan、afa、faad
[字符集合]匹配字符集合中的任何一個字符'[xz]' 匹配 x 或者 zdizzy、zebra、x-ray、extra
[^]匹配不在括號中的任何字符'[^abc]' 匹配任何不包含 a、b 或 c 的字符串desk、fox、f8ke
字符串{n,}匹配前面的字符串至少 n 次'b{2}' 匹配 2 個或更多的 bbbb、bbbb、bbbbbbb
字符串
{n,m}
匹配前面的字符串至少 n 次, 至多 m 次'b{2,4}' 匹配最少 2 個,最多 4 個 bbbb、bbbb

 

查詢以特定字符或字符串開頭的記錄

字符^用來匹配以特定字符或字符串開頭的記錄。

查詢以特定字符或字符串結尾的記錄

字符$用來匹配以特定字符或字符串結尾的記錄。

替代字符串中的任意一個字符

字符.用來替代字符串中的任意一個字符。 

匹配多個字符

字符*+都可以匹配多個該符號之前的字符。不同的是,+表示至少一個字符,而*可以表示 0 個字符。 

匹配指定字符串

正則表達式可以匹配字符串。當表中的記錄包含這個字符串時,就可以將該記錄查詢出來。指定多個字符串時,需要用|隔開。只要匹配這些字符串中的任意一個即可。 

匹配指定字符串中的任意一個

使用方括號[ ]可以將需要查詢的字符組成一個字符集合。只要記錄中包含方括號中的任意字符,該記錄就會被查詢出來。例如,通過“[abc]”可以查詢包含 a、b 和 c 等 3 個字母中任意一個的記錄。 

匹配指定字符以外的字符

[^字符集合]用來匹配不在指定集合中的任何字符。  

使用{n,}或者{n,m}來指定字符串連續出現的次數

字符串{n,}表示字符串連續出現 n 次;字符串{n,m}表示字符串連續出現至少 n 次,最多 m 次。
例如,a{2,} 表示字母 a 連續出現至少 2 次,也可以大于 2 次;a{2,4} 表示字母 a 連續出現最少 2 次,最多不能超過 4 次。  

插入數據/添加數據(INSERT)

INSERT 語句有兩種語法形式,分別是 INSERT…VALUES 語句和 INSERT…SET 語句。 

INSERT…VALUES語句
INSERT INTO <表名> [ <列名1> [ , … <列名n>] ]
VALUES (值1) [… , (值n) ];

語法說明如下。

  • <表名>:指定被操作的表名。

  • <列名>:指定需要插入數據的列名。若向表中的所有列插入數據,則全部的列名均可以省略,直接采用 INSERT<表名>VALUES(…) 即可。

  • VALUES 或 VALUE 子句:該子句包含要插入的數據清單。數據清單中數據的順序要和列的順序相對應。

INSERT…SET語句
INSERT INTO <表名>
SET <列名1> = <值1>,
       <列名2> = <值2>,
       …

此語句用于直接給表中的某些列指定對應的列值,即要插入的數據的列名在 SET 子句中指定,col_name 為指定的列名,等號后面為指定的數據,而對于未指定的列,列值會指定為該列的默認值。

由 INSERT 語句的兩種形式可以看出:

  • 使用 INSERT…VALUES 語句可以向表中插入一行數據,也可以插入多行數據;

  • 使用 INSERT…SET 語句可以指定插入行中每列的值,也可以指定部分列的值;

  • INSERT…SELECT 語句向表中插入其他表的數據。

  • 采用 INSERT…SET 語句可以向表中插入部分列的值,這種方式更為靈活;

  • INSERT…VALUES 語句可以一次插入多條數據。

在 MySQL 中,用單條 INSERT 語句處理多個插入要比使用多條 INSERT 語句更快。
當使用單條 INSERT 語句插入多行數據的時候,只需要將每行數據用圓括號括起來即可。  

修改數據/更新數據(UPDATE)

使用 UPDATE 語句修改單個表,基本語法格式如下:  

UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]

語法說明如下:

  • <表名>:用于指定要更新的表名稱。

  • SET 子句:用于指定表中要修改的列名及其列值。其中,每個指定的列值可以是表達式,也可以是該列對應的默認值。如果指定的是默認值,可用關鍵字 DEFAULT 表示列值。

  • WHERE 子句:可選項。用于限定表中要修改的行。若不指定,則修改表中所有的行。

  • ORDER BY 子句:可選項。用于限定表中的行被修改的次序。

  • LIMIT 子句:可選項。用于限定被修改的行數。

注意:修改一行數據的多個列值時,SET 子句的每個值用逗號分開即可。 

刪除數據(DELETE)

基本語法格式如下:  

DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]

語法說明如下:

  • <表名>:指定要刪除數據的表名。

  • ORDER BY 子句:可選項。表示刪除時,表中各行將按照子句中指定的順序進行刪除。

  • WHERE 子句:可選項。表示為刪除操作限定刪除條件,若省略該子句,則代表刪除該表中的所有行。

  • LIMIT 子句:可選項。用于告知服務器在控制命令被返回到客戶端前被刪除行的最大值。


注意:在不使用 WHERE 條件的時候,將刪除所有數據。  

到此,相信大家對“MySQL操作數據表的方式”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通江县| 左权县| 澎湖县| 新竹县| 佳木斯市| 东城区| 德保县| 山东省| 启东市| 武强县| 汶川县| 高安市| 尉犁县| 新邵县| 乌鲁木齐市| 信阳市| 宁陕县| 古田县| 盐池县| 武乡县| 镇江市| 江门市| 哈巴河县| 金华市| 贺州市| 青海省| 丹东市| 安阳市| 泸溪县| 衡东县| 霍山县| 姜堰市| 平泉县| 永清县| 台江县| 蓬溪县| 开江县| 嵊州市| 玉树县| 南召县| 额济纳旗|