7. 数据库函数

        每个数据库都会在标准的SQL基础上扩展一些函数。函数一般会有一或多个输入(即参数),最终只返回一个值作为返回值。

        SQL中的函数是独立的程序单元。调用时无需使用任何类、对象作为调用者。

  • 多行函数(也称 聚集函数、分组函数)

        对多行输入整体计算,最后只得到一个结果。主要完成一些统计功能,在大部分数据库中基本相同。

  • 单行函数

        对每行输入值单独计算,每行得到一个结果并返回。不同数据库单行函数差别很大。

MySQL中的单行函数具有如下特征:

  • 可多个参数,但只返回一个值;
  • 参数可以是变量、常量、数据列;
  • 对每行单独起作用,每行返回一个结果;
  • 使用单行函数可改变参数的数据类型;
  • 支持嵌套使用(内层函数返回值是外层函数的参数)。

       

MySQL单行函数分类:

        MySQL数据库的数据类型大致分为数值型、字符型和日期时间型,MySQL提供了对应的函数。

数值函数、字符函数、日期和时间函数、转换函数、其他函数(位函数、流程控制函数、加密解密函数、信息函数)。


# 表中name字段的字符长度(输出行数与表的行数相同)

SELECT

    CHAR_LENGTH(NAME)

FROM student;

 

# 嵌套使用

SELECT SIN(CHAR_LENGTH(NAME))

FROM student;

 

# 为指定日期添加一定的时间

SELECT

    DATE_ADD(

        '2016-02-28',

        # INTERVAL是关键字,后跟一个值和单位

        INTERVAL DAY #输出2016-03-01

    );

 

# 更简便的增加指定时间

SELECT

    ADDDATE('2015-01-18',3);

 

SELECT

    # CURTIME(); # 获取当前时间,如17:52:55

    # 获取当前日期,如2016-01-19

    CURDATE();

 

# MD5加密

SELECT MD5('hello');

 

#

#处理NULL的函数

#

SELECT

    # IFNULL(id,'expr') #
id为null,则返回expr

    # NULLIF(grade, math) #
grade和math相等则返回null,否则返回grade

    ISNULL(id) # 为null则返回0(true),否则返回1(false)

FROM student;

 

SELECT

    # 若expr1(id)为true、不等于0且不等于null,则返回expr2,否则返回expr3

    #此处id不是布尔值,只要非空即为true

IF(id,'expr2','expr3')

FROM student;

 

#

# case流程控制函数

# 两种用法

#

SELECT

    NAME,

    CASE id

WHEN 1 THEN

    'is
1'

WHEN 2 THEN

    'is
2'

ELSE

    '>2'

END AS `level`

FROM

    student;

 

# case语法2更灵活

# when condition(返回boolean值的表达式)

SELECT

    NAME,

    CASE #
id

WHEN id <=5 THEN

    'small'

WHEN id <10 THEN

    'big'

ELSE

    'null'

END AS `level`

FROM

    student;

时间: 2024-08-30 20:34:20

7. 数据库函数的相关文章

一组文件数据库函数

