首页 > 数据库 >SQl语句之order by

SQl语句之order by

时间:2022-11-17 14:24:38浏览次数:37  
标签:语句 group 临时 job SQl where order select

一、ORDER BY
含义:order by 排序字段,
order by默认采用升序(asc),
如果存在 where 子句,那么 order by 必须放到 where 询句后面。

select ename,job,sal
from emp
where job = ‘MANAGER’order by sal;


select ename,job,ename
from emp
order by job desc,sal desc;
先根据job排序,在排sal
二、单行处理函数
Lower 转换小写
Upper 转换大写
substr 取子串(substr(字段名,起始下标,截取的长度))
length 取长度
trim 去空格
str_to_date 将字符串转换成日期
date_format 格式化日期
format 设置千分位
round (数字,保留小数位数)凼数:四舍五入
rand() 生成随机数
Ifnull 可以将null转换成一个具体值(字段名,替换0)
select ename,ifnull(comm,0) from emp;
注意:数据处理函数是该数据本身特有的,有些函数可能在其它数据库不起作用;

三、分组函数(sum,min,max,avg,count)
分组函数自动忽略空值,不需要手劢增加where条件排除空值;
分组凼数不能直接使用在where关键字后面
distinct 去除重复值
distinct只能出现在所有字段最前面,后面如果有多个字段及为多字段联合去重

四、where和having 区 别 .
where 和 having 都是 为 了 完 成 数 据 的 过 滤 , 它 们 后 面 都 是 添 加 条 件 ,
where 是 在 group by 之前 完 成 过 滤 ;
having 是 在 group by 之后 完 成 过 滤 ;

五、执行顺序
from : 将硬盘上的表文件加载到内存
where: 将符合条件的数据行摘取出来。生成一张新的临时表
group by :根据列中的数据种类,将当前临时表划分成若干个新的临时表
having : 可以过滤掉group by生成的不符合条件的临时表
select : 对当前临时表迚行整列读取
order by : 对select生成的临时表,迚行重新排序,生成新的临时表
limit : 对最终生成的临时表的数据行,迚行截取。
————————————————
版权声明:本文为CSDN博主「前进中的工程师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SYSZ520/article/details/116235694

标签:语句,group,临时,job,SQl,where,order,select
From: https://www.cnblogs.com/zwvs/p/16899323.html

相关文章

  • docker inspect |mysql IPADRESS
    version:'3'services:db:#构建mysql镜像image:mysqlcontainer_name:mysql-db#容器名restart:alwaysenvironme......
  • mysql group by
    Error1140:InaggregatedquerywithoutGROUPBY,sql_mode=only_full_group_by MySQL5.5.27上跑没有问题,在MySQL5.7.24上就报了sql_mode=only_full_group_by的错误......
  • 1.mysql-简介及安装
    1.简介数据库管理系统可以帮助我们实现对数据进行管理,我们只要学习对应的指令即可,目前市面上有很多数据库管理系统产品MySqlOracleSQlitePostgreSQL.........
  • PHP 之将数组拼接为sql语句
    一、代码/***拼接sql语句*@param$table*@param$array*@returnstring*/functioninsertSql($table,$array){$sqlk='';$sqlv='';f......
  • Oracle plsql 计算日期间工作日天数
    declare v_fdatedate:=to_date('2013-10-4','yyyy-mm-dd'); v_ldatedate:=to_date('2013-10-22','yyyy-mm-dd'); v_interval_anumber;......
  • Oracle 练习P297 131026 PL/SQL块程序
    --1、编写一个PL/SQL块,输出所有员工的员工姓名,员工号、工资和部门号。begin forv_empin(select*fromemp)loop  dbms_output.put('员工......
  • Oracle plsqlI 练习 传值
    --根据人名查个人薪水和本部门平均薪水--select语句实现selecta.deptno "部门编号",    a.dname "部门名称",    a.......
  • Oracle plsql 月历
    declare v_yearnumber:=2013; v_monthnumber:=&input_month; v_daynumber; v_lastdaynumber;begin dbms_outp......
  • Oracle-1 / Oracle及PlsqlDeveloper的设置
    1、启动监听器与服务器我的电脑->管理->服务...保证“...listener...”和“...service...”两个服务开启2、客户端软件设置tools->preference->connection->Or......
  • Oracle 自带建表例子 scott.sql 文件
    RemCopyright(c)1990byOracleCorporationRemNAMEREMUTLSAMPL.SQLRemFUNCTIONRemNOTESRemMODIFIEDRemgdudey06/28/95-Modifiedfordesktopseed......