MySQL基础学习(二)——运算符

目录

一、算数运算符

1.加法与减法运算符

2.乘法与除法运算符

3.求模(求余)运算符

二、比较运算符

1、等于运算符

2、安全等于运算符

3、不等于(!=),小于(<),小于等于(<=),大于(>),大于等于(>=)

4、空运算符(IS NULL或者ISNULL)、非空运算符(IS NOT NULL)

5、最小值(LEAST)、最大值(GREATEST)运算符

6、BETWEEN AND运算符

7、IN、NOT IN运算符

8、LIKE运算符

9、转义字符(\)

10、正则表达式

        三、逻辑运算符

1、与(AND  && )、或(OR  || )、非(NOT  ! )

2、异或(XOR)

        四、位运算符


一、算数运算符

1.加法与减法运算符

对数值或表达式进行加(+)、减(-)、乘(*)、除(/)或取模( % )运算
SELECT 1, 1 + 0, 1 - 0, 1 + 2, 1 + 2 -3, 1 + 2.5, 1 - 2.5 
FROM DUAL;

注意:在MySQL+只表示数值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算。(补充:MySQL中字符串拼接要使用字符串函数CONCAT()实现)

SELECT 100+'1' , 100+'a' , 100+null
FROM DUAL

 2.乘法与除法运算符

SELECT 10 , 10 * 1 , 10 * 1.0 , 10 / 1.0 , 10 / 2 , 10 + 2 * 5 / 2 , 10 /3 , 10 DIV 0
FROM DUAL;

注意:
(1)一个数除以另一个数,除不尽时,结果为一个浮点数,并保留到小数点后4位。
(2)在数学运算中,0不能用作除数,在MySQL中,一个数除以0为NULL。

3.求模(求余)运算符

SELECT 15 % 3, 12 MOD 5 
FROM dual

二、比较运算符

1、等于运算符

字符串存在隐式转换,如果转换数值不成功,则看作0  

SELECT 1=2,1!=2,1='1',1='a',0='a'
FROM DUAL

 两边如果都是字符串的话。按照字符串比较

SELECT 'a'='a','ab'='ab','a'='b' 
FROM DUAL

 2、安全等于运算符

可以用来判断null 就是为null而存在

SELECT null<=>null,1<=>null,'null'<=>null
FROM DUAL

3、不等于(!=),小于(<),小于等于(<=),大于(>),大于等于(>=)

SELECT 1!=2,1<2,1>2,1<=2,1>=2,'a'<'b','c'<1
FROM DUAL

都是基本简单的操作,字符串也是根据ASCII值进行判断,遇到数字则转换成0进行比较

4、空运算符(IS NULL或者ISNULL、非空运算符(IS NOT NULL)

空运算符:如果是null则返回1,不是则返回0

非空运算符:如果是null则返回0,不是则返回1

SELECT NULL IS NULL, ISNULL(NULL), ISNULL('a'), 1 IS NULL;
FROM DUAL

SELECT NULL IS NOT NULL, 'a' IS NOT NULL, 1 IS NOT NULL;
FROM DUAL

 

 5、最小值(LEAST)、最大值(GREATEST)运算符

LEAST( 1 ,值 2 ... ,值 n) 。其中, n” 表示参数列表中有 n 个值。在有两个或多个参数的情况下,返回最小值。
GREATEST( 1 ,值 2 ... ,值 n) 。其中, n 表示参数列表中有 n 个值。当有两个或多个参数时,返回值为最大值。
如果值中存在NULL,则不管最小值还是最大值都返回NULL
SELECT LEAST('F','E','T','P','Z'), LEAST('F','E','T',NULL,'Z'),GREATEST('F','E','T','P','Z'),GREATEST('F','E','T','P',NULL) 
FROM DUAL

6、BETWEEN AND运算符

BETWEEN运算符使用的格式通常为

SELECT D

FROM TABLE

WHERE C BETWEEN A AND B

从table中找出满足C在A和B之间(包括A和B)的D数据

例1:查找工资在6000到8000的员工

SELECT last_name,salary 
FROM employees 
WHERE salary BETWEEN 6000 AND 8000

7、IN、NOT IN运算符

IN运算符用于判断给定的值是否是 IN 列表中的一个值
NOT IN 运算符用于判断给定的值是否不是 IN 列表中的一个值
例2:部门号在10,20,30之间的员工信息
SELECT last_name,department_id
FROM employees 
WHERE department_id IN (10,20,30)

例3:工资不是6000,7000,8000的员工信息

SELECT last_name,salary 
FROM employees 
WHERE salary NOT IN (6000,7000,8000)

注意:BETWEEN A AND B 是一个范围,找的是在A和B范围内的数据

           IN(A,B,C),找的是不是A,B,C的其他数据。不是范围

8、LIKE运算符

LIKE运算符主要用来匹配字符串,通常用于模糊匹配,如果给定的值或者匹配条件为NULL,则返回结果为NULL

例4:查找last_name为King的人员

SELECT last_name 
FROM employees 
WHERE last_name LIKE 'King'

 LIKE运算符通常使用如下通配符:

(1)“%”:匹配0个或多个字符。

(2)“_”  :只能匹配一个字符。
例5:查询last_name中包含字符'a'的员工信息
SELECT last_name 
FROM employees 
WHERE last_name LIKE '%a%'

 a%:表示以a开头的数据,%a:表示以a结尾的数据,%a%:表示有a的数据

例6:查询last_name中包含字符'a'且包含字符'e'的员工信息

方法一:
SELECT last_name 
FROM employees 
WHERE last_name LIKE '%a%' and last_name LIKE '%e%'

方法二:
SELECT last_name 
FROM employees 
WHERE last_name LIKE '%a%e%' or last_name LIKE '%e%a%'

 例7:查询last_name中第二个字符是'a'的员工信息

SELECT last_name 
FROM employees 
WHERE last_name LIKE '_a%'

查询第n个字符是a。前面一定有n-1个‘_’

9、转义字符(\)

例8:查询last_name中第二个字符是_第三个字符是'i'的员工信息

SELECT last_name 
FROM employees 
WHERE last_name LIKE '_\_i%'

10、正则表达式

 REGEXP运算符用来匹配字符串

正则表达式规则较多,可以自行搜索,有所需要的根据特定的情况再做使用

三、逻辑运算符

1、与(AND  && )、或(OR  || )、非(NOT  ! )

利用上面的案例

#AND
SELECT last_name 
FROM employees 
WHERE last_name LIKE '%a%' AND last_name LIKE '%e%'

#OR
SELECT last_name 
FROM employees 
WHERE last_name LIKE '%a%e%' OR last_name LIKE '%e%a%'

#NOT
SELECT last_name,salary 
FROM employees 
WHERE salary NOT BETWEEN 6000 AND 8000

2、异或(XOR)

要的就是一真一假

例9:查询工资大于6000或者部门号为50的员工信息

SELECT last_name,salary,department_id 
FROM employees 
WHERE salary >6000 XOR department_id=50

四、位运算符

 在数据库的基本操作中使用的较少。这里不再做比较

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值