mysql所支持的比較運算符_mysql比較運算符有哪些?Mysql比較運算符詳解

比較運算符可用于比較數字和字符串。今天發一篇Mysql比較運算符詳解,希望對初學者有所幫助,雖然現在流行NoSQL,但是MYSQL還是很有用的,數字作為浮點值進行比較,字符串以不區為例進行比較,=運算符用于比較表達式的兩邊是否相等。您也可以比較字符串。

運算符用于檢測表達式的兩邊是否不相等,如果不相等,則返回真值。

您也可以比較字符串。

算術操作符是SQL中最基本的操作運算符,主要有一下幾種運算符:

+(加)、 -(減)、 *(乘)、 /(除)、 %(求余或者模)

算術操作符測試案例:

創建表tmp14,定義數據類型為INT的字段num,插入值64,對num值進行算術運算:

首先創建表tmp14,輸入語句如下:

CREATE TABLE tmp14 ( num INT);

向字段num插入數據64:

INSERT INTO tmp14 value(64);

接下來,對num值進行加法和減法運算:

SELECT num, num+10, num-3+5, num+5-3, num+36.5 FROM tmp14;

8ca8d2065247e8fe2e6c30b4e17c8de3.png

由計算結果可以看到,可以對num字段的值進行加法和減法的運算,而且由于’+’和’–’的優先級相同,因此先加后減,或者先減后加之后的結果是相同的。

對tmp14表中的num進行乘法、除法運算。

SELECT num, num *2, num /2, num/3, num%3 FROM tmp14;

87716e3788a58eb2b4f01c4df57a5561.png

由計算結果可以看到,對num進行除法運算時候,由于64無法被3整除,因此MySQL對num/3求商的結果保存到了小數點后面四位,結果為21.3333;64除以3的余數為1,因此取余運算num%3的結果為1。

在數學運算時,除數為0的除法是沒有意義的,因此除法運算中的除數不能為0,如果被0除,則返回結果為NULL。

4d9fbe2dfc89a77dafbb1858488010a7.png

由計算結果可以看到,對num進行除法求商或者求余運算的結果均為NULL。

比較運算符

一個比較運算符的結果總是1,0或者是NULL。MySQL中的比較運算符有:

=、<=>、<> (!=)、<=、>=、>、IS NULL、IS NOT NULL、LEAST、GREATEST、BETWEEN . . . AND. . . 、ISNULL、IN、NOT IN、LIKE、REGEXP

使用‘=’進行相等判斷,SQL語句如下:

SELECT 1=0, '2'=2, 2=2,'0.02'=0, 'b'='b', (1+3) = (2+2),NULL=NULL;

d7b9e3ccecd2c779c30ce834a04a210a.png

使用’<=>’進行相等的判斷,SQL語句如下:

83a6f98a39a7c0059807b3bde437f7cf.png

由結果可以看到,’<=>’在執行比較操作時和’=’的作用是相似的,唯一的區別是’<=>’可以用來對NULL進行判斷,兩者都為NULL時返回值為1。

不等于運算符 <>或者 !=

‘<>’或者’!=’用于判斷數字、字符串、表達式不相等的判斷。如果不相等,返回值為1;否則返回值為0。這兩個運算符不能用于判斷空值NULL。

使用’<>’和’!=’進行不相等的判斷,SQL語句如下:

SELECT 'good'<>'god', 1<>2, 4!=4, 5.5!=5, (1+3)!=(2+1),NULL<>NULL;

8f4825537776d7e71f3cb1c11a0b9e16.png

由結果可以看到,兩個不等于運算符作用相同,都可以進行數字、字符串、表達式的比較判斷。

使用’<=’進行比較判斷,SQL語句如下:

SELECT 'good'<='god', 1<=2, 4<=4, 5.5<=5, (1+3) <= (2+1),NULL<=NULL;

330f3a8ff17ef487fc513f4210db0378.png

由結果可以看到,左邊操作數小于或者等于右邊時,返回值為1,例如:4<=4;當左邊操作數大于右邊時,返回值為0,例如:’good’第3個位置的’o’字符在字母表中的順序大于’god’中的第3個位置的’d’字符,因此返回值為0;同樣比較NULL值時返回NULL。

使用’

SELECT 'good'

11be5b382dbfe0a94d54bd6877d7becf.png

使用’>=’進行比較判斷,SQL語句如下:

SELECT 'good'>='god', 1>=2, 4>=4, 5.5>=5, (1+3) >= (2+1),NULL>=NULL;

e20d3e292f02ed12af48a16322452465.png

使用’>’進行比較判斷,SQL語句如下:

SELECT 'good'>'god', 1>2, 4>4, 5.5>5, (1+3) > (2+1),NULL>NULL;

c7b1a15179f0f6400263e64ddf92d225.png

