基本查询语句
1.查询表中的单个字段
SELECT last_name FROM t_mysql_employees;
2.查询表中的多个字段
SELECT last_name,salary,email FROM t_mysql_employees;
3.查询表中的所有字段
方式一:
SELECT
employee_id
,
first_name
,
last_name
,
phone_number
,
last_name
,
job_id
,
phone_number
,
job_id
,
salary
,
commission_pct
,
manager_id
,
department_id
,
hiredate
FROM
t_mysql_employees ;
方式二:
SELECT * FROM t_mysql_employees;
4.查询常量值
SELECT 100;
SELECT ‘john’;
5.查询表达式
SELECT 100%98;
6.查询函数
SELECT VERSION();
7.起别名
①便于理解
②如果要查询的字段有重名的情况,使用别名可以区分开来
方式一:使用as
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM t_mysql_employees;
方式二:使用空格
SELECT last_name 姓,first_name 名 FROM t_mysql_employees;
+号的作用
java中的+号:
①运算符,两个操作数都为数值型
②连接符,只要有一个操作数为字符串
mysql中的+号:
仅仅只有一个功能:运算符
过滤和排序数据
过滤查询的含义:
使用WHERE 子句,将不满足条件的行过滤掉。
WHERE 子句紧随 FROM 子句。
过滤查询的语法:
select 查询列表 from表名 where 筛选条件;
过滤查询的分类:
1.按条件表达式筛选:> < = != <> >= <=
2.按逻辑表达式筛选: and or not
3.模糊查询: like between and in is null
1.like
特点:
①一般和通配符搭配使用
通配符:
% 任意多个字符,包含0个字符_ 任意单个字符
2.between and
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不要调换顺序
3.in
含义:判断某字段的值是否属于in列表中的某一项
特点:
①使用in提高语句简洁度
②in列表的值类型必须一致或兼容
③in列表中不支持通配符
4.is null
=或<>不能用于判断null值
is null或is not null 可以判断null值
排序查询
语法:
select 查询列表from 表名where 筛选条件 order by 排序的字段或表达式;
特点:
1、asc代表的是升序,可以省略desc代表的是降序
2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段
3、order by子句在查询语句的最后面,除了limit子句
1、按单个字段排序
SELECT * FROM 表名 ORDER BY 列字段DESC;
2、添加筛选条件再排序
SELECT * FROM 表名 WHERE 列字段 > 判断的数值 ORDER BY 排序字段 DESC;
3、按表达式排序
查询员工信息 按年薪降序
SELECT ,salary12*(1+IFNULL(commission_pct,0))
FROM t_mysql_employees
ORDER BY salary12(1+IFNULL(commission_pct,0)) DESC;
4、按别名排序
查询员工信息 按年薪升序
SELECT ,salary12*(1+IFNULL(commission_pct,0)) 年薪
FROM t_mysql_employees
ORDER BY 年薪 ASC;
5、按函数排序
SELECT LENGTH(列字段),列字段 FROM 表名 ORDER BY LENGTH(列字段) DESC;
分组查询
含义:用作统计使用,又称为聚合函数或统计函数或组函数
分类:
sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数
特点:
1、sum、avg一般用于处理数值型
max、min、count可以处理任何类型
2、以上分组函数都忽略null值
3、可以和distinct搭配实现去重的运算
4、count函数的单独介绍
一般使用count(*)用作统计行数
5、和分组函数一同查询的字段要求是group by后的字段