MySQL小讲05.运算符

58 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

算术运算符

image.png

  • 一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;
  • 一个整数类型的值对浮点数进行加法和减法操作,结果是一个浮点数;
  • 加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的;
  • 在Java中,+的左右两边如果有字符串,那么表示字符串的拼接。但是在MySQL中+只表示数
  • 值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算。(补充:
  • MySQL中字符串拼接要使用字符串函数CONCAT()实现)
  • 一个数乘以整数1和除以整数1后仍得原数;
  • 一个数乘以浮点数1和除以浮点数1后变成浮点数,数值与原数相等;
  • 一个数除以整数后,不管是否能除尽,结果都为一个浮点数;
  • 一个数除以另一个数,除不尽时,结果为一个浮点数,并保留到小数点后4位;
  • 乘法和除法的优先级相同,进行先乘后除操作与先除后乘操作,得出的结果相同。
  • 在数学运算中,0不能用作除数,在MySQL中,一个数除以0为NULL。

比较运算符(很重要)

比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL。 比较运算符经常被用来作为SELECT查询语句的条件来使用,返回符合条件的结果记录。

  • 符号类型的运算符:

image.png

  • 非符号类型的运算符:

image.png 以LIKE举例:

  • %:包含零个或多个字符的任意字符串
  • _:代表任何单个字符
# 查看employees表中last_name字段中包含字母a的姓名
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%';

# 查看employees表中last_name字段中以字母a开头的姓名
SELECT last_name
FROM employees
WHERE last_name LIKE 'a%';

# 查看employees表中last_name字段中包含字母a且包含字母e的姓名
-- 写法1:
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%' AND last_name LIKE '%e%';

-- 写法2:
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%e%' OR last_name LIKE '%e%a%';

# 查看employees表中last_name字段中第二个字符是字母a的姓名
SELECT last_name
FROM employees
WHERE last_name LIKE '_a%';

逻辑运算符

逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1、0或者NULL。 MySQL中支持4种逻辑运算符如下:

image.png

注意:OR可以和AND一起使用,但是在使用时要注意两者的优先级,由于AND的优先级高于OR,因此先对AND两边的操作数进行操作,再与OR中的操作数结合

位运算符(了解即可)

位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数。

MySQL支持的位运算符如下:

image.png

运算符的优先级(了解即可)

image.png

获取testdb.sql

链接:pan.baidu.com/s/1IPjM6E6Z… 提取码:1234