欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL之where使用詳解

 更新時(shí)間:2021年11月12日 08:31:50   作者:李子捌  
我們需要獲取數(shù)據(jù)庫(kù)表數(shù)據(jù)的特定子集時(shí),可以使用where子句指定搜索條件進(jìn)行過(guò)濾。本文主要介紹了MySQL之where使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1、簡(jiǎn)介

當(dāng)我們需要獲取數(shù)據(jù)庫(kù)表數(shù)據(jù)的特定子集時(shí),可以使用where子句指定搜索條件進(jìn)行過(guò)濾。where子句的使用場(chǎng)景非常豐富,它是MySQL語(yǔ)句中需要重點(diǎn)掌握的一個(gè)知識(shí)點(diǎn)。where實(shí)現(xiàn)的所有功能都可以在MySQL之外實(shí)現(xiàn),但是直接在MySQL中過(guò)濾查詢(xún)速度更快,也能節(jié)省網(wǎng)絡(luò)傳輸開(kāi)銷(xiāo)。

2、正文

首先準(zhǔn)備一張User表,DDL和表數(shù)據(jù)如下所示,可以直接復(fù)制使用。

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
 
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用戶名',
  `age` int(11) NOT NULL COMMENT '年齡',
  `sex` smallint(6) NOT NULL COMMENT '性別',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '李子捌', 18, 1);
INSERT INTO `user` VALUES (2, '張三', 22, 1);
INSERT INTO `user` VALUES (3, '李四', 38, 1);
INSERT INTO `user` VALUES (4, '王五', 25, 1);
INSERT INTO `user` VALUES (5, '六麻子', 13, 0);
INSERT INTO `user` VALUES (6, '田七', 37, 1);
INSERT INTO `user` VALUES (7, '謝禮', 18, 1);
 
SET FOREIGN_KEY_CHECKS = 1;

數(shù)據(jù)的初始順序如下所示:

mysql> select * from user;
+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  1 | 李子捌 |  18 |   1 |
|  2 | 張三   |  22 |   1 |
|  3 | 李四   |  38 |   1 |
|  4 | 王五   |  25 |   1 |
|  5 | 六麻子 |  13 |   0 |
|  6 | 田七   |  37 |   1 |
|  7 | 謝禮   |  18 |   1 |
+----+--------+-----+-----+
7 rows in set (0.00 sec)

2.1 where子句位置

where子句位于from之后,比如:

mysql> select * from user where age=18;
+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  1 | 李子捌 |  18 |   1 |
|  7 | 謝禮   |  18 |   1 |
|  8 | 李子柒 |  18 |   1 |
+----+--------+-----+-----+
3 rows in set (0.00 sec)

如果使用order by,where子句位于order by之前,比如:

mysql> select * from user where age = 18 order by name;
+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  1 | 李子捌 |  18 |   1 |
|  8 | 李子柒 |  18 |   1 |
|  7 | 謝禮   |  18 |   1 |
+----+--------+-----+-----+
3 rows in set (0.00 sec)

2.2 操作符

where子句支持8個(gè)操作符,它們分別如下所示:

操作符 操作符說(shuō)明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN AND 兩個(gè)值之間的區(qū)間 比如 BETWEEN 1 AND 100

接下來(lái)使用表中操作符一個(gè)個(gè)的進(jìn)行where子查詢(xún)。

2.2.1 操作符 =

操作符=可以用于查詢(xún)完全匹配的數(shù)據(jù),注意MySQL默認(rèn)不區(qū)分英文大小寫(xiě).

需求:
查詢(xún)name等于李子捌的數(shù)據(jù)
語(yǔ)句:

select * from user where name = '李子捌';

結(jié)果:

+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  1 | 李子捌 |  18 |   1 |
+----+--------+-----+-----+
1 row in set (0.00 sec)

操作符=如果存在多條匹配數(shù)據(jù),那么符合where字句條件的數(shù)據(jù)均會(huì)返回,如果需要指定排序方式,可以結(jié)合order by對(duì)數(shù)據(jù)進(jìn)行排序。

