MYSQL学习day02
【简单查询语句DQL】【select 字段名1,字段名2,...(最后一个字段后无逗号) from 表名; 】【SQL语句均以分号结尾且不区分大小写】
【SQL语句若不写分号,按回车后可以继续写语句,直到有分号按回车才会执行】
【\c回车退出语句编写】
-----------------------------------------------------------
【字段可以参与数学运算】【例如:select ename,sal *12 from emp;】
-----------------------------------------------------------------------------------------------
【字段重命名 as】【例如:select ename,sal *12 as yearsal from emp;】
【as关键字可以使用一个空格代替】
----------------------------------------------------------------
【字段可以有 '中文' 但要加单引号】
【查询所有字段 select * from emp; 】
===============================================
【条件查询】【where】
因为ename字段是varchar类型,所以要加单引号
【>,<,>=,<=,<>,!=】
【between...and...; 必须左小右大】
【between...and...; 可以用在字符串,此时左闭右开】
【where 字段 is null/is not null; 】
【or】
---------------------------------------------------------------------------------------------------
【不确定优先级就使用小括号,小括号中的为一个整体且先执行】
--------------------------------------------------------------------------
【where in(具体值1,具体值2,...,具体值3); 】
【where not in(具体值1,具体值2,...,具体值3); 】
------------------------------------------------
【模糊查询where like....; 】【%:任意数量字符】【_:任意单个字符】【查询的是字符串所以要加单引号】
【使用转义字符 \】
=================================================
【仅排序时不使用where】
【排序 order by 字段名; 默认是升序(数值越来越大)】
【降序:order by 字段名 desc; 】【升序:order by 字段名 asc; 】
【多个排序条件时】
【同时使用时,where在前,order by 在后,表示先选择出来在排序】
【执行顺序】
================================================
【分组函数/多行处理函数】
【count(字段名/*) 计数】【sum(字段名/*) 求和】【avg(字段名/*) 平均数】【max(字段名/*) 最大值】【min(字段名/*) 最小值】
【分组函数的特点,在统计时自动忽略null】
所以....面试时或许会给你一个含有null的表格,让你使用sum之类的分组函数,此时不要犯下面的错误
------------------------------------------------------------------------------------------------------------
【单行处理函数,有null参与运算时,结果一定为null,所以要使用ifnull()】
【ifnull(字段名.0) 表示如果指定字段名为null,则把它当成0计算】
------------------------------------------------------------------
【分组函数不能使用在where语句之后】
【having】 解释,因为执行顺序
【正确方法使用子查询】
【count(*)和count(字段名)的区别】
【分组函数的组合使用】
【group by】
【having】
【分组函数会在group by语句执行结束之后才会执行】
【当语句中有group by时,select后面只能跟参与分组的字段和分组函数】
【求每个工作岗位的平均薪资】
【group by多个字段联合使用】【找出每个部门不同工作岗位的最高薪资】
【使用group by时,where与having的使用区别】【where后面不能使用分组函数,但having可以】
【若先分组在筛选使用having,反之使用where】
--------------------------------------
【DQL的执行顺序】
———整理自B站动力节点