成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大廠都這樣使用MySQL8進行條件查詢

數(shù)據(jù)庫 MySQL
日常業(yè)務(wù)中經(jīng)常需要通過查詢條件過濾數(shù)據(jù)。本篇就教你使用MySQL8進行條件查詢。

 日常業(yè)務(wù)中經(jīng)常需要通過查詢條件過濾數(shù)據(jù)。

1 查詢條件

1.1 WHERE

指定查詢的過濾條件。以下語句只返回姓名為“劉備”的員工信息:


WHERE 位于 FROM 之后,指定一個或者多個過濾條件,滿足條件的數(shù)據(jù)才會返回。

  1. WHERE 子句被稱為謂詞(Predicate)。 

 2 選擇(Selection)

通過查詢條件過濾數(shù)據(jù)的操作在關(guān)系運算中被稱為選擇

它是針對表進行的水平選擇,保留滿足條件的行生成的新表

3 比較運算符

比較兩個數(shù)值的大小,包括字符、數(shù)字以及日期類型的數(shù)據(jù)。

  • MySQL 的比較運算符

查詢員工在 2018 年 11 月 11 日之后入職



其中,DATE 定義了一個日期類型的常量值。指定日期時也可以省略 DATE


4 BETWEEN

想要查找一個范圍內(nèi)的數(shù)據(jù)。

查詢月薪位于 10000 到 15000 之間的員工:



需要注意的是,BETWEEN 包含了兩端的值(10000 和 15000)。

5 IN 運算符

5.1 查找列表中的值

查詢姓名為“劉備”、“關(guān)羽”或者“張飛”的員工:


只要匹配列表中的任何一個值,都會返回結(jié)果

6 空值判斷

代表缺失或者未知的數(shù)據(jù).

判斷一個值是否為空不能使用等于或者不等于.

例如,以下查詢嘗試找出沒有上級領(lǐng)導(manager 字段為空)的員工:

空值判斷的錯誤示例


該語句沒有返回任何結(jié)果


但確實存在這樣的數(shù)據(jù)。錯因在于將一個值與一個未知的值進行數(shù)學比較,結(jié)果仍然未知;即使是將兩個空值進行比較,結(jié)果也是未知。

以下運算均是非法的,在 MySQL8.0 版本下,會報錯

  • [42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘NULL != NULL’ at line 1

6.1 空值判斷


expression 的值為空,IS NULL 返回真,IS NOT NULL 返回假

表達式的值不為空,IS NULL 返回假,IS NOT NULL 返回真

查找沒有上級領(lǐng)導的員工


如果僅僅能夠指定單個過濾條件,就無法滿足復雜的查詢需求;為此,SQL 引入了用于構(gòu)建復雜條件的邏輯運算符。

7 復合條件

借助于邏輯代數(shù)中的邏輯運算,SQL 提供了三個邏輯運算符:

7.1 AND 邏輯與運算符

只有當兩邊的條件都為真時,結(jié)果才為真,返回數(shù)據(jù);否則,不返回數(shù)據(jù)。

以下示例使用 AND 運算符查找性別為“女”,并且月薪超過 10000 的員工:

  1. SELECT emp_name, sex, salary 
  2.   FROM employee 
  3.  WHERE sex = '女' 
  4.    AND salary > 10000; 
  5.  
  6. emp_name|sex|salary  | 
  7. --------|---|--------| 
  8. 孫尚香   |女 |12000.00| 
  9. “孫尚香”是女性員工,并且月薪為 12000。 

  • OR,邏輯或運算符。只要有一個條件為真,結(jié)果就為真,返回數(shù)據(jù);否則,不返回數(shù)據(jù)
  • NOT,邏輯非運算符。用于將判斷結(jié)果取反,真變?yōu)榧伲僮優(yōu)檎?空值取反后仍然為空值。

7.2 OR 運算符

使用 OR 運算符查找姓名為“劉備”、“關(guān)羽”或者“張飛”的員工:

SELECT emp_name, sex, salary FROM employee WHERE emp_name = '劉備' OR emp_name = '關(guān)羽' OR emp_name = '張飛';

該查詢的結(jié)果與前文中 IN 運算符的示例相同。

7.3 短路運算

對于邏輯運算符 AND 和 OR,SQL 使用短路運算(short-circuit evaluation)。也就是說,只要前面的表達式能夠決定最終的結(jié)果,不執(zhí)行后面的計算。這樣能夠提高運算效率。因此,以下語句不會產(chǎn)生除零錯誤:

  1. SELECT 'AND' 
  2.   FROM employee 
  3.  WHERE 1 = 0 AND 1/0 = 1; 
  4.  
  5. SELECT 'OR' 
  6.   FROM employee 
  7.  WHERE 1 = 1 OR 1/0 = 1; 

