MySQL学习笔记02——条件查询

细枝末节

1. "_"表示任意一个字符
2. "%"表示任意多个任意字符,包含0个
3. "="不可以判断NULL值,"<=>"可以比较NULL值
4. "<>"不可以判断NULL值
5. 转义字符"\"可以在SQL中使用
6. ESCAPE关键字可以指定转移字符
7. BETWEEN AND包含两个临界值,且临界值不能颠倒
8. IN列表中的值类型必须一致

格式

# 从指定表中按条件查询指定字段信息
SELECT
   字段名
FROM
    表名
WHERE
    条件

执行顺序

FROM 表 ==> WHERE 筛选列表 ==> SELECT 字段

按条件表达式筛选

简单条件运算符

大于         >
小于         <
等于         =    <=>
不等于       <>   !=
大于等于     >=
小于等于     <=
查询id大于10的用户名
SELECT
    name
FROM
    mytable
WHERE
    id > 10;
查询age小于30的用户id
SELECT
    id
FROM
    mytable
WHERE
    age < 30;
查询name不等于Mike的用户age
SELECT
    age
FROM
    mytable
WHERE
    name <> 'Mike';

按逻辑表达式筛选

逻辑运算符

与     &    and
或     |    or
非     !    not
查询age在18-30之间的用户的id和name
SELECT
    id,
    name
FROM
    mytable
WHERE
    age >= 18
AND
    age <= 30
查询salary不在6000-8000之间,或小于3000的用户id
# 第一种写法
SELECT
    id
FROM
    mytable
WHERE
    salary < 6000
OR
    salary > 8000
OR
    salary < 3000;


# 第二种写法
SELECT
    id
FROM
    mytable
WHERE
    NOT(salary >= 6000 AND salary <= 8000)
OR
    salary < 3000;

模糊查询

运算符

LIKE
BETWEEN AND
IN
IS NULL
IS NOT NULL
查询name中包含字母a的用户信息
SELECT
    *
FROM
    mytable
WHERE
    name LIKE '%a%';
查询name第三个字符为c,第5个为d的用户id和age
SELECT
    id,
    age
FROM
    mytable
WHERE
    name LIKE '__c_d%';
查询name第三个字符为"_"的用户id
# 第一种写法
SELECT
    id
FROM
    mytable
WHERE
    name LIKE '__\_%';


# 第二种写法
SELECT
    id
FROM
    mytable
WHERE
    name LIKE '__$_%' ESCAPE '$';
查询age在18-30之间的用户信息
SELECT
    *
FROM
    mytable
WHERE
    age BETWEEN 18 AND 30;
查询age为18和20的用户信息
SELECT
    *
FROM
    mytable
WHERE
    age IN(18,20);
查询commission为NULL的用户信息
# 第一种写法
SELECT
    *
FROM
    mytable
WHERE
    commission IS NULL;


# 第二种写法
SELECT
    *
FROM
    mytable
WHERE
    commission <=> NULL;

你可能感兴趣的:(mysql)