使用IS NULL、ISNULL和IS NOT NULL判斷NULL值和非NULL值,SQL語句如下:

SELECT NULL IS NULL, ISNULL(NULL),ISNULL(10), 10 IS NOT NULL;

d3bdfbeb99ed478e5aad88ee79d37a13.png

使用BETWEEN AND 進行值區間判斷,輸入SQL語句如下:

SELECT 4 BETWEEN 4 AND 6, 4 BETWEEN 4 AND 6,12 BETWEEN 9 AND 10;

eeb4ee2e1ad3e3434f40b838c53fc7ae.png

SELECT 'x' BETWEEN 'f' AND 'g', 'b' BETWEEN 'a' AND 'c';

9e7d6397c89bc6a0d6d2d1b7f2056e33.png

使用LEAST運算符進行大小判斷,SQL語句如下:

SELECT least(2,0), least(20.0,3.0,100.5), least('a','c','b'),least(10,NULL);

0e739afcf7ed4c254f2f2f04c23f416f.png

使用GREATEST運算符進行大小判斷,SQL語句如下:

SELECT greatest(2,0), greatest(20.0,3.0,100.5), greatest('a','c','b'),greatest(10,NULL);

b135037ed6d6b48a7f654a87941a4f76.png

使用IN、NOT IN運算符進行判斷,SQL語句如下:

SELECT 2 IN (1,3,5,'thks'), 'thks' IN (1,3,5,'thks');

c6b761ccb37d0e73aae10e18e31929fa.png

存在NULL值時的IN查詢,SQL語句如下:

SELECT NULL IN (1,3,5,'thks'),10 IN (1,3,NULL,'thks');

c090595df352b387127fc82d8a671f1a.png

使用運算符LIKE進行字符串匹配運算,SQL語句如下:

SELECT 'stud' LIKE 'stud', 'stud' LIKE 'stu_','stud' LIKE '%d','stud' LIKE 't_ _ _', 's' LIKE NULL;

b907d097c3758cfa6182388d8bc352f3.png

使用運算符REGEXP進行字符串匹配運算,SQL語句如下:

SELECT 'ssky' REGEXP '^s', 'ssky' REGEXP 'y$', 'ssky' REGEXP '.sky', 'ssky' REGEXP '[ab]';

26e27f4ac9fc49e079bee381f85a1a45.png

邏輯運算符

邏輯運算符的求值所得結果均為TRUE、FALSE或NULL。

邏輯運算符有:

NOT 或者 !

AND 或者 &&

OR 或者 ||

XOR(異或)

使用非運算符“NOT”和“!”進行邏輯判斷,SQL語句如下:

SELECT NOT 10, NOT (1-1), NOT -5, NOT NULL, NOT 1 + 1;

a3464e80b5d0dff220f2e4923477181e.png

SELECT !10, !(1-1), !-5, ! NULL, ! 1 + 1;

8292a30f8c557fd45dfb697b1c6fd93d.png

使用與運算符“AND”和“&&”進行邏輯判斷,SQL語句如下:

SELECT 1 AND -1,1 AND 0,1 AND NULL, 0 AND NULL;

4d3fb441c448a5b42592c23c57b9cc1b.png

SELECT 1 && -1,1 && 0,1 && NULL, 0 && NULL;

859fdeeb78831e6e9d0114f9709960b0.png

使用或運算符“OR”和“||”進行邏輯判斷,SQL語句如下:

SELECT 1 OR -1 OR 0, 1 OR 2,1 OR NULL, 0 OR NULL, NULL OR NULL;

0c220ded97024160ee02c0bef9a1ef3e.png

SELECT 1 || -1 || 0, 1 || 2,1 || NULL, 0 || NULL, NULL || NULL;

cf1c6bb8ea6cd4f12492de37ec267001.png

使用異或運算符“XOR”進行邏輯判斷,SQL語句如下:

SELECT 1 XOR 1, 0 XOR 0, 1 XOR 0, 1 XOR NULL, 1 XOR 1 XOR 1;

執行上面的語句,結果如下。

09d7a0f83e1451f5236731f7fbff4e28.png

位運算符

位運算符是用來對二進制字節中的位進行測試、移位或者測試處理。位運算符有:

位或(|)

位與(&)

位異或(^ )