第一個查詢由于 AND 左邊的結(jié)果為假,肯定不會返回任何結(jié)果,因此也就不會計算 1/0;第二個查詢由于 OR 左邊的結(jié)果為真,一定會返回結(jié)果,同樣不會產(chǎn)生除零錯誤。

7.4 NOT 運算符

  • NOT 運算符可以結(jié)合其他的運算符一起使用,用于對查詢條件的結(jié)果取反:
  • NOT BETWEEN,位于范圍之外
  • NOT IN,不在列表之中
  • NOT LIKE,不匹配某個模式。LIKE 運算符用于字符串的模糊查找,將在下一篇中進行介紹
  • NOT EXISTS,子查詢中不存在結(jié)果。關(guān)于子查詢和 EXISTS 運算符,將在第 16 篇中進行介紹
  • NOT IS NULL,不為空。等價于 IS NOT NULL。

以下示例查找除了“劉備”、“關(guān)羽”以及“張飛”之外的其他員工:

  1. SELECT emp_id, emp_name 
  2.   FROM employee 
  3.  WHERE emp_name NOT IN ('劉備''關(guān)羽''張飛'); 

將多個邏輯運算符進行組合,可以構(gòu)造任意復雜的查詢條件。不過,需要注意不同的運算符之間的優(yōu)先級問題。

8 運算符優(yōu)先級

假如我們想要知道人力資源部(deptid = 2)或者財務(wù)部門(deptid = 3)中,哪些員工擁有獎金。如果使用以下查詢:

  1. SELECT emp_name, dept_id, bonus 
  2.   FROM employee 
  3.  WHERE dept_id = 2 
  4.     OR dept_id = 3 
  5.    AND bonus IS NOT NULL

 【編輯推薦】

 

責任編輯:姜華 來源: JavaEdge
相關(guān)推薦

2010-04-28 16:45:27

Oracle Inst

2009-08-05 10:08:55

MySQL查詢優(yōu)化調(diào)度鎖定

2022-04-29 14:08:50

技術(shù)人工智能

2022-09-03 23:18:46

Order服務(wù)負載均衡

2023-11-06 12:00:04

GORM

2010-05-18 09:02:55

MySQL條件查詢

2010-11-24 17:36:02

MySQL條件查詢語句

2023-07-03 08:20:35

MySQL窗口函數(shù)

2021-07-29 10:39:50

MySQLMySQL5.7MySQL8

2024-09-18 06:30:00

2023-03-05 17:40:00

產(chǎn)品分析轉(zhuǎn)化率活躍率

2020-12-01 07:18:35

Java8日期時間

2023-05-24 16:41:41

React前端

2015-02-26 09:58:47

Cortana UI情緒

2023-05-12 17:45:15

MySQL索引排序

2025-04-01 08:10:00

JavaScripteval()函數(shù)代碼

2021-01-19 05:39:17

SQLServer變量

2023-03-08 08:44:47

2023-10-18 18:31:04

SQL查詢數(shù)據(jù)

2018-03-24 22:05:13

簡歷面試招聘
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产高清在线精品 | 国产成人av在线播放 | 精品久久久久一区 | 99精品久久99久久久久 | 免费看色| 亚洲欧美综合精品久久成人 | 欧美成年网站 | 免费视频一区二区 | 黄色av一区 | www.久久久 | 中文字幕视频在线观看 | 超碰在线免费公开 | 黄色国产 | 欧美一区二区三区大片 | 日本色婷婷| 欧美一区免费 | av网站免费在线观看 | 亚洲欧美日韩在线一区二区 | 欧美另类视频 | 一区二区日韩 | 欧美成视频 | 天天干天天操 | 天堂一区在线观看 | 精品国产一区二区三区久久久蜜月 | 国产高清精品一区二区三区 | 黄色片大全在线观看 | av网站免费在线观看 | 日本在线观看视频 | 色综合视频 | 成人二区 | 九九热精品免费 | 北条麻妃视频在线观看 | 国产精品免费小视频 | 午夜激情影院 | 色婷婷久久久亚洲一区二区三区 | 国产日韩欧美在线观看 | 国产中文 | 欧美一区二区大片 | 亚洲精品黄色 | 日韩精品久久 | 九九热精品视频在线观看 |