SQL函数

SQL函数基础知识整理

聚合函数:

  • AVG():返回平均值

    语法:
    select avg(列名) from 表名
    (查询某表某一列数据的平均值)

  • COUNT():返回行数

    语法:
    select count(*) from 表名
    select count(列名) from 表名
    (查询某表中数据行数)(NULL 不计入)

  • FIRST():返回第一个记录的值

    语法:
    select first(列名) from 表名
    (返回某表中某列的第一条数据)

  • LAST():返回最后一个记录的值

    语法:
    select last(列名) from 表名
    (返回某表中某列最后一条记录数据)

  • MAX():返回最大值

    语法:
    select max(列名) from 表名
    (返回某表中某列数据中的最大值)

  • MIN():返回最小值

    语法:
    select min(列名) from 表名
    (返回某表中某列数据的最小值)

  • SUM():返回总和

    语法:
    select sum(列名) from 表名
    (返回某表中某列数据的总和)

计数函数:

UCASE():将某个字段转换为大写
LCASE():将某个字段转换为小写
MID():将某个文本字段提取字符,MySql中使用
SubString(字段,1,end):从某个文本字段提取字符
LEN():返回某个文本字段的长度
ROUND():对某个数值字段进行指定的小数位数的四舍五入
NOW():返回当前的系统日期和时间
FORMAT():格式化某个字段的显示方式
  • group by :用于聚合函数根据一个或多个列对结果集进行分组

    语法:
    select * from 表名 where 列名1 > 10 group by 列名2
    (返回某表中列1大于10的数据按照列2正序排列)
    (asc正序排列,desc倒序排列,默认为正序)

  • having:用与聚合条件查询(having后面可以使用函数条件)

    语法:
    select 列名1 from 表名 having sum(列名2) < 2000
    (查询列名2之和小于2000得列1的值)
    例:
    SELECT Customer,SUM(OrderPrice) FROM Orders
    GROUP BY Customer
    HAVING SUM(OrderPrice)<2000
    (查找OrderPrice金额之和少于 2000 的Customer)SQL函数_第1张图片
    SQL函数_第2张图片

  • UCASE() :把字段的值转换为大写

    语法:
    select UCASE(列名1) from 表名
    (从某表中查询列1的信息并全部转换为大写)

  • LCASE():把字段的值转换为小写

    语法:
    select LCASE(列名1) from 表名
    (从某表中查询列1的信息并全部转换为小写)

  • MID():从文本中提取字符

    语法:
    select MID(列名1,start[,length]) from 表名
    (从某表中查询列1的信息并截取从第start起(不包含start)至length长得字符)

  • LEN():返回文本中字段值的长度

    语法:
    select LEN(列名1) from 表名
    (从某表中查询列1的值得长度)

  • ROUND():把数值字段舍入为指定的小数位数

    用法:
    select ROUND(列名1,decimals) from 表名
    (从某表中查询列1并保留decimals位小数)

  • NOW():返回当前的日期和时间

    用法:
    select 列名1,NOEW() from 表名
    (从某表中查询列1并添加一列数据为当前时间日期)

  • FORMAT():用于对字段的显示进行格式化

    用法:
    select FORMAT(列名1,format) from 表名
    (从某表中查询列1并将其使用format格式进行格式化)
    例:
    SELECT ProductName, UnitPrice, FORMAT(Now(),‘YYYY-MM-DD’) as PerDate
    FROM Products

  • NVL(表达式1,表达式2): 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值

    用法1:
    select NVL(列名1,值1) from 表名
    (从表中查询列1,如果列1的值为空则展示未值1,不为空则展列1的值)
    用法2:(nvl函数可以作为where查询条件)
    select 列2 from 表名 where NVL(列名1,值1) = 1
    (当值1的值为1,从表中查询列1值为null的列2的信息)

  • where与having的区别:

where:
where是一个约束声明,使用where来约束来自数据库的数据;
where是在结果返回之前起作用的;
where中不能使用聚合函数。
having:
having是一个过滤声明;
在查询返回结果集以后,对查询结果进行的过滤操作;
在having中可以使用聚合函数。
执行顺序:
where 早于 group by 早于 having
where子句在聚合前先筛选记录,也就是说作用在group by 子句和having子句前,而 having子句在聚合后对组记录进行筛选
(sql执行顺序:From ->Where ->Group By->Order By)

你可能感兴趣的:(java,数据库,sql,mysql)