位左移(<

位右移(<

位取反(~)

使用位或運算符進行運算,SQL語句如下:

SELECT 10 | 15, 9 | 4 | 2;

8a47e1d567e7f1d27f9b8cdf4a752c11.png

使用位與運算符進行運算,SQL語句如下:

SELECT 10 & 15, 9 &4& 2;

20f25b2197e448f729c18eaa8713bb4d.png

使用位異或運算符進行運算,SQL語句如下:

SELECT 10 ^ 15, 1 ^0, 1 ^ 1;

586325124dc17388ad00915dad610168.png

使用位左移運算符進行運算,SQL語句如下:

SELECT 1<<2, 4<<2;

aaeb68bd318a7cbd84fede85db4ed2f8.png

使用位右移運算符進行運算,SQL語句如下:

SELECT 1>>1, 16>>2;

6af172291a5c153278e7054553d14700.png

使用位取反運算符進行運算,SQL語句如下:

SELECT 5 & ~1;

f4311f69bc043ec3e869136fc53c563e.png

運算符的優先級

運算的優先級決定了不同的運算符在表達式中計算的先后順序。

級別高的運算符先進行計算,如果級別相同,MySQL按表達式的順序從左到右依次計算。當然,在無法確定優先級的情況下,可以使用圓括號“()”來改變優先級。

默認情況下,MySQL相關論文,對不區是區分大小寫的。如果你需要區分,你需要添加二進制關鍵字。

=,運算符用于比較表達式的左側是否小于或等于、大于或等于、小于或大于右側。

between運算符用于檢測某個值是否存在于指定范圍內。其中它返回真實值。

您可以添加一個非邏輯運算符來否定between比較,只有當表達式在給定范圍之外時,才會返回真值。

in運算符用于驗證一個值是否包含在一組指定的值中。其中返回真實值。

為空和非空運算符用于執行包含空值的比較操作

運算符稱為空安全等號

相似運算符的通配符。

當使用包含like運算符的查詢時,建議確保對where子句中命中的列進行索引,并且where子句包含足夠的數據來限制開頭搜索的記錄數。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372903.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372903.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372903.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構0類模板的使用

類模板的使用 #include <iostream> #include <conio.h> #include <string> #define N 3 using namespace std;template <class numtype> class Swap{public :Swap(numtype a,numtype b){xa;yb;}numtype ___(){tempx;xy;ytemp;return x;}//testnumtype …

JavaScript 函數

函數 由于JavaScript的函數也是一個對象&#xff0c;所以類似function abs(v){}函數實際上是一個函數對象&#xff0c;而函數名abs可以視為指向該函數的變量。 因此&#xff0c;第二種定義函數的方式如下&#xff1a; var abs function (x) {if (x > 0) {return x;} else {…

Http Invoker的Spring Remoting支持

Spring HTTP Invoker是Java到Java遠程處理的重要解決方案。 該技術使用標準的Java序列化機制通過HTTP公開服務&#xff0c;并且可以被視為替代解決方案&#xff0c;而不是Hessian和Burlap中的自定義序列化。 而且&#xff0c;它僅由Spring提供&#xff0c;因此客戶端和服務器應…

mysql 日期列表_MySQL 生成日期表

1、創建一個num表&#xff0c;用來存儲數字0~9CREATE TABLE num (i int);2、在num表中生成0~9INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);3、生成一個存儲日期的表&#xff0c;datalist是字段名CREATE TABLE if not exists calendar(dateli…

學習后綴自動機想法

小序&#xff1a;學習后綴自動機是要有耐心的&#xff0c;clj的論文自己看真心酸爽&#xff01;&#xff08;還是自己太弱&#xff0c;ls&#xff0c;oyzx好勁啊&#xff0c;狂膜不止&#xff09; 剛剛在寫博客之前又看了篇論文&#xff0c;終于看懂了&#xff0c;好開心 正文&…

【BZOJ】3575: [Hnoi2014]道路堵塞

題目鏈接&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id3575 大概的做法是&#xff0c;按照順序枚舉每一條要刪去的邊&#xff0c;(假設當前點為$u$&#xff0c;在最短路徑上的下一個點是$v$)然后強制不走${u->v}$這條邊&#xff0c;將$u$入隊&#xff0c;做…

結合使用slf4j和Logback教程

在當前文章中&#xff0c;我將向您展示如何配置您的應用程序以使用slf4j和logback作為記錄器解決方案。 Java簡單日志記錄外觀&#xff08;slf4j&#xff09;是各種日志記錄框架的簡單外觀&#xff0c;例如JDK日志記錄&#xff08;java.util.logging&#xff09;&#xff0c;lo…

mysql 分組top_MySQL:如何查詢出每個分組中的 top n 條記錄?

問題描述需求&#xff1a;查詢出每月 order_amount(訂單金額) 排行前3的記錄。例如對于2019-02&#xff0c;查詢結果中就應該是這3條&#xff1a;解決方法MySQL 5.7 和 MySQL 8.0 有不同的處理方法。1. MySQL 5.7我們先寫一個查詢語句。根據 order_date 中的年、月&#xff0c;…

ACM第四站————最小生成樹(普里姆算法)

對于一個帶權的無向連通圖&#xff0c;其每個生成樹所有邊上的權值之和可能不同&#xff0c;我們把所有邊上權值之和最小的生成樹稱為圖的最小生成樹。 普里姆算法是以其中某一頂點為起點&#xff0c;逐步尋找各個頂點上最小權值的邊來構建最小生成樹。 其中運用到了回溯&#…

利用jenkins的api來完成相關工作流程的自動化

[本文出自天外歸云的博客園] 背景 1. 實際工作中涉及到安卓客戶端方面的測試&#xff0c;外推或運營部門經常會有很多的渠道&#xff0c;而每個渠道都對應著一個app的下載包&#xff0c;這些渠道都記錄在安卓項目下的一個渠道列表文件中。外推或運營部門經常會有新的渠道產生&a…

擁有成本分析:Oracle WebLogic Server與JBoss

Crimson Consulting Group 撰寫的非常有趣的白皮書 &#xff0c;比較了Weblogic和JBoss之間的擁有成本 。 盡管JBoss是免費的&#xff0c;但該白皮書卻嚴肅地宣稱&#xff0c;從長遠來看&#xff0c;Weblogic更便宜。 盡管此研究是由Oracle贊助的&#xff0c;但它看起來非常嚴肅…

mysql limit 分頁 0_Mysql分頁之limit用法與limit優化

Mysql limit分頁語句用法與Oracle和MS SqlServer相比&#xff0c;mysql的分頁方法簡單的讓人想哭。--語法&#xff1a;SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset--舉例&#xff1a;select * from table limit 5; --返回前5行select * from table limit 0…

與硒的集成測試

總覽 我已經使用了一段時間&#xff0c;遇到了一些似乎可以使生活更輕松的事情。 我以為可以將其作為教程分享&#xff0c;所以我將向您介紹這些部分&#xff1a; 使用Maven設置Web項目&#xff0c;配置Selenium以在CI上作為集成測試運行 尋找使用“頁面對象”為網站中的頁面…

linux每天一小步---sed命令詳解

1 命令功能 sed是一個相當強大的文件處理編輯工具&#xff0c;sed用來替換&#xff0c;刪除&#xff0c;更新文件中的內容。sed以文本行為單位進行處理&#xff0c;一次處理一行內容。首先sed吧當前處理的行存儲在臨時的緩沖區中&#xff08;稱為模式空間pattern space&#xf…

mysql trace工具_100% 展示 MySQL 語句執行的神器-Optimizer Trace

在上一篇文章《用Explain 命令分析 MySQL 的 SQL 執行》中&#xff0c;我們講解了 Explain 命令的詳細使用。但是它只能展示 SQL 語句的執行計劃&#xff0c;無法展示為什么一些其他的執行計劃未被選擇&#xff0c;比如說明明有索引&#xff0c;但是為什么查詢時未使用索引等。…

MOXy作為您的JAX-RS JSON提供程序–服務器端

在以前的系列文章中&#xff0c;我介紹了如何利用EclipseLink JAXB&#xff08;MOXy&#xff09;創建RESTful數據訪問服務。 在本文中&#xff0c;我將介紹在服務器端利用MOXy的新JSON綁定添加對基于JAXB映射的JSON消息的支持有多么容易。 MOXy作為您的JAX-RS JSON提供程序–服…

006_過濾器

過濾器 過濾器&#xff08;Filter&#xff09;把附加邏輯注入到MVC框的請求處理&#xff0c;實現了交叉關注。所謂交叉關注&#xff08;Cross-Cutting Concerns&#xff09;&#xff0c;是指可以用于整個應用程序&#xff0c;而又不適合放置在某個局部位置的功能&#xff0c;否…

Android_項目文件結構目錄分析

android項目文件結構目錄分析 在此我們新建了一個helloworld的項目&#xff0c;先看一些目錄結構&#xff1a; 這么多的文件夾和文件中&#xff0c;我們重點關注是res目錄、src目錄、AndroidManifest.xml文件&#xff1a; 一、res目錄主要是用來存放android項目的各種資源文件&…

實體 聯系 模型mysql_數據庫系統概念讀書筆記――實體-聯系模型_MySQL

bitsCN.com數據庫系統概念讀書筆記——實體-聯系模型前言為了重新回顧我寫的消息系統架構&#xff0c;我需要重新讀一下數據庫系統概念的前三章&#xff0c;這里簡單的做一個筆記&#xff0c;方便自己回顧基本概念實體-聯系(E-R)數據模型基于對現實世界的這樣一種認識&#xff…

使用Twitter Bootstrap,WebSocket,Akka和OpenLayers玩(2.0)

原始帖子可以在ekito網站上找到。 對于我們的一位客戶&#xff0c;我們需要顯示一張具有實時更新的車輛位置的地圖。 因此&#xff0c;我開始使用Play制作原型&#xff01; 框架及其最新發布的版本2.0&#xff0c;使用Java API。 我從Play的網絡聊天室開始&#xff01; 2.0個樣…