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 所有

带有表达式的查询

列别名

可以将表达式查询的名称替换为别名

image-20221027100027383

表别名

与列别名相似

Null空值

注意

  • null值参与算数运算时结果均为 null

  • null 参与连接操作结果也为 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(排序)

最后更新于