亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL之where使用詳解

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

1、簡介

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

2、正文

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

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個操作符,它們分別如下所示:

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

接下來使用表中操作符一個個的進行where子查詢。

2.2.1 操作符 =

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

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

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ù)均會返回,如果需要指定排序方式,可以結(jié)合order by對數(shù)據(jù)進行排序。

2.2.2 操作符 <> 和 !=

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

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

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 操作符<= 、 <、>=、>
這四個操作符用于數(shù)值類型的列數(shù)據(jù)比較,但是如果作用于文本字段,MySQL也能執(zhí)行只是返回的結(jié)果可能并不是你預期的數(shù)據(jù)(理論上沒人會這么玩,但確實不報錯?。?br />

需求:
查詢年齡小于等于20的所有用戶
語句:

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 用于查詢兩個數(shù)值范圍之間的值,這個范圍是兩個閉區(qū)間,因此包含起始值和結(jié)束值。比如BETWEEN 1 AND 100,包含1和100的數(shù)據(jù)。

需求:
查詢年齡大于等于20小于等于50的用戶
語句:

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ù),它可以在建表的時候指定其中的列是否可以包含空值。需要注意null和數(shù)據(jù)值類型的0,字符類型的空格不一樣,空值null指的是沒有值。
關(guān)于空值null的查詢,MySQL提供了專門的where子句is null。

需求:
查詢name為空值的數(shù)據(jù)
語句:

select * from user where name is null;

結(jié)果:

Empty set (0.00 sec)

因為user表中不存在name值為空值的數(shù)據(jù),所以沒有數(shù)據(jù)返回。如果我們需要查詢name列不為空的數(shù)據(jù),該怎么查詢呢?

這個時候我們可以使用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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

    全面講解MySQL子查詢

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

    解決Access denied for user root @&nbs

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

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

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

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

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

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

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

    Mysql連接本地報錯:1130-host?...?is?not?allowed?to?connect?t

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

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

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

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

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

    Mysql?using?用法示例詳解

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

最新評論