10.27-基础查询与条件查询
基础查询
简单查询
select empno from emp_li; //单列查询
select empno,ename from emp_li; //多列查询
select * from emp_li; //全部列查询通配符
*不建议使用,会降低查询速度和影响英语程序性能(从SQL优化角度来说)
条件查询
//查询1005员工信息
select empno,ename from emp_li where empno=1005;执行过程:
from(指定表)->where(记录过滤)->select(结果集)
操作符
= 等于
!=或<> 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于
and 并且
or 或者
any 任意
all 所有带有表达式的查询
列别名
可以将表达式查询的名称替换为别名

表别名
与列别名相似
Null空值
注意
null值参与算数运算时结果均为nullnull参与连接操作结果也为null任何数据类型都可以取值
null
空值处理函数
所以正确的查询应该为下面这样
任何数据均可插入空值
简单练习
拼接数据
练习
去重
distinct只能附带在select
如果
distinct后接多个字段,则代表联合去重,只保留唯一的组合结果
大小写区分
默认来说,MySQL对大小写并不敏感,无论大写小写均能正常匹配
当然,可以在创建表/查询表时添加
binary让其对大小写敏感
between 低值 and 高值
格式
例子
in的使用
格式
例子
注意,在比较时空值不与
null匹配,且不能与任何数据匹配
模糊查询
like为模糊查询命令
_表示一个字符,%表示0到多个字符
空值的判断
空值不能用等于或不等于跟任何数据比较,包括自身
常用函数
单行函数
每行数据处理后返回一个结果
数字函数
字符串函数
日期时间函数
组函数(聚合函数)
总结:
count\sum\avg\max\min 如果函数中写列名,默认都是忽略空值,count(*)不忽略空值,sum/avg用于处理数值
多行数据处理他,返回一个结果
排序
对查询结果进行排序,强调的是先有结果再排序
使用
order by字段 规则规则:
asc升序(默认)desc降序
排序语句的执行强调的是
select之后的内容,因此排序可以使用列名、列别名、函数、表达式和数字(查询结果集对应的顺序,第一列用数字1表示,以此类推)
分组
group by 字段为分组
分组语句当中,
select后面的内容,要么被组函数包围,要么出现在group by后面字段
having 对分组之后的数据再进行过滤
总结
写法顺序
执行顺序
from(表) -> where(记录过滤)->group by(分组)->having(分组后过滤) ->select(结果集)->order by(排序)
最后更新于