乐趣区

关于mysql: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 字段名 

按条件表达式筛选

简略条件运算符

  • 大于 &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &gt
  • 小于 &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp <
  • 等于 &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp = &nbsp &nbsp &nbsp &nbsp <=>
  • 不等于 &nbsp &nbsp &nbsp &nbsp <> &nbsp &nbsp &nbsp !=
  • 大于等于 &nbsp &nbsp &gt=
  • 小于等于 &nbsp &nbsp <=
查问 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';

按逻辑表达式筛选

逻辑运算符

  • 与 &nbsp &nbsp & &nbsp &nbsp and
  • 或 &nbsp &nbsp | &nbsp &nbsp or
  • 非 &nbsp &nbsp ! &nbsp &nbsp not
查问 age 在 18-30 之间的用户的 id 和 name —> {“AND”}
SELECT
    id,
    name
FROM
    mytable
WHERE
    age >= 18
AND
    age <= 30
查问薪水不在 6000-8000 之间, 或者薪水小于 3000 的用户 id —> {“OR”,”NOT”}
# 第一种写法:
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
查问名字中蕴含字母 a 的用户信息 —> {“LIKE”,”%”}
SELECT
    *
FROM
    mytable
WHERE
    name LIKE '%a%';
查问用户名第三个字符为 c, 第 5 个为 d 的用户 id 和 age —> {“_”}
SELECT
    id,
    age
FROM
    mytable
WHERE
    name LIKE '__c_d%';
查问用户名第三个字符为 ”_” 的用户 id —> {“\”,”ESCAPE”}
# 第一种写法:
SELECT
    id
FROM
    mytable
WHERE
    name LIKE '__\_%';


# 第二种写法:
SELECT
    id
FROM
    mytable
WHERE
    name LIKE '__$_%' ESCAPE '$';
查问 age 在 18-30 之间的用户信息 —> {“BETWEEN AND”}
SELECT
    *
FROM
    mytable
WHERE
    age BETWEEN 18 AND 30;
查问 age 为 18 和 20 的用户信息 —> {“IN”}
SELECT
    *
FROM
    mytable
WHERE
    age IN(18,20);
查问没有奖金的用户信息 —> {“IS NULL”,”<=>”}
# 第一种写法:
SELECT
    *
FROM
    mytable
WHERE
    commission IS NULL;


# 第二种写法:
SELECT
    *
FROM
    mytable
WHERE
    commission <=> NULL;
退出移动版