真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL操作數(shù)據(jù)表的方式

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

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的烏拉特中網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

前言

我們在頁面上看到的數(shù)據(jù)展示和修改等一系列操作,其實是對數(shù)據(jù)表的查詢修改。所以學(xué)習(xí)基礎(chǔ)的程序設(shè)計,我們必須掌握數(shù)據(jù)表的操作!

查詢(select)

基本格式如下:

SELECT
{* | <字段列名>}
[
FROM <表 1>, <表 2>…
[WHERE <表達式>
[GROUP BY
[HAVING [{ }…]]
[ORDER BY ]
[LIMIT[,] ]
]

名詞含義如下:

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

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

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

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

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

  • [LIMIT[,]],該子句告訴 MySQL 每次顯示查詢出來的數(shù)據(jù)條數(shù)。

查詢表中所有字段

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

SELECT * FROM 表名;

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

查詢表中指定的字段

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

SELECT < 列名 > FROM < 表名 >;

去重(DISTINCT)

基本語法格式如下:

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

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

使用 DISTINCT 關(guān)鍵字時需要注意以下幾點:

  • DISTINCT 關(guān)鍵字只能在 SELECT 語句中使用。

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

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

為表指定別名

基本語法格式如下: 

<表名> [AS] <別名>

其中各子句的含義如下:

  • <表名>:數(shù)據(jù)庫中存儲的數(shù)據(jù)表的名稱。

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

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

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

為字段指定別名

基本語法格式如下:

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

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

  • <字段名>:為數(shù)據(jù)表中字段定義的名稱。

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

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

限制查詢結(jié)果的條數(shù)(limit)

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

指定初始位置

基本語法格式如下: 

LIMIT 初始位置,記錄數(shù)SELECT * FROM 表名 LIMIT 3,5;  //起始位置3,結(jié)束為止5

不指定初始位置

基本語法格式如下:  

LIMIT 記錄數(shù)SELECT * FROM 表名 LIMIT 4;  //4條記錄數(shù)量

LIMIT和OFFSET組合使用

基本語法格式如下:  

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

對查詢結(jié)果排序 (ORDER BY)

其語法格式如下: 

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

語法說明如下。

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

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

注意:

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

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

單字段排序

SELECT * FROM 表名 ORDER BY 字段名;

多字段排序

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

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

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

條件查詢數(shù)據(jù)(where)

基本語法格式如下:  

WHERE 查詢條件

查詢條件可以是:

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

  • 帶 BETWEEN AND 關(guān)鍵字的查詢條件

  • 帶 IS NULL 關(guān)鍵字的查詢條件

  • 帶 IN 關(guān)鍵字的查詢條件

  • 帶 LIKE 關(guān)鍵字的查詢條件

單一條件的查詢語句

單一條件指的是在 WHERE 關(guān)鍵字后只有一個查詢條件。 

多條件的查詢語句

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

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

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

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

模糊查詢(like)

基本語法格式如下:

[NOT] LIKE  '字符串'

其中:

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

  • 字符串:指定用來匹配的字符串?!白址笨梢允且粋€很完整的字符串,也可以包含通配符。

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

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

帶有“%”通配符的查詢

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

帶有“_”通配符的查詢

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

LIKE 區(qū)分大小寫

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

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

注意事項:

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

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

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


使用技巧:

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

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

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

范圍查詢(BETWEEN AND)

基本語法格式如下:

[NOT] BETWEEN 取值1 AND 取值2

其中:

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

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

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

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

空值查詢 (IS NULL)

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

基本語法格式如下:

IS [NOT] NULL

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

分組查詢(GROUP BY)

基本語法格式如下:

GROUP BY  <字段名>

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

GROUP BY單獨使用

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

GROUP BY 與 GROUP_CONCAT() 

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

GROUP BY 與聚合函數(shù)

在數(shù)據(jù)統(tǒng)計時,GROUP BY 關(guān)鍵字經(jīng)常和聚合函數(shù)一起使用。

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

GROUP BY 與 WITH ROLLUP

WITH POLLUP 關(guān)鍵字用來在所有記錄的最后加上一條記錄,這條記錄是上面所有記錄的總和,即統(tǒng)計記錄數(shù)量。 

過濾分組(HAVING)

在 MySQL 中,可以使用 HAVING 關(guān)鍵字對分組后的數(shù)據(jù)進行過濾。  

基本語法格式如下:

HAVING <查詢條件>

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

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

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

  • WHERE 在數(shù)據(jù)分組前進行過濾,而 HAVING 在數(shù)據(jù)分組后進行過濾 。

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

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

正則表達式(REGEXP)

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

基本語法格式如下:

屬性名 REGEXP '匹配方式'

其中,“屬性名”表示需要查詢的字段名稱;“匹配方式”表示以哪種方式來匹配查詢?!捌ヅ浞绞健敝杏泻芏嗟哪J狡ヅ渥址?,它們分別表示不同的意思。下表列出了 REGEXP 操作符中常用的匹配方式。 

選項說明例子匹配值示例
^匹配文本的開始字符'^b' 匹配以字母 b 開頭的字符串book、big、banana、bike
$匹配文本的結(jié)束字符'st$' 匹配以 st 結(jié)尾的字符串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

 

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

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

查詢以特定字符或字符串結(jié)尾的記錄

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

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

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

匹配多個字符

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

匹配指定字符串

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

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

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

匹配指定字符以外的字符

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

使用{n,}或者{n,m}來指定字符串連續(xù)出現(xiàn)的次數(shù)

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

插入數(shù)據(jù)/添加數(shù)據(jù)(INSERT)

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

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

語法說明如下。

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

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

  • VALUES 或 VALUE 子句:該子句包含要插入的數(shù)據(jù)清單。數(shù)據(jù)清單中數(shù)據(jù)的順序要和列的順序相對應(yīng)。

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

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

由 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ù)用圓括號括起來即可。  

修改數(shù)據(jù)/更新數(shù)據(jù)(UPDATE)

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

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

語法說明如下:

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

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

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

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

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

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

刪除數(shù)據(jù)(DELETE)

基本語法格式如下:  

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

語法說明如下:

  • <表名>:指定要刪除數(shù)據(jù)的表名。

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

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

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


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

到此,相信大家對“MySQL操作數(shù)據(jù)表的方式”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)站標題:MySQL操作數(shù)據(jù)表的方式
網(wǎng)頁路徑:http://weahome.cn/article/pdjdjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部