最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 '用戶(hù)名',
  `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的所有用戶(hù)
語(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的用戶(hù)
語(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)文章

  • MySQL備份恢復(fù)設(shè)計(jì)思路

    MySQL備份恢復(fù)設(shè)計(jì)思路

    這篇文章主要介紹了MySQL備份恢復(fù)設(shè)計(jì)思路,幫助大家更好的維護(hù)數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-10-10
  • MySQL刪除數(shù)據(jù)庫(kù)的方法舉例

    MySQL刪除數(shù)據(jù)庫(kù)的方法舉例

    很久沒(méi)有使用命令行操作mysql,百度搜羅后重新整理,加強(qiáng)記憶便于查詢(xún),下面這篇文章主要給大家介紹了關(guān)于MySQL刪除數(shù)據(jù)庫(kù)的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下
    2023-04-04
  • Windows MySQL修改配置文件my.ini不生效問(wèn)題

    Windows MySQL修改配置文件my.ini不生效問(wèn)題

    在Windows Server 2019上修改MySQL 5.6的安裝目錄下my.ini文件后,需要通過(guò)修改注冊(cè)表中的ImagePath值來(lái)確保MySQL讀取新的配置文件,修改時(shí)應(yīng)確保配置文件路徑正確,并且新配置不會(huì)覆蓋原有配置,以保證修改生效
    2025-01-01
  • MySQL中的字符替換示例詳解

    MySQL中的字符替換示例詳解

    本文介紹了 MySQL 中的兩種字符替換函數(shù):REPLACE 和 REGEXP_REPLACE,通過(guò)這兩個(gè)函數(shù)的使用,我們可以方便地進(jìn)行字符替換操作,提高數(shù)據(jù)處理的效率和準(zhǔn)確性,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • MySQL長(zhǎng)連接短連接面試精講

    MySQL長(zhǎng)連接短連接面試精講

    這篇文章主要為大家介紹了MySQL長(zhǎng)連接短連接面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    為了解決MySQL中大數(shù)據(jù)量的查詢(xún)效率問(wèn)題,采用水平拆分策略,通過(guò)取模運(yùn)算確定表后綴,實(shí)現(xiàn)數(shù)據(jù)的有效管理,設(shè)計(jì)分表時(shí),需利用線(xiàn)程變量存取請(qǐng)求參數(shù),并通過(guò)攔截器確定操作的具體表名,從而優(yōu)化數(shù)據(jù)處理性能,此方法適用于業(yè)務(wù)表數(shù)據(jù)量大或快速增長(zhǎng)的場(chǎng)景
    2024-11-11
  • MySQL窗口函數(shù)實(shí)現(xiàn)榜單排名

    MySQL窗口函數(shù)實(shí)現(xiàn)榜單排名

    相信大家在日常的開(kāi)發(fā)中經(jīng)常會(huì)碰到榜單類(lèi)的活動(dòng)需求,本文主要介紹了MySQL窗口函數(shù)實(shí)現(xiàn)榜單排名,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • ubuntu16.04.1下 mysql安裝和卸載圖文教程

    ubuntu16.04.1下 mysql安裝和卸載圖文教程

    這篇文章主要介紹了ubuntu16.04.1下 mysql安裝和卸載圖文教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • MySQL正則表達(dá)式regexp_replace函數(shù)的用法實(shí)例

    MySQL正則表達(dá)式regexp_replace函數(shù)的用法實(shí)例

    regexp_replace的使用非常靈活,且容易忘記,故做此筆記,下面這篇文章主要給大家介紹了關(guān)于MySQL正則表達(dá)式regexp_replace函數(shù)的用法實(shí)例,需要的朋友可以參考下
    2022-09-09
  • mysql workbench 設(shè)置外鍵的方法實(shí)現(xiàn)

    mysql workbench 設(shè)置外鍵的方法實(shí)現(xiàn)

    在MySQL Workbench中設(shè)置外鍵屬性是非常方便的,本文就來(lái)介紹一下mysql workbench 設(shè)置外鍵的方法實(shí)現(xiàn),具有一定能的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

安溪县| 曲水县| 满洲里市| 双鸭山市| 永仁县| 二连浩特市| 耿马| 庄浪县| 佛冈县| 靖宇县| 上栗县| 岳普湖县| 买车| 东乌珠穆沁旗| 巍山| 温州市| 台安县| 临泽县| 尤溪县| 丰台区| 池州市| 历史| 隆安县| 布拖县| 安宁市| 邵东县| 聊城市| 安庆市| 乐山市| 张北县| 灵武市| 普宁市| 英吉沙县| 大竹县| 台中市| 龙泉市| 宁阳县| 泊头市| 多伦县| 虹口区| 大田县|