MYSQL学习笔记-运算符

一、关系运算符AND,NOT,OR

  • 需注意的是优先级:括号>NOT>AND>OR
USE sql_store;
SELECT *
FROM order_items
WHERE quantity * unit_price >30 AND order_id = 6

二、IN 运算符

当有多个表达式或多个条件,通过OR运算符合并时,可以用IN运算符替换。

SELECT * 
FROM sql_store.products
WHERE quantity_in_stock = 49 OR quantity_in_stock = 38 OR quantity_in_stock = 72

替换结果如下:

SELECT * 
FROM sql_store.products
WHERE quantity_in_stock IN (49, 38, 72)

括号内的顺序不影响结果。

三、BETWEEN 运算符

  • 当比较范围限制条件是“>= 和 <=”时,可以用BETWEEN代替
SELECT * 
FROM sql_store.customers
WHERE birth_date >= '1990-01-01' AND birth_date <= '2000-01-01'
SELECT * 
FROM sql_store.customers
WHERE birth_date BETWEEN '1990-01-01' AND '2000-01-01'

四、LIKE 运算符

  • 使用LIKE进行字符串匹配
  • **%**表示任意长个字符
  • **-**表示单个字符
SELECT * 
FROM sql_store.customers
WHERE address LIKE '%TRAIL%' OR address LIKE '%AVENUE%';

五、REGEXP运算符

正则表达式中有以下规则:

  • ^ 表示字符串开头
SELECT * 
FROM sql_store.customers
WHERE last_name REGEXP '^MY|SE'

注意不要写成’^MY|%SE%',与LIKE运算符混淆

  • $ 表示字符串结尾
SELECT * 
FROM sql_store.customers
WHERE last_name REGEXP 'EY$|ON$'
  • | 表示或,即多个搜寻条件
SELECT * 
FROM sql_store.customers
WHERE first_name REGEXP 'ELKA|AMBUR'
  • [] 表示多个字符选择范围,可选择拼接在要求的字符串前或后;[] 中的内容可以表示为一个范围,例如字母a-h,[a-g]表示abcdefg
SELECT * 
FROM sql_store.customers
WHERE last_name REGEXP 'B[RU]'

六、IS NULL 运算符

  • 搜索缺失了属性的记录
SELECT * 
FROM sql_store.orders
WHERE shipped_date IS NULL

你可能感兴趣的:(mysql,学习,数据库)