函数|数据|数据库 <?/** * 文件数据库函数 * 约定: * 数据库名为同名目录 * 数据表名后缀为 tab * 索引文件后缀为 ind * 管理文件名为 数据库同名目录/manage.ini * 备注型字段以独立文件存在,表中保留文件名 * 字段以定长方式或csv方式保存,由管理文件指定 * 每行一条记录 * 索引文件以二进制方式包存键值(定长)和偏移量(长整型) * ** 函数列表(前面有:+ 为已实现,- 为部分实现,其余为尚未实现)      套用 MySQL 函数集 取名 FIL

PHP3的MicrosoftSQL数据库函数

  PHP3的MicrosoftSQL数据库函数      PHP3强大的数据库功能除了提供通过ODBC访问数据库的方式之外,还提供了对目前主流数据库的直接访问支持.下面,我们就来介绍一下PHP3中的MSSQL函数.      在PHP3脚本中调用MSSQL函数      默认情况下,PHP3把对Microsoft SQL数据库的支持作为附加模块.因此,用户如果希望在自己编写的PHP代码中使用MSSQL函数的话,应当首先启动PHP对MSSQL函数的支持功能.具体为,打开php3.ini文件,找到

Sybase数据库函数库

这个函数库和 SQL Server 数据库函数库几乎完全相同,实际上是本函数先出现,之后才出现 SQL Server 数据库函数库. 而就用户观点 Sybase 和 MS SQL Server 6.x 也是几乎相同的.当然 MS SQL Server 7.0 之后的差异就比较大了. sybase_affected_rows: 取得最后 query 影响的列数. sybase_close: 关闭与数据库的连接. sybase_connect: 连上数据库. sybase_data_seek: 移动

Excel数据库函数

本篇关于介绍Excel数据库函数 1.DAVERAGE 参数:返回数据库或数据清单中满足指定条件的列中数值的平均值. 语法:DAVERAGE(database,field,criteria) 参数:Database构成列表或数据库的单元格区域.Field指定函数所使用的数据列.Criteria为一组包含给定条件的单元格区域. 2.DCOUNT 参数:返回数据库或数据清单的指定字段中,满足给定条件并且包含数字的单元格数目. 语法:DCOUNT(database,field,criteria) 参数

Excel 数据库函数条件区域设置详解

  以下面的数据表格为例,对于条件区域的设置,有以下几方面需要注意的内容: 1,条件区域至少包含两行,在默认情况下,第一行作为字段标题,第二行作为条件参数.在某些情况下(后面会提到),字段标题可以留空;条件参数也可以留空,表示任意条件. 2,为避免出错,条件区域应尽量与数据区域分开放置,条件区域甚至可以放置在不同的工作表中. 3,同一列中包含多个条件参数,表示并列的逻辑"或",满足其中任一条件均能计入函数统计范畴. 例如:下图中的条件区域表示"销售员"字段可以为&q

《APUE》读书笔记-第二十章数据库函数库

本章的内容是开发一个简单的.多用户数据库的C函数库.调用此函数库提供的C语言函数,其他程序可以读取和存储数据库中的记录.绝大部分商用数据库函数库提供多进程同时更新数据库所需要的并发控制,采用建议记录锁.B+树.动态散列实现数据库. 1.函数库 开发类似ndbm函数库,增加了并发控制机制,从而允许多进程同时更新同一数据库.函数接口如下: 1 #include "apue_db.h" 2 DBHANDLE db_open(const char *pathname, int oflag, .

php封装的数据库函数与用法示例【参考thinkPHP】_php技巧

本文实例讲述了php封装的数据库函数与用法.分享给大家供大家参考,具体如下: 从Thinkphp里面抽离出来的数据库模块,感觉挺好用 common.php: <?PHP /** * 通用函数 */ //包含配置文件 if (is_file("config.php")) { C(include 'config.php'); } if (!function_exists("__autoload")) { function __autoload($class_nam

数据库函数代码管理 - 自动备份函数\过程代码到SVN\github\gitlab

标签 PostgreSQL , 存储过程 , plpgsql , plpython , pljava , svn , github , 版本管理 背景 市面上有很多代码的版本管理软件,比如gitlab, github, svn等等. 商业数据库的编程能力较强,比如Oracle的PL/SQL,很多传统企业会将对一致性.可靠性要求非常高的业务逻辑放到数据库中,这就造成了数据库内不仅仅存储数据,也存储了部分业务代码. PostgreSQL 作为开源界最高级的开源数据库,同样支持强大的函数语言plpgs

Discuz 5.0 中读取纯真IP数据库函数分析

函数|数据|数据库 Discuz  5.0 不在使用自己的IP数据,而是使用纯真IP的数据格式, 存取纯真IP数据库稍微有点麻烦,它的存储格式比较特殊也很有趣,具体的格式分析参考下面两个链接,其他语言实现参考文章末的链接. <纯真IP数据库格式详解>链接一:http://blog.csdn.net/heiyeshuwu/archive/2006/05/12/725675.aspx链接二:http://lumaqq.linuxsir.org/article/qqwry_format_detail

MySQL数据库函数详解(1)

mysql|函数|数据|数据库|详解 (1) int mysql_affected_rows([int link_id]); 在给定的连接中,返回由最近的DELETE.INSERT.REPLACE或者UPDATE语句所作用的行数.如果没有行 被修改,则mysql_affected_rows()返回0,如果出现错误,则返回-1. 在SELECT查询之后,mysql_affected_rows()返回所选择的行数.但一般是与SELECT语句一道使用 mysql_num_rows(). 使用范例: <