一、语法
select 查询列表
from 表
(where 筛选条件)
order by 排序列表 asc/desc; desc降序,asc升序(默认)
#查询部门编号》=90的员工信息,按入职时间的先后顺序进行排列
SELECT *
FROM `employees`
WHERE department_id>=90
ORDER BY hiredate ASC;
#按姓名长度显示姓名和工资(用length函数)
SELECT LENGTH(last_name) 字节长度,last_name,salary
FROM employees
ORDER BY LENGTH(last_name) ASC;
order by 后面可以放单个字段,多个字段,表达式,函数,别名。
order by一般放在查询语句最后面,limit除外(只limit语句放在order by后面)
常见函数
概念:类似于java的方法,将一组语句封装在方法中
调用:select 函数名(参数列表)【from 表】
分类:
1.单行函数
eg :concat、length 、ifnull...
2.分组函数
功能:做统计用,又称为统计函数,组函数
一、单行函数
一)、字符函数
1.length函数:获取字节个数
select length(‘john’);返回值为4
select length(‘张三haha’);客户端为utf8时,中文占三个字节;为gbk时,汉字为两个字节
2.concat(name,'_',first_name) 拼接字符串函数
select concat(last_name,'_',first_name) as 姓名 from 表名
3.upper、lower
select upper(‘john’);变大写
select lower(‘John’);变小写
#将姓变大写名变小写,在拼接起来
SELECT CONCAT(UPPER(last_name),LOWER(first_name))FROM employees;
4.substr (=substring)截取字符
select substr(‘李四啊啊’,2);返回值:四啊啊
select substr(‘李四和张三’,1,2);返回值:李四
注意:索引从1 开始,比如要截取’啊啊‘第二个参数要写为3。
5.instr 返回子串第一次出现的索引,若索引不到返回0
select instr(‘杨洋洋和张三’,‘张三’); 返回值为5
6.trim 去除前后字符(比如:空格...)
select trim(‘ 张三 ’) ;
7.lpad 用指定字符填充指定长度且只显示规定的长度(左填充)
select lpad(‘张三’,10,‘*’);
8.rpad 右填充
9.replace 替换
select replace(‘张三和李四’,‘张三’,‘王五’);
二)、数学函数