一.数学函数


功能 函数名  用法
绝对值  ABS()  
 指数  POWER() POWER(FWeight,-0.5)
 平方根  SQRT()  
 求随机数  RAND()  
 舍入到最大整数  CEILING()  
 舍入到最小整数  FLOOR()  
 四舍五入  ROUND(m)  
 四舍五入  ROUND(m,d)  d是保留的小数位数
 正弦  SIN()  
 余弦  COS ()  
 反正弦  ASIN()  
 反余弦  ACOS()  
 正切  TAN()  
 反正切  ATAN()  
 2个变量的反正切  ATAN2(X,Y)  Y是象限
 余切  COT()  
 圆周率  PI()  
 弧度制转换为角度制  DEGREES ()  
 角度制转换为弧度制  RADIANS ()  
 求符号  SIGN()

大于0 则返回1,等于0 则返回0,小于0 则返回-1

 求余数  MOD()  
 自然对数  LOG ()  
 以10为底的对数  LOG10()  
 求幂  POWER(X,Y)  

二.字符串函数


功能 函数名 用法
计算字符串长度 LENGTH()  
字符串转换为小写 LOWER()  
字符串转换为大写 UPPER ()  
截去字符串左侧空格 LTRIM()  
截去字符串右侧空格 RTRIM ()  
截去字符串两侧的空格 TRIM ()  
取子字符串 SUBSTRING(string,start_position,length)  
计算子字符串的位置 INSTR(string,substring)  
从左侧开始取子字符串 LEFT (string,length)  
字符串替换 REPLACE(string,string_tobe_replace,string_to_replace)  
得到字符的ASCII码 ASCII()  
得到一个ASCII码数字对应的字符 CHAR()  
发音匹配度 SOUNDEX()  

时间日期函数

功能 函数名 用法
取得当前日期时间 NOW() mysql
日期增减 DATE_ADD (date,INTERVAL expr type) SELECT FBirthDay,
DATE_ADD(FBirthDay,INTERVAL 1 WEEK) as w1,
DATE_ADD(FBirthDay,INTERVAL 2 MONTH) as m2,
DATE_ADD(FBirthDay,INTERVAL 5 QUARTER) as q5
FROM T_Person
计算日期差额 DATEDIFF(date1,date2)  
计算一个日期是星期几 DAYNAME(FBirthDay)  
取得日期的指定部分 DATE_FORMAT(date,format)  

三.类型转换

mysql

CAST(expression AS type)
CONVERT(expression,type)

类型  缩写 说明
 BINARY    BINARY字符串
 CHAR    字符串类型
 DATE    日期类型
 DATETIME    时间日期类型
 SIGNED INTEGER  SIGNED  有符号整数
 TIME    时间类型
 UNSIGNED INTEGER  UNSIGNED  无符号整数

oracle

TO_CHAR(expression,format); 将时间日期类型或者数值类型的数据转换为字符串

TO_DATE (expression,format); 将字符串转换为时间类型

TO_NUMBER (expression,format); 将字符串转换为数值类型

HEXTORAW() 将十六进制格式的数据转换为原始值

RAWTOHEX() 将原始值转换为十六进制格式的数据。

TO_MULTI_BYTE() 将字符串中的半角字符转换为全角字符

TO_SINGLE_BYTE() 将字符串中的全角字符转换为半角字符


四.空值处理


COALESCE ( expression,value1,value2……,valuen)

COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回 expression;否则判断value1是否是空值,如果value1不为空值则返回value1;否则判断value2是否是空值,如果 value2不为空值则返回value3;……以此类推,如果所有的表达式都为空值,则返回NULL。

COALESCE()函数的简化版

MYSQL: IFNULL(expression,value)
Oracle: NVL(expression,value)

NULLIF ( expression1 , expression2 )

如果两个表达式不等价,则NULLIF 返回第一个expression1的值。如果两个表达式等价,则NULLIF 返回第一个expression1类型的空值。也就是返回类型与第一个expression相同。

CASE函数

SELECT
FName,
(CASE FName
WHEN ‘Tom’ THEN ‘GoodBoy’
WHEN ‘Lily’ THEN ‘GoodGirl’
WHEN ‘Sam’ THEN ‘BadBoy’
WHEN ‘Kerry’ THEN ‘BadGirl’
ELSE ‘Normal’
END) as isgood
FROM T_Person