2.2.2 操作符 <> 和 !=

這兩個(gè)操作符實(shí)現(xiàn)的效果相同,均是匹配不相等的數(shù)據(jù)。

需求:
查詢(xún)name不等于李子捌的數(shù)據(jù)
語(yǔ)句:

select * from user where name <> '李子捌';
select * from user where name != '李子捌';

結(jié)果:

+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  2 | 張三   |  22 |   1 |
|  3 | 李四   |  38 |   1 |
|  4 | 王五   |  25 |   1 |
|  5 | 六麻子 |  13 |   0 |
|  6 | 田七   |  37 |   1 |
|  7 | 謝禮   |  18 |   1 |
|  8 | 李子柒 |  18 |   1 |
+----+--------+-----+-----+
7 rows in set (0.00 sec)

2.2.3 操作符<= 、 <、>=、>
這四個(gè)操作符用于數(shù)值類(lèi)型的列數(shù)據(jù)比較,但是如果作用于文本字段,MySQL也能執(zhí)行只是返回的結(jié)果可能并不是你預(yù)期的數(shù)據(jù)(理論上沒(méi)人會(huì)這么玩,但確實(shí)不報(bào)錯(cuò)?。?br />

需求:
查詢(xún)年齡小于等于20的所有用戶
語(yǔ)句:

select * from user where age <= 20;

結(jié)果:

+----+--------+-----+-----+

| id | name   | age | sex |

+----+--------+-----+-----+

|  1 | 李子捌 |  18 |   1 |

|  5 | 六麻子 |  13 |   0 |

|  7 | 謝禮   |  18 |   1 |

|  8 | 李子柒 |  18 |   1 |

+----+--------+-----+-----+

4 rows in set (0.00 sec)

2.2.4 BETWEEN AND
BETWEEN AND 用于查詢(xún)兩個(gè)數(shù)值范圍之間的值,這個(gè)范圍是兩個(gè)閉區(qū)間,因此包含起始值和結(jié)束值。比如BETWEEN 1 AND 100,包含1和100的數(shù)據(jù)。

需求:
查詢(xún)年齡大于等于20小于等于50的用戶
語(yǔ)句:

select * from user where age between 20 and 50;

+----+------+-----+-----+

| id | name | age | sex |

+----+------+-----+-----+

|  2 | 張三 |  22 |   1 |

|  3 | 李四 |  38 |   1 |

|  4 | 王五 |  25 |   1 |

|  6 | 田七 |  37 |   1 |

+----+------+-----+-----+

4 rows in set (0.00 sec)

2.3 空值null

空值null指的是不包含數(shù)據(jù),它可以在建表的時(shí)候指定其中的列是否可以包含空值。需要注意null和數(shù)據(jù)值類(lèi)型的0,字符類(lèi)型的空格不一樣,空值null指的是沒(méi)有值。
關(guān)于空值null的查詢(xún),MySQL提供了專(zhuān)門(mén)的where子句is null。

需求:
查詢(xún)name為空值的數(shù)據(jù)
語(yǔ)句:

select * from user where name is null;

結(jié)果:

Empty set (0.00 sec)

因?yàn)閡ser表中不存在name值為空值的數(shù)據(jù),所以沒(méi)有數(shù)據(jù)返回。如果我們需要查詢(xún)name列不為空的數(shù)據(jù),該怎么查詢(xún)呢?

這個(gè)時(shí)候我們可以使用is not null

mysql> select * from user where name is not null;
+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  1 | 李子捌 |  18 |   1 |
|  2 | 張三   |  22 |   1 |
|  3 | 李四   |  38 |   1 |
|  4 | 王五   |  25 |   1 |
|  5 | 六麻子 |  13 |   0 |
|  6 | 田七   |  37 |   1 |
|  7 | 謝禮   |  18 |   1 |
|  8 | 李子柒 |  18 |   1 |
+----+--------+-----+-----+

