美文网首页mysql
SQL语法详解

SQL语法详解

作者: _narcissus | 来源:发表于2019-07-03 22:42 被阅读0次

where条件查询

从物理磁盘上读取数据时的查询操作,只能逐行操作。

-运算符 -说明 例子
= 等于 select * from emp where sal = 1000;

注意:

<font color=brown>当运算符的优先级不确定的时候加小括号。and的优先级大于or</font>>

select * from emp where ename = '黎明' and (sal=1000 or sal =3000);

<font color=brown>%代表任意多个字符 _代表一个字符, \具有转义作用</font>

查询名字中带有下划线的

select * from emp where ename like '%\_%';

排序 order by

默认升序:asc

降序:desc

select * from emp order by sal desc;

按照工资的降序排,当工资相同时在按照名字升序排

select * from emp order by sal desc,ename asc;

多重排序:越靠前的字段越能起到主导作用,只有当前面的字段无法完成排序的时候才启用后面的字段。

<font color=brown>排序能使用字段名,还能使用数字,使用数字时需要注意当数字所在字段变化时,排序的字段将变化,所有不推荐使用</font>

select ename,sal from emp order by 2;       #注意是根据sal排序的
-语句 -执行顺序
select 5
字段
from 1
表名
where 2
条件
group by 3
having 4
order by 6
.......

分组函数(多行处理函数)

所有的分组函数都是对某一组数据进行的操作

-分组函数 -举例
count() select count(*) from emp;
sum() select sum(sal) from emp;
max() select max(sal) from emp;
min() select min(sal) from emp;
avg() select avg(sal) from emp;

多行处理函数的特点:输入多行,输出一行

注意:

<font color=brown>分组函数会自动忽略null</font>

单行处理函数:ifnull()

单行处理函数的特点:输入几行,输出几行

<font color=brown>所有数据库规定:只要有null参与的运算结果一定为null</font>

select ename,(sal+ifnull(comm,0))*12 as yearsal from emp;

count(*) 和 count(具体的某个字段) 的区别

count(*):不是统计某个字段中数据的个数,而是统计总记录条数(和某个字段无关)。

count(具体的某个字段):表示统计某个字段的总记录数,如果存在null,那么会被忽略。


group by 和 having

group by:按照某个字段或者某些字段进行分组。

having:对分组之后的数据进行再次过滤。没有group by就没有having,但是having可以没有

<font color=brown>注意:</font>

<font color=brown>分组函数一般都会和group by联合使用,这也是分组函数的来源,并且分组函数在group by执行之后才执行</font>

<font color=brown>当一条语句中有group by语句时,select后面只能跟分组函数和参与分组的字段</font>

<font color=brown>能使用where过滤的,尽量使用where,效率高,不能的则使用having</font>

<font color=brown>where后面不能使用分组函数</font>

查询同一部门的员工最高工资高于3000的

select deptno,max(sal) from emp group by deptno having  max(sal) > 3000;
select deptno,max(sal) from emp where sal>3000 group by deptno;     #效率更高

多字段联合分组:

select deptno,job,max(sal) from emp group by deptno,job;    #每个部门不同工作岗位的最高薪资

相关文章

  • SQL语法详解

    where条件查询 从物理磁盘上读取数据时的查询操作,只能逐行操作。 注意: 当运算符的优先级不确定的时候加小括号...

  • Hive sql语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分...

  • SQL语法详解(二)

  • mysql explain命令详解

    mysql explain命令详解 一.语法 二.explain输出解释 1.id 我的理解是SQL执行的顺利的标...

  • 数据库学习线路图

    SQL 语法教程 SQL 教程SQL 简介SQL 语法SQL Select选择SQL SELECT DISTINC...

  • SQL 语法大全

    SQL 语法大全 标签(空格分隔): SQL DB2 SQL语法大全 SQL SELECT SQL SELECT ...

  • Hadoop Hive sql语法详解

    转自:https://blog.csdn.net/hguisu/article/details/7256833Hi...

  • 数据库常用语法总结

    数据库常用语法详解# 一、写sql思路: 1.select(列名);展现字段。 2.from 表名;查询字段在哪些...

  • 简书markdown

    Markdown语法详解

  • Mysql性能调优

    SQL执行原理详解 连接器详解 分析器详解 优化器详解 执行器详解 Innodb的Buffer Pool机制详解 ...

网友评论

    本文标题:SQL语法详解

    本文链接:https://www.haomeiwen.com/subject/fumhhctx.html