`
ColorPanda
  • 浏览: 62961 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle常用函数

 
阅读更多

 

1.1 select语句的功能

 选择、投影、连接

 

1.2 select语句的语法

SELECT column1, column2.、、(distinctexpressionalias || AS--指定提取的列

  FROM table1table2、、--指定表提取

 WHERE  --设置条件范围

 GROUPBY--分组

HAVING--设置分组条件

 ORDERBYASC / DESC--设置排序

 

 

1.3 select语句的运算符

(算术运算符,连接运算符,关系运算符,其他运算符,逻辑表达式)

1(),+,-,*,/         --数字和日期数据可以使用进行计算

2||  =concat                   --连接运算符

3=,>,>=,<,<=                       --关系运算符

4IS [NOT] NULL,LIKE,[NOT] IN,[NOT] BETWEEN  AND      --其他运算符

5   NOT,AND,OR                         --逻辑表达式

 

 

2.1 字符函数

2.1.1 CONCAT ,||

     功能:连接字符串

     语法:CONCAT(str1,str2)

SELECTCONCAT('名字','9527'),'名字'||'9527'FROM dual;

 

 

2.1.2 INITCAP

   功能:该函数将参数的第一个字母变为大写,此外其它的字母则转换成小写。

   语法:INITCAP(str1)

   SELECTINITCAP('ADMIN') FROM dual;

 

2.1.3 LOWERUPPER

   功能:LOWER将参数转换为全部小写字母,而UPPER则把参数全部转换成大写字母。

   语法:LOWER(str1) ,UPPER(str1)

   SELECTLOWER('Admin'),UPPER('Admin') FROM dual;

 

2.1.4 LPADRPAD

   功能:补全(填充)

   语法:LPAD/RPAD(待处理字符串(字段),扩充宽度,填充字符(可空))

SELECTLPAD('800',4) FROM dual; 

  SELECTLPAD('800',4,'0') FROM dual;

 

2.1.5 TRIMLTRIMRTRIM

  TRIM

功能:去除指定的字符。trim只能去除单个字符

  语法:TRIM(leading|trailing|both string1 FROM string2)

    SELECTtrim(leading'd'from'dfssad') FROM dual;

 SELECTtrim(both'1'from'123sfd111') FROM dual;

    SELECTtrim(trailing'2'from'213dsq12') FROM dual;

 

  LTRIMRTRIM

  功能:去除多个字符

  语法:LTRIM(string1,string2),RTRIM(string1,string2)

  SELECTLTRIM('Admin','A'),LTRIM(' Admin'),TRIM(' Admin ') FROM dual;

 

2.1.6 REPLACE

功能:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。

语法: REPLACE(stringsearch_str[replace_str])

 SELECT'Admin',REPLACE('Admin','min','**') 替换后FROM dual;

 

2.1.7 SUBSTR

功能:返回从字母为值a开始b个字符长的string的一个子字符串

语法:SUBSTR(string,a[,b])

 SELECTSUBSTR('admin',1,2),SUBSTR('admin',2) FROM dual;

 

2.1.8 INSTR

功能: 得到在string1中包含string2的位置。

语法: INSTRstring1 string2[ab]

SELECTINSTR('admin','n') FROM dual;

 

2.1.9 LENGTH

功能:返回string的字节单位的长度。如果stringNULL,返回结果是NULL,而不是0

语法: LENGTH(string)

SELECTLENGTH(NULL),LENGTH('admin') FROM dual;

 

2.2 数字函数

 

2.2.1 ABS

功能:ABS函数返回给定数字的绝对值。

语法: ABS(NUMBER)

SELECT -10.45,ABS(-10.45) FROM dual;

 

2.2.2 ROUND

功能:四舍五入至指定小数位数。

语法: ROUND(NUMBER,小数取几位)

SELECT10.45,ROUND(10.45,1) FROM dual;

 

2.2.3 TRUNC

功能:截断指定小数位数。

语法: TRUNC(NUMBER,小数取几位)

 SELECT10.45,TRUNC(10.45,1) FROM dual;

 

2.3 日期函数

ORACLE数据库对日期数据在内部存贮格式:世纪,,,,,,

默认日期显示格式为:DD-MON-RR.

允许你以两位数字表示年份。

SYSDATE函数返回当前系统日期时间。

   格式串:

YYYY

年份用四位数字表示

MM

月份用两位数字表示

DD

日期用两位数字表示

HH24:MI:SS AM

24小时制表示时分秒,AM表示要输出上下午标志

 

2.3.1 SYSDATE

功能:返回当前系统日期时间。

语法:SYSDATE

SELECT  SYSDATE  FROM  dual;

 

2.3.2 ADD_MONTHS

功能:将给定的日期增加一个月。

语法: ADD_MONTHS(DATE,NUMBER)

SELECTSYSDATE ,add_months(SYSDATE,2) FROM dual;

 

 

2.3.3 NEXT_DAY

功能:返回与指定日期在同一个星期或之后一个星期内的,你所要求的星期天

数的确切日期。

语法: NEXT_DAY(DATE,星期)

 SELECTSYSDATE, next_day(SYSDATE, 5) FROM dual;

 

2.3.4 LAST_DAY

功能:返回指定月份的最后一天。

语法: LAST_DAY(DATE)

SELECT last_day(SYSDATE) FROM dual;

 

2.3.5 ROUND

功能:四舍五入日期。

语法:ROUND(DATE)

SELECTSYSDATE, ROUND(SYSDATE, 'year'),ROUND(SYSDATE, 'month') ,ROUND(SYSDATE) FROM dual;

 

2.3.6 TRUNC

 功能:截断指定日期。

 语法:TRUNC(DATE)

selectSYSDATE,TRUNC(sysdate,'year'),TRUNC(SYSDATEfrom dual;

 

 

2.4 转换函数

 

2.4.1 TO_NUMBER

功能:将一个字符串转换成数值。

语法: TO_NUMBER(varchar2orchar,’format model’)

select TO_NUMBER('2005') from dual;

select TO_NUMBER('$123,623.3400','$999,999.0000') from dual;

9

代表一个数字

0

强迫0显示

$

显示美元符号

L

强制显示一个当地的货币符号

.

显示一个小数点

,

显示一个千位分隔符号

 

2.4.2 TO_CHAR

功能:将一个日期或数字转换成一个字符串。

语法:TO_CHAR(DATE,’format_model’)

 SELECT TO_CHAR(SYSDATE, 'yyyy/mm/dd hh24:mi:ss') FROM dual;

 

2.4.3 TO_DATE

功能:将字符串转化为ORACLE中的一个日期。

语法:TO_DATE(string,'format')

select to_date('2016-03-16 14:21:00','yyyy-mm-dd hh24:mi:ss'from dual;

select to_date('2016-03-16 14:21:00','yyyy-mm-dd hh:mi:ss'from dual;

 

 

2.5 聚合函数

 

2.5.1 COUNT

功能:返回满足WHERE条件子句中记录的个数。

语法:COUNT()

SELECTCOUNT(*) FROM tm_department;

 

 

COUNT(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入)

 

如果你的数据表没有主键,那么count(1)count(*)  

如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快  

如果你的表只有一个字段的话那count(*)就是最快的啦  

count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。  

如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。  

因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的。

 

 

2.5.2 SUM

功能:返回某一列的所有数值的和。

语法:SUM(列名)

selectSUM(money) from (SELECT10 money FROM dual

        UNIONALL

        SELECT15FROM dual);

 

2.5.3 AVG

功能:返回某一列的平均值。

语法:AVG(列名)

SELECTAVG(money)

  FROM (SELECT10 money FROM dual

        UNIONALL

        SELECT15FROM dual)

 

2.5.4 MAX

功能:求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次。

语法:MAX(DISTINCT|ALL)

求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次。例如:

selectmax(年龄) from病人信息;

 

2.5.5 MIN

功能:求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次。

语法:MIN(DISTINCT|ALL)

SELECTMIN(dept_id) FROM tm_department;

 

 

2.6 其他函数

 

2.6.1 NVL

功能:第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

语法:NVL(expr1,expr2)

SELECTNVL(NULL,'1'),NVL('','1'),NVL(3,'1') FROM dual;

 

 

2.6.2 NVL2

功能:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。

语法:NVL2(expr1,expr2, expr3)

SELECTNVL2(NULL,'2','3'),NVL2('1','2','3') FROM dual;

 

2.6.3 NULLIF

功能:如果exp1exp2相等则返回空(NULL),否则返回第一个值。

语法:NULLIF(exp1,expr2)

SELECTNULLIF(2,3) FROM dual;

 

2.6.4 DECODE

功能:如果exp1exp2相等则返回空(NULL),否则返回第一个值。

语法:DECODE(条件,1,返回值1,2,返回值2,...n,返回值n,缺省值)

该函数的含义如下:

IF条件=1 THEN

    RETURN(返回值1)

ELSIF条件=2 THEN

    RETURN(返回值2)

    ......

ELSIF条件=n THEN

    RETURN(返回值n)

ELSE

    RETURN(缺省值)

ENDIF;

 

SELECTDECODE(money,10,11,15,16,0)

  FROM (SELECT10 money FROM dual

        UNIONALL

        SELECT15FROM dual);

       

       

2.6.5 caseWHEN

功能:根据条件选择值。

  Case具有两种格式。简单Case函数和Case搜索函数

  简单Case函数

简单CASE表达式,使用表达式确定返回值.

  语法:

  CASE search_expression

  WHEN expression1 THEN result1

  WHEN expression2 THEN result2

  ...

  WHEN expressionN THEN resultN

  ELSE default_result

 

 搜索CASE表达式,使用条件确定返回值.

  语法:

  CASE

  WHEN condition1 THEN result1

  WHEN condistion2 THEN result2

  ...

  WHEN condistionN THEN resultN

  ELSE default_result

  END

 

--简单Case函数 

CASE salary  

WHEN200THEN'等级1' 

WHEN400THEN'等级2' 

ELSE'等级3'END 

--Case搜索函数 

CASEWHEN salary = 200THEN'等级1' 

WHEN salary = 400THEN'等级2' 

ELSE'等级3'END 

 

 

SELECT salary,

       CASE

         WHEN salary = 200THEN

          '等级1'

         WHEN salary = 400THEN

          '等级2'

         ELSE

          '等级3'

       END

  FROM (SELECT200 salary FROM dual

        UNIONALL

        SELECT400FROM dual

        UNIONALL

        SELECT500FROM dual);

 

2.6.6 UNIONUNIONAll

集合查询有UNION , INTERSECTMINUS

UNION:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

UNIONAll:对两个结果集进行并集操作,包括重复行,不进行排序;

 

SELECT15 money FROM dual

UNIONALL

SELECT10FROM dual

UNIONALL

SELECT10FROM dual;

 

SELECT15 money FROM dual

UNION

SELECT10FROM dual

UNION

SELECT10FROM dual;

 

 

2.7 分组函数

 

2.7.1 GROUPBY

功能: 分组。

语法:GROUPBY列名1,....

 

SELECT a_name,SUM(salary) FROM

(SELECT'张三' a_name ,200 salary FROM dual

        UNIONALL

        SELECT  '李四' a_name,400FROM dual

        UNIONALL

        SELECT  '李四' a_name ,500FROM dual)

 GROUPBY a_name  

 

 

2.7.2 HAVING

功能: 分组搜索(HAVING子句允许你将汇总函数作为条件,使用在查询语句中。HAVING子句为一组记录设置查询的条件,

通常having子句允许用户指定对一个记录组的搜索条件)

语法:HAVING查询条件

 

SELECT a_name,COUNT(1) FROM

(SELECT'张三' a_name ,200 salary FROM dual

        UNIONALL

        SELECT  '李四' a_name,400FROM dual

        UNIONALL

        SELECT  '李四' a_name ,500FROM dual)

 GROUPBY a_name

 HAVINGCOUNT(1)>1 

 

 

 

 

分享到:
评论

相关推荐

    oracle常用函数大全

    Oracle 常用函数大全 Oracle 中有许多常用函数,以下是其中一些: 字符函数 1. ASCII:返回与指定的字符对应的十进制数。例如:`SELECT ASCII('A') FROM DUAL;` 返回 65。 2. CHR:给出整数,返回对应的字符。...

    Oracle常用函数大全

    Oracle常用函数大全 Oracle常用函数大全是一个非常重要的知识点,涵盖了许多实用的函数,例如日期函数、字符串函数、聚合函数等。这些函数可以帮助开发者更方便地进行数据库操作和数据分析。本文将详细介绍Oracle...

    Oracle常用函数集

    ### Oracle常用函数集详解 #### 一、ASCII函数 **功能描述:** ASCII函数用于返回与指定字符相对应的十进制数值。 **语法格式:** ```sql ASCII('字符') ``` **示例:** ```sql SELECT ASCII('A') A, ASCII('a') ...

    Oracle常用函数.pdf

    ### Oracle常用函数详解 #### 一、概述 Oracle 数据库提供了丰富的内置函数,极大地提高了 SQL 语句在处理数据时的灵活性与效率。这些函数主要分为两大类:单行函数和多行函数(也称为聚合函数)。单行函数通常...

    Oracle常用函数.txt

    以下是从“Oracle常用函数.txt”文件中提炼出的关键知识点,旨在为初学者提供深入理解与实践的指导。 ### ASCII() 和 CHR() - **ASCII()** 函数用于返回一个字符的ASCII码值。例如,`ASCII('A')` 返回的是65,而 `...

    ORACLE常用函数总结(含与SQL SERVER比较)

    ORACLE常用函数总结,与SQL SERVER对比,防止混淆,更容易记忆。

    oracle常用函数总结

    以下是对标题和描述中提到的Oracle常用函数的详细总结: 1. ASCII 函数:这个函数返回一个字符对应的ASCII码,即十进制数字。例如,`ASCII('A')`返回65,`ASCII(' ')`返回32(空格的ASCII码)。 2. CHR 函数:与...

    sql_mysql_oracle常用函数

    sql,mysql,oracle常用的函数

    hive和oracle常用函数对照表.xlsx

    hive和oracle常用函数对照,包含常用的函数分类 字符函数 数值函数 日期函数 聚合函数 转换函数 其他 增加的hive函数对比,只需要2个积分喔

    oracle 常用函数下载

    Oracle数据库中的常用函数是数据库管理员和开发人员在处理数据时不可或缺的工具。这些函数极大地提高了数据处理的效率和灵活性。以下是一些常见的Oracle分析函数及其用法: 1. **开窗函数(Over)**: 开窗函数允许...

    Oracle常用函数和使用方法

    ### Oracle常用函数与使用方法详解 #### 一、Oracle SQL函数概述 在Oracle数据库中,SQL函数被广泛用于处理各种数据类型,包括数值、字符、日期等,它们能够帮助我们更高效地进行数据检索和分析。本文将详细介绍...

    oracle常用函数chm版

    "Oracle常用函数chm版"是一个集合了多种Oracle数据库常用函数的参考资源,主要包含以下几个方面: 1. **数值型函数**:这类函数主要用于处理整数、浮点数等数值类型的数据。例如,`ROUND`函数用于四舍五入,`TRUNC`...

    oracle常用函数举例

    3.CONCAT:连接两个字符串; SQL&gt; select concat('010-','88888888')||'转23' 张三电话 from dual; 张三电话 ...SQL&gt; select instr('oracle traning','ra',1,2) instring from dual; INSTRING ---------

    oracle 常用函数 sqlplus基本命令

    本文将深入探讨"Oracle常用函数"以及"SQL*Plus基本命令"这两个关键领域,旨在帮助你提升在数据库操作中的效率。 一、Oracle常用函数 1. 长度函数`LENGTH` `LENGTH`函数用于计算字符串的字符数,不区分字符类型(如...

    oracle 常用函数大全

    本篇文章主要探讨Oracle常用函数,特别是涉及字符串处理、日期处理以及数据处理的函数。 1. **字符串处理函数**: - `SUBSTR(string, start_position, length)`: 从指定的字符串`string`中提取子字符串,从`start_...

    oracle常用函数 CHM

    本文将基于"Oracle常用函数 CHM"这个资源,详细解析一些Oracle数据库中常见的函数及其应用,帮助你更好地理解和掌握Oracle SQL查询语言。 1. **字符串处理函数** - `UPPER()` 和 `LOWER()`:这两个函数用于将字符...

    110个oracle常用函数.pdf

    Oracle创建函数是通过PL/SQL自定义编写的,通过关键字function按照自己的需求把复杂的业务逻辑封装进PL/SQL函数中,函数提供一个返回值,返回给使用者。这样使用者就不需要去理解业务逻辑,把PL/SQL函数中的业务逻辑...

Global site tag (gtag.js) - Google Analytics