USE test;
SHOW TABLES;
SELECT
employee_name,salary
FROM
employee
ORDER BY
salary
DESC;
运行结果:
DESC #降序
ASC #升序
#不写默认是升序
- 复杂排序查询:含有where的条件筛选排序查询:
计算员工年薪并降序查询
USE test;
SHOW TABLES;
SELECT
employee_id,employee_name,salary*12*(1+IFNULL(bonus_rate,0)) AS yearly_salary,department
FROM
employee
ORDER BY
salary*12*(1+IFNULL(bonus_rate,0))
DESC;
也可以将order by后的字段改为别名
USE test;
SHOW TABLES;
SELECT
employee_id,employee_name,salary*12*(1+IFNULL(bonus_rate,0)) AS yearly_salary,department
FROM
employee
ORDER BY
yearly_salary
DESC;
1.length(str):统计字符的字节个数
USE test;
SHOW TABLES;
SELECT
employee_name,LENGTH(employee_name)
FROM
employee;
USE test;
SHOW TABLES;
SELECT
employee_name,branch_company,LENGTH(branch_company)
FROM
employee;
由于MySql是utf8编码集,所以中文每个字符占三个字节。
2.upper(str):将字符串全部字符改为大写
lower(str):将字符串全部字符改为小写
3.substr():字符串子串函数,可以重载
USE test;
SHOW TABLES;
#substr第一个参数为字符串,第二个参数为子串起始位置,第三个参数为子串长度
#MySQL中索引从1开始
SELECT
employee_name,SUBSTR(birth_date,1,4) AS birth_year
FROM
employee;
USE test;
SHOW TABLES;
#substr第一个参数为字符串,第二个参数为子串起始位置
#最终返回起始位置之后的所有子串
#MySQL中索引从1开始
SELECT
employee_name,SUBSTR(birth_date,6)
FROM
employee;
4. instr(str,substr):返回子串在字符串中第一次出现的起始位置。
5. trim(str):去掉字符串前后的空格
6. lpad(str,len,char):用指定的字符(char)左填充字符串(str)指定长度(len)。
7.rpad(str,len,char):用指定的字符(char)右填充字符串(str)指定长度(len)。
8.replace(str,from_str,to_str):将字符串str中的from_str全部替换成to_str。
SELECT
*,REPLACE(branch_company,"深圳","北京") AS 分公司
FROM
employee;