• Oracle函数


    1.单行函数

    lower():全部小写

    SELECT lower('ASC') FROM dual;

    upper():全部大写

    SELECT upper('asc') FROM dual;

    initcap():首字母大写 帕斯卡命名法

    SELECT initcap('asc asd') FROM dual;

    concat():连接字符

    --concat  连接
    SELECT CONCAT('hahah','123') FROM dual;

    subString():截取字符串

    --substr('要截取的字符串',起始位置) 说明:位置从1开始
    select substr('HelloWord',6) from dual

    --substr('要截取的字符,起始位置,取几个字符)
    select substr('HelloWord',6,1) from dual

    length()/lengthb():获取字符/字节长度

    --length('字符串'):字符个数统计  lengthb('字符串'):字节个数统计
    select length('时间') 字符数,lengthb('时间') 字节数 from dual

    instr():查询小字符在大字符中出现的位置

    --instr('大字符串','小字符串')返回小字符串在大字符串中出现的位置
    select instr('Hello Word','or') from dual

    --instr( string1, string2 [, start_position [, nth_appearance ] ] )   /   instr(源字符串, 目标字符串, 起始位置, 匹配序号)
    select instr('Horlo Word','or',4,1) from dual--从第4个字母开始检索,但是前面的也要计数但不检索,1表示为出现次数

    如果第三个参数为负数,就从右到左数

    lpad():从左边填充

    lpad('字符',长度(加上字符一共多少长度),'要加上的字符')在字符前面拼接

    --lpad()从左边填充
    select lpad('word',10,'p') from dual

    rpad():从右边填充

    rpad('字符',长度(加上字符一共多少长度),'要加上的字符')在字符后面拼接)

    --rpad()从右边填充
    select rpad('word',10,'*') from dual

    trim():清除两边空格

    1.

    SELECT TRIM(' asc a asd ') FROM dual;

    2.清除两边的字符

    SELECT TRIM('a' FROM 'asada') FROM dual;

    --ltrim()去除指定字符的左边空格
    select ltrim(' aaa ') from dual
    --rtrim()去除指定字符的右边空格
    select rtrim(' aaa ') from dual

     数学函数

    Round():四舍五入

    select round(12.45,1) from dual

    结果:12.5

    trunc():截断(不会四舍五入)

    select trunc(12.45,1) from dual

     nvl和nvl2 滤空函数

    nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with)

    功能:如果string1 位null,那么nvl()函数返回replace_with的值,否则返回sting1的值。

    注意:sting1和replace_with必须是同一数据类型,除非显示的适用to_char函数。

    select sal*12工资,comm 奖金,sal*12+nvl(comm,0) from emp;

    nvl()的扩展-nvl2()

       Oracle在nvl()函数的功能上扩展,提供了nvl2()函数。

       nvl2()(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。

    select sal*12工资,comm 奖金,sal*12+nvl2(comm,comm,0) from emp;

    日期函数

    to_char()对日期的转换

    SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')FROM dual;

    to_char()对数字的转换

     

     decode()函数

    DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

    含义为
    IF 条件=值1 THEN
        RETURN(value 1)

    ELSIF 条件=值2 THEN
        RETURN(value 2)
        ......

    ELSIF 条件=值n THEN
        RETURN(value 3)
    ELSE
        RETURN(default)
    END IF

    SELECT ename,DECODE(job,'CLERK','职员','MANAGER','经理','SALESMAN','销售') FROM emp

    利用decode实现表或者试图的行列转换

     

     

    通过使用DECODE实现行列转换,查询出每个学生选的课程和相应的成绩。

    SELECT name,
        DECODE(course, 'java', gread) AS java,
        DECODE(course, 'c#', gread) AS c#,
        DECODE(course, 'c', gread) AS c,
        DECODE(course, 'sql', gread) AS sql
    FROM t;

    通过使用聚合函数sum()来实现化散为整

    SELECT name,
            sum(DECODE(course, 'java', gread)) AS java,
            sum(DECODE(course, 'c#', gread)) AS c#,
            sum(DECODE(course, 'c', gread)) AS c,
            sum(DECODE(course, 'sql', gread)) AS sql
    FROM t
    GROUP BY name;

     

    这里分组函数就是聚合函数

     使用sqlplus

    打开cmd,输入“sqlplus”,输入用户名和密码,注意输入密码的不会显示(安全)

    连接成功后

    查询当前用户(windows下不区分大小写)

    SHOW USER;

    查看数据表

    SELECT * from tab;

     

    当你删除数据库中的一张表(这里的删除不是真正的删除,而是在回收站中)

    查看所有数据表是,所删除的表name就会是一串字符

    怎么查看这串字符是什么内容呢??

    查看回收站中的表

    SHOW recyclebin;

    删除回收站中的表

    oracle10以后:被删除的表放入回收站 
    闪回删除:flashback drop,可以恢复删除的表 
    purge:删除的表不放入回收站 

    闪回删除 
    语法 
    flashback table 表名 to before drop;

    删除后不放回回收站 

    清空回收站 

    purge recyclebin:清空回收站,清空后表无法恢复

  • 相关阅读:
    NOIP2016——组合数问题
    BZOJ3450——Tyvj1952(OSU?)
    洛谷4316——绿豆蛙的归宿(期望)
    BZOJ1997——次小生成树(严格次小生成树)
    USACO2002-OPEN-GREEN(GREEN秘密的牛奶管道SECRET)
    Linux系统应急响应
    Linux系统登录相关
    (翻译)Attacking Interoperability(攻击互操作性)in Black Hat 2009 研究报告
    HTTP参数污染(HPP)漏洞
    逻辑漏洞之越权访问漏洞
  • 原文地址:https://www.cnblogs.com/luoxionghenku/p/9929342.html
Copyright © 2020-2023  润新知