SELECT
FName,
FWeight,
(CASE
WHEN FWeight<40 THEN ‘thin’
WHEN FWeight>50 THEN ‘fat’
ELSE ‘ok’
END) as isnormal
FROM T_Person


五.各数据库系统独有函数


1.MYSQL中的独有函数

IF()函数

SELECT FName, FWeight,
IF(FWeight>50,’太胖’,'正常’) AS ISTooFat
FROM T_Person

CONV()函数用于对数字进行进制转换,比如将十进制的26转换为2进制显示,其参数格式如下:
CONV(N,from_base,to_base)

将每个人的体重四舍五入为整数,然后以二进制的形式显示它们:
SELECT FWeight,Round(FWeight),
CONV(Round(FWeight),10,2)
FROM T_Person

填充函数

LPAD(str,len,padstr)
RPAD(str,len,padstr)

SELECT FName,LPAD(FName,5,’*'),RPAD(FName,5,’*') FROM T_Person

REPEAT()用来得到一个子字符串重复了若干次所组成的字符串

REPEAT(str,count)

字符串颠倒

REVERSE() 函数用来将一个字符串的顺序颠倒

字符串的集合操作

SELECT FName,
ELT(FLevel, ‘VIP客户’, ‘高级客户’, ‘普通客户’)
FROM T_Customer

SELECT FName,
FIELD(FCustomerTypeName, ‘VIP’, ‘会员’, ‘普通客户’)
FROM T_Customer

计算集合中的最大最小值

SELECT GREATEST(2,7,1,8,30,4,3,99,2,222,12),
LEAST(2,7,1,8,30,4,3,99,2,222,12)

辅助功能函数

DATABASE()函数返回当前数据库名;

VERSION()函数以一个字符串形式返回MySQL 服务器的版本;

USER()函数(这个函数还有SYSTEM_USER、SESSION_USER两个别名)返回当前MySQL 用户名。

ENCODE(str,pass_str)函数使用pass_str 做为密钥加密str,函数的返回结果是一个与string 一样长的二进制字符。如果希望将它保存到一个列中,需要使用BLOB列类型。
DECODE()函数使用pass_str 作为密钥解密经ENCODE加密后的字符串crypt_str。

MD5(string)、SHA1(string)两个函数就是分别用来使用MD5算法和SHA1算法来进行字符串的摘
要计算的函数

2.Oracle中的独有函数

填充函数

SELECT FName,
LPAD(FName,5,’*'),
RPAD(FName,5,’#')
FROM T_Person

返回当月最后一天

SELECT FName,FBirthDay,
LAST_DAY(FBirthDay)
FROM T_Person
WHERE FBirthDay IS NOT NULL

计算最大最小值

SELECT GREATEST(2,7,1,8,30,4,5566,99,2,222,12),
LEAST(2,7,1,8,30,4,3,99,-2,222,12)
FROM DUAL

辅助功能函数

取得当前登录用户名,注意,不能用括号

SELECT USER
FROM DUAL

USERENV()函数用来取得当前登录用户相关的环境信息

参数 说明
‘ISDBA’ 如果当前登录用户有DBA的角色则返回TRUE,否则返回FALSE
‘LANGUAGE’ 返回当前登录用户使用的语言和字符集,返回格式为“语言.字符集”
‘TERMINAL’ 返回当前登录用户的操作系统标识
‘SESSIONID’ 返回当前登录用户的会话标识
‘ENTRYID’ 返回当前登录用户的认证标识
‘LANG’ 返回当前用户使用的语言,它比’LANGUAGE’的返回值短
‘INSTANCE’ 返回当前实例的标识

SELECT USERENV(‘ISDBA’) AS ISDBA,
USERENV(‘LANGUAGE’) AS LANGUAGE,
USERENV(‘LANG’) AS LANG
FROM DUAL

SQL笔记-第五章,函数的更多相关文章

  1. 《Linux内核设计与实现》第四周读书笔记——第五章

    <Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...

  2. 《Linux内核设计与实现》读书笔记——第五章

    <Linux内核设计与实现>读书笔记--第五章 标签(空格分隔): 20135321余佳源 第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限 ...

  3. Programming Entity Framework-dbContext 学习笔记第五章

    ### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...

  4. 深入理解 C 指针阅读笔记 -- 第五章

    Chapter5.h #ifndef __CHAPTER_5_ #define __CHAPTER_5_ /*<深入理解C指针>学习笔记 -- 第五章*/ /*不应该改动的字符串就应该用 ...

  5. Android群英传笔记——第五章:Android Scroll分析

    Android群英传笔记--第五章:Android Scroll分析 滑动事件算是Android比较常用的效果了,而且滑动事件他本身也是有许多的知识点,今天,我们就一起来耍耍Scroll吧 一.滑动效 ...

  6. [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像

    [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像 干货 JPEG.PNG.GIF有何不同 JPEG适合连续色调图像,如照片:不支持透明度:不支持动画:有损格式 PNG适合单 ...

  7. C#学习笔记(五)——函数

    一.定义和使用函数. 直接通过例子进行说明吧 class Program { static void Write() { Console.WriteLine("Test output fro ...

  8. 《Spring实战》学习笔记-第五章:构建Spring web应用

    之前一直在看<Spring实战>第三版,看到第五章时发现很多东西已经过时被废弃了,于是现在开始读<Spring实战>第四版了,章节安排与之前不同了,里面应用的应该是最新的技术. ...

  9. opencv图像处理基础 (《OpenCV编程入门--毛星云》学习笔记一---五章)

    #include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgu ...

随机推荐

  1. JDBC中的ResultSet

    ResultSet:结果集.存放数据库中的数据,可以将它想象成一张数据表,通过Statement对象中的executeQuery()方法获得 import com.mysql.jdbc.Stateme ...

  2. linux命令:which

    1.命令介绍: which用来在指定的路径搜索某个系统命令的位置,并返回第一个搜索结果. 2.命令格式: which [选项] 系统命令 3.命令参数: -n  指定文件名长度,指定的长度必须大于或等 ...

  3. codeforces 446B(优先队列)

    题目链接:http://codeforces.com/problemset/problem/446/B #include<bits/stdc++.h> using namespace st ...

  4. C++模板中的函数对象

    在C++模板类map中一个参数为Compare类型,该类型为一个比较函数,其完整定义如下: template< class Key, class T, class Compare = std:: ...

  5. iOS常用设计模式和机制之Block简单使用

    Block :block 实际上就是 Objective-C语言对闭包的实现 闭包(Closure):闭包就是一个函数,或者一个指向函数的指针,加上这个函数执行的非局部变量.闭包允许一个函数访问声明该 ...

  6. UVa 679 小球下落

    题意:这道题规律性极强,虽然是二叉树,但是可以用模拟来写. 1<<20 意思是1的二进制左移20位,即2的20次方. 对于二叉树中一个节点 k ,其左节点,右节点的编号分别是2k 和 2k ...

  7. poj3114 强连通+最短路

    题意:有 n 个城市,城市之间能够通过邮件或者电子邮件传递消息,已知 m 条邮件线路,每条线路代表 A 能送邮件到 B,并且花费 V 时间,如果几个城市之间能够相互邮件送达,那么他们就在同一个国家内, ...

  8. squid安装、配置、控制

    Squid 目录 [隐藏]  1 前言 2 安装 2.1 从源中安装 2.2 源码编译安装 3 基本配置 4 高级控制 5 认证 6 总结 6.1 服务器配置 6.2 用户分类 6.3 行为分类 6. ...

  9. win10 64bits信捷触摸屏download usb口驱动程序的安装

    [问题描述] win10 64bits,信捷触摸屏开发软件,下载的时候需要安装驱动程序. 用的以前的win7 64bits的驱动程序,直接双击安装,显示无法操作注册表,需要管理员模式. 使用管理员权限 ...

  10. 《统计推断(Statistical Inference)》读书笔记——第4章 统计分布族

    数据分析工作中最常和多维随机变量打交道,第四章介绍了多维随机变量的基本知识,其中核心概念是条件分布和条件概率.条件分布和条件概率可以抽象出条件期望的概念,在随机分析的研究中,理解随机积分和鞅理论和关键 ...