作家三毛曾说,我避开无事时,过分热络地友谊,这使我少些负担
和承诺。我不多说所谓的闲言。这使我觉得清扬。
我当心的去爱别人,因为比较不会泛滥。
我爱哭的时候哭,我爱笑的时候笑,我不求深刻,只求简单。
用自己喜欢的方式让自己高兴,这是我们普通人对生活最好的致敬。
人生是一场旅程,路上难免有风雨清洗,但总会雨过天晴。
有时候我们一个人走,不是孤独,而是因为选择明白自己想要什么
—————————— 一禅心灵庙语
-- 对按照 salary 从高到低的顺序显示员工信息
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC; -- DESC 降序
结果 :
-- 按照 salary 从低到高的顺序显示员工信息
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary ASC; -- ASC 升序
或者使用默认的 ORDER BY 升序
-- 按照 salary 从低到高的顺序显示员工信息
SELECT employee_id,last_name, salary
FROM employees
ORDER BY salary
-- 按照 salary*12 年薪 别名排序
SELECT employee_id, last_name, salary*12 AS '年薪'
FROM employees
ORDER BY '年薪' ASC; -- ASC 升序
-- NULL 的排序顺序 —— ASC升序 放在第一行(开头)
SELECT employee_id, last_name, manager_id
FROM employees
ORDER BY manager_id ASC; -- asc 升序
结果显示
-- NULL 的排序顺序 —— DESC 放在末尾
SELECT employee_id, last_name, manager_id
FROM employees
ORDER BY manager_id DESC ; -- desc 降序
-- 显示员工信息,按照 department_id 降序,salary 升序
SELECT employee_id, last_name, department_id, salary
FROM employees
ORDER BY department_id DESC,salary ASC; -- DESC 降序,ASC 升序
子句中的书写顺序
ORDER BY 子句通常在 SELECT 语句的末尾
-- 选择工资不在 8000 到 17000 的员工的姓名和工资,按工资升序
SELECT employee_id, last_name, salary
FROM employees
WHERE salary BETWEEN 8000 AND 17000
ORDER BY salary ASC; -- ASC 升序
LIMIT 偏移量, 每页的记录显示的条数
注意: 当偏移量为 0 的时候,我们可以省略它(偏移量)
每页显示 20 条记录,显示第一页
SELECT employee_id, last_name, salary
FROM employees
LIMIT 0,20;
结果显示:
我们省略偏移量 0 看看结果是不是一样的
-- 每页显示 20 条记录,此时显示 第一页
SELECT employee_id, last_name, salary
FROM employees
LIMIT 20;
结果显示,发现结果省略偏移量 0 的结果是一样的
-- 需求公式: 每页显示的记录个数设为 size , 此时显示的页数: n
-- 偏移量等于: (n-1)*size, 每页显示记录个数为 size
LIMIT (n-1)*size, size;
-- 需求: 每页显示20个记录,此时显示的页数为 3的
SELECT employee_id, last_name, salary
FROM employees
LIMIT 40,20;
结果显示
WHERE ——> ORDER BY——> LIMIT
-- 显示工资大于 6000 ,的前10条记录信息
SELECT employee_id, last_name, salary
FROM employees
WHERE salary >= 6000
LIMIT 10; -- 偏移量为 0 可以省略不写的
-- 显示 32,33条信息数据
SELECT *
FROM employees
LIMIT 31,2; -- 需要减 1 ,因为偏移量是从 0 开始计数的
结果显示
LIMIT 每页显示的记录个数 OFFSET 偏移量
不省略偏移量 0 的结果
SELECT employee_id,last_name, salary
FROM employees
LIMIT 10 OFFSET 0;
-- 查询员工表中工资最高的员工信息
SELECT employee_id, last_name,salary
FROM employees
ORDER BY salary DESC -- DESC 降序
LIMIT 1; -- 偏移量为 0 可以省略不写
结果显示
-- 查询员工信息和部门号和年薪,按年薪降序,按姓名升序显示,显示前 20条记录
SELECT employee_id, last_name, salary *12 AS '年薪'
FROM employees
ORDER BY '年薪' DESC, last_name ASC -- desc 降序,asc 升序,第一排序存在相同,第二排序才会执行
LIMIT 20; -- 偏移量为 0 可以省略
结果显示:
-- 选择工资不在 8000 到 17000 的员工信息的姓名和工资,工资按照降序,显示第 21 到 40位置的数据
SELECT employee_id, last_name,salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC -- desc 降序
LIMIT 20,20;
结果显示
-- 查询邮箱中包含 e 的员工信息,并先按照邮箱的字节数降序,再按照部门号升序
SELECT employee_id, last_name, email, department_id
FROM employees
WHERE email LIKE '%e%'
ORDER BY LENGTH(email) DESC, department_id ASC;
-- length() 计算字符串的个数,desc 降序,asc 升序
结果显示
-- 查询邮箱中包含 e 的员工信息,并先按照邮箱的字节数降序,再按照部门号升序
-- 使用正则表达式
SELECT employee_id, last_name, email, department_id
FROM employees
WHERE email REGEXP '[e]' -- 筛选包含括号中的任意字符
ORDER BY LENGTH(email) DESC, department_id ASC;
-- length() 计算字符串的个数,desc降序,asc 升序
结果显示 是一样的
限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!