mysql系列教程(四)—–mysql数据处理之过滤和排序

MySQL

上篇文章介绍了MySQL的简单查询操作,今天给大家分享数据的过滤和排序操作

过滤

使用WHERE子句,将不满足条件的行过滤掉。

SELECT *|{[DISTINCT] column|expression [alias],...} 
FROM table
[WHERE condition(s)];
#where子句紧随FROM子句
SELECT name, salary FROM user WHERE id=3;
#查询id为3的用户的名字和薪水

比较运算

  • = 等于(不是==)
    • 赋值使用 := 符号
  • > 大于
  • >= 大于等于
  • < 小于
  • <= 小于等于
  • <> 不等于(也可以是!=)
  • BETWEEN…..AND… 在两个值之间(包含边界)
  • IN(set)等于值列表中的一个
  • LIKE 模糊查询
  • IS NULL 空值

BETWEEN

使用BETWEEN运算来显示在一个区间内的值

SELECT name, salary FROM user WHERE salary BETWEEN 2500 AND 3500;
#查询薪水2500至3500的用户以及薪水

IN

使用IN运算显示列表中的值。

SELECT name, salary FROM user WHERE salary IN (3500,4500,5500);
#查询薪水是3500或者4500或者5500

LIKE

  • 使用LIKE运算选择类似的值
  • 选择条件可以包含字符或数字:
    • %代表零个或多个字符(任意个字符)
    • _代表一个字符
    • % _可以同时使用
SELECT name, salary FROM user WHERE name LIKE ‘S%’;
#查询名字中以S开头的用户及薪水
SELECT name, salary FROM user WHERE name LIKE ‘_S%’;
#查询名字中第二个字母是S的用户及薪水

NULL

使用IS (NOT) NULL 判断空值。

SELECT name, manager_id FROM user WHERE manager_id is NULL;
#查询manager_id字段是空的值

逻辑运算

  • AND 逻辑并
  • OR 逻辑或
  • NOT 逻辑否

AND

AND要求并的关系为真

SELECT name, salary 
FROM user 
WHERE name LIKE ‘%S%’
AND salary > 35000;
#查询名字中包含字母S的且薪水高于35000的用户

OR

OR要求关系为或

SELECT name, salary 
FROM user 
WHERE name LIKE ‘%S%’
OR salary > 35000;
#查询名字中包含字母S的用户或薪水高于35000的用户

NOT

查询不符合条件的数据

SELECT name, salary 
FROM user 
WHERE salary 
    NOT IN (3500,4500,5500);
#查询薪水不是3500或者4500或者5500

ORDER BY 子句

  • 使用ORDER BY子句排序
    • ASC (ascend) 升序
    • DESC(descend)降序
  • ORDER BY 子句在SELECT语句的结尾
SELECT id, name 
FROM user
ORDER BY name;
#按照名字字母顺序排序数据  默认是升序

SELECT id, name 
FROM user
ORDER BY name DESC;
#按照名字字母降序顺序排序数据

SELECT name, salary 
FROM user
ORDER BY salary, name DESC;
#按照薪水和名字进行排序

mysql系列教程(四)—–mysql数据处理之过滤和排序》有1条评论

评论已关闭。