排序查询

一、语法

select 查询表

from 表

where 筛选条件

order by 排序列表[asc / desc]

特点:

1、asc:升序

desc:降序

2、排序列表之中支持单字段,多字段、函数、表达式、别名

3、order by的位置一般放在查询语句的最后(除limit之外)

常见函数:

功能:提高重用性

  隐藏了实现细节

调用函数语法:

select 函数名(实参列表);

二、单行函数

1、字符函数

  concat:连接

  substr:截取字符串

  upper/lower:大写、小写

  repalce:替换

  length:获取字节长度

  trim:去前后空格

  lpad/rpad:左右填充

  instr:获取字串第一次出现的索引

2、数学函数

  ceil:向上取整

  round:四舍五入

  mod:取整

  floor:向下取整

  truncat:阶段

  rand:获取随机数

3、日期函数

  date:

  now:

  year:

  month:

  day:

  date_format:

  curdate:

  str_to_date:

  curtime:

  hour:

  minute:

  second:

  datediff:两个时间相差天数

  monthname:

  

  

4、其他函数

  wersion:数据库服务器版本

  database:当前打开数据库

  password:返回该字符的密码形式

  md5:返回该字符的md5加密形式

5、流程控制函数

  if(条件表达式,表达式1,表达式2):如果条件表达式成立,返回1,否则返回2

  case情况1

  case  变量或表达式或字段

  when 常量1 then 值1

  when。。。。

  else。。。

  end

  case 情况2

  

case

  when 条件1 then 值1

  when。。。。

  else。。。

  end

三、分组函数

1、分类

max:最大值

min:最小值

avg:平均值

sum:求和

count:计数

2、特点

1、语法

  select max(字段)from 表名

2、支持的类型

  sum和avg一般用于处理数值型

  max、min、cuount可以处理任何数据类型

  以上分组函数都忽略null

  都可以和distinct使用,实现去重统计

  count函数

    conut(字段):统计该字段非空值的个数

    count(*):统计结果集的行数

  和分组函数一同查询的字符,要求group by后的字段

分组查询

语法:

select 分组函数,分组后的字段,

from 表

【where 筛选条件】

group by 分组的字段

【having 分组后的筛选】

【order by 排序列表】

特点

                使用关键字                       筛选的表                             位置

分组前的筛选         where                                   原始表                            group by的前面

分组后的筛选         having                              分组后的结果                       group by的后面

连接查询

含义:当查询中涉及到了多个表的字段,需要使用多表连接

语法

select 字段1,字段2

from 表1,表2;

笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现全连接

分类:

按年代分类:

sql92:

等值、

语法:

select 查询列表

from 表1 别名,表二,别名

where 表1.key=表2.key

【and 筛选条件】

【group by 分组字段】

【having 分组后的筛选 】

【order by 排序自组但】

特点:

  起别名

  多表顺序可调换

  n表连接至少需要n-1个链接条件

  等值链接时多表的交集部分

非等值

select 查询列表

from 表1 别名,表二,别名

where 非等值的链接条件

【and 筛选条件】

【group by 分组字段】

【having 分组后的筛选 】

【order by 排序自组但】

、自连接

select 查询列表

from 表1 别名,表1,别名

where 表1.key=表1.key

【and 筛选条件】

【group by 分组字段】

【having 分组后的筛选 】

【order by 排序自组但】

也支持一部分外连接,但不稳定

sql99【推荐使用】:

  内链接

    等值,非等值,自连接

  外连接

      左外、右外、全外(不支持)

  交叉连接

   

mysql进阶三四五六的更多相关文章

  1. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

  2. Java进阶(三十六)深入理解Java的接口和抽象类

    Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太 ...

  3. mysql进阶(三)游标简易教程

    mysql游标简易教程 从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键 ...

  4. 网站开发进阶(三十六)String.getBytes()方法中的中文编码问题

    String.getBytes()方法中的中文编码问题 String的getBytes()方法是得到一个系统默认的编码格式的字节数组. getBytes("utf-8")得到一个U ...

  5. MYSQL进阶学习笔记六:MySQL视图的创建,理解及管理!(视频序号:进阶_14,15)

    知识点七:MySQL视图的创建(14) 视图的定义: 什么是视图: 视图数由查询结果形成的一张虚拟的表. 什么时候要用到视图? 如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询. ...

  6. AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)

    AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记) 前言 在"AngularJS项目开发技巧之图片预加载" ...

  7. mysql进阶(十六)常见问题汇总

    mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...

  8. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  9. 04 mysql 基础三 (进阶)

    mysql 基础三 阶段一 mysql 单表查询 1.查询所有记录 select * from department; ​ select * from student; ​ select * from ...

随机推荐

  1. Python接入支付宝进行PC端支付

    1.  支付宝开放平台登录,使用支付宝账号登录 https://open.alipay.com/platform/home.htm 2.选择沙箱模式 [支付宝提供了测试环境] https://docs ...

  2. 【来龙去脉系列】RSA算法原理

    如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法". 因为它是计算机通信安全的基石,保证了加密数据不会被破解.你可以想象一下,信用卡交易被破解的后果. 进入正题之前,我先 ...

  3. [Java]在xp系统下java调用wmic命令获取窗口返回信息无反应(阻塞)的解决方案

    背景:本人写了一段java代码,调用cmd命令“wmic ...”来获取系统cpu.mem.handle等资源信息.在win7操作系统下运行没有问题,在xp系统下却发现读取窗口反馈信息时无反应(阻塞) ...

  4. Windows系统HTTP身份验证方法

    当Windows客户端尝试使用HTTP协议访问基于Web的资源时,会在客户端和服务器之间建立"对话".换句话说,服务器告诉客户端,访问资源之前进行身份验证 ,并且服务器还告诉客户端 ...

  5. c++ vector & 二维数组 & MessageBox

    vector: https://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html c++ 二维数组: int **p; p = new in ...

  6. js中(break,continue,return)的区别

    break 一般用于跳出整个循环(for,while) continue  跳出本次循环,进入下一次循环 return 只能出现在函数体内,一旦执行return,后面的代码将不会执行,经常用retur ...

  7. C++指针的概念解读

    C++指针的概念解读 超详细 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区 ...

  8. log4j 配置文件 (XML/.properties)

    xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configurat ...

  9. 【BZOJ1833】[ZJOI2010] count 数字计数(数位DP)

    点此看题面 大致题意: 求在给定的两个正整数\(a\)和\(b\)中的所有整数中,\(0\sim9\)各出现了多少次. 数位\(DP\) 很显然,这是一道数位\(DP\)题. 我们可以用前缀和的思想, ...

  10. python_55_局部和全局变量

    school='Hebut'#school为全局变量 sex='male'#全局变量 names=['Wang Yu','Bai Jingyi','Zhang Yu'] hobby='姑娘' def ...