到此這篇關(guān)于MySQL之where使用詳解的文章就介紹到這了,更多相關(guān)MySQL where使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決MySQL8.0安裝第一次登陸修改密碼時(shí)出現(xiàn)的問(wèn)題

    解決MySQL8.0安裝第一次登陸修改密碼時(shí)出現(xiàn)的問(wèn)題

    這篇文章主要介紹了解決MySQL8.0安裝第一次登陸修改密碼時(shí)出現(xiàn)的問(wèn)題,在文章開(kāi)頭給大家介紹了mysql 8.0.16 初次登錄修改密碼的方法,需要的朋友可以參考下
    2019-06-06
  • 全面講解MySQL子查詢(xún)

    全面講解MySQL子查詢(xún)

    子查詢(xún)就是將一個(gè)查詢(xún)結(jié)果作為判斷條件或者作為一張?zhí)摂M表在這個(gè)結(jié)果的基礎(chǔ)上進(jìn)行另一個(gè)查詢(xún),本文就詳細(xì)的介紹了MySQL子查詢(xún) ,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 解決Access denied for user root @ 192.168.120.1 (using password: YES)的問(wèn)題

    解決Access denied for user root @&nbs

    這篇文章給大家介紹了解決:Access denied for user ‘root‘@‘192.168.120.1‘ (using password: YES)的問(wèn)題,文中通過(guò)圖文和代碼給大家分析的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-01-01
  • MySQL REVOKE實(shí)現(xiàn)刪除用戶權(quán)限

    MySQL REVOKE實(shí)現(xiàn)刪除用戶權(quán)限

    在 MySQL 中,可以使用 REVOKE 語(yǔ)句刪除某個(gè)用戶的某些權(quán)限,本文就詳細(xì)的來(lái)介紹一下REVOKE 的具體使用方法,感興趣的可以了解一下
    2021-06-06
  • mysql 5.7如何安裝 mysql 5.7安裝配置教程

    mysql 5.7如何安裝 mysql 5.7安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了MySQL 5.7安裝配置方法,安裝過(guò)程中出現(xiàn)問(wèn)題的解決方案,感興趣的小伙伴們可以參考一下
    2016-08-08
  • mysql 循環(huán)批量插入的實(shí)例代碼詳解

    mysql 循環(huán)批量插入的實(shí)例代碼詳解

    本文通過(guò)實(shí)例代碼文字相結(jié)合的形式給大家介紹了mysql 循環(huán)批量插入功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Mysql連接本地報(bào)錯(cuò):1130-host?...?is?not?allowed?to?connect?to?this?MySQL?server解決

    Mysql連接本地報(bào)錯(cuò):1130-host?...?is?not?allowed?to?connect?t

    這篇文章主要給大家介紹了關(guān)于Mysql連接本地報(bào)錯(cuò):1130-host?...?is?not?allowed?to?connect?to?this?MySQL?server的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • MySql逗號(hào)分割的字段數(shù)據(jù)分解為多行代碼示例

    MySql逗號(hào)分割的字段數(shù)據(jù)分解為多行代碼示例

    逗號(hào)分割的字符串可以作為分組數(shù)據(jù)的標(biāo)識(shí)符,用于對(duì)數(shù)據(jù)進(jìn)行分組和聚合操作,下面這篇文章主要給大家介紹了關(guān)于MySql逗號(hào)分割的字段數(shù)據(jù)分解為多行的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • mysql如何設(shè)置不區(qū)分大小寫(xiě)

    mysql如何設(shè)置不區(qū)分大小寫(xiě)

    在本篇文章里小編給大家整理了關(guān)于mysql設(shè)置不區(qū)分大小寫(xiě)的方法,需要的朋友們跟著學(xué)習(xí)下。
    2020-06-06
  • Mysql?using?用法示例詳解

    Mysql?using?用法示例詳解

    這篇文章主要介紹了Mysql?using?用法示例代碼詳解,本文通過(guò)三種方法給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02

最新評(píng)論