OCP认证之Oracle的SQL语言基础(一)

来源:互联网 发布:淘宝网第三方支付平台 编辑:程序博客网 时间:2024/05/01 08:29

一、Oracle命令类别

  1. 数据操纵语言(DML):select;insert;delete;update;merge
  2. 数据定义语言(DDL):create;alter;drop;truncate
  3. 事物控制语言(TCL):commit;rollback;savepoint;
  4. 数据控制语言(DCL):grant;revoke

二、SQL的基本函数

2.1 单行函数与多行函数的区别:

  • 单行函数指一行数据输入,返回一个值的函数。在查询一个表时,对选择的每一行数据都返回一个结果。

    SQL>select empno,lower(ename) from emp;

  • 多行函数指多行数据输入,返回一个值的函数。对表的群组进行操作,每组返回一个结果。

    SQL>select sum(sal) from emp;

2.2 单行函数的几种类型

2.2.1 字符函数
  • lower(‘SQL Course’)—->sql course 返回小写

    SQL>select lower(‘SQL Course’) from dual;

    LOWER('SQL    ----------    sql course  
  • upper(‘sql course’)—->SQL COURSE 返回大写

    SQL>select upper(‘sql course’) from dual;

        UPPER('SQL    ----------    SQL COURSE  
  • initcap(‘SQL course’)—->Sql Course 返回首字母大写

    SQL>select initcap(‘SQL course’) from dual;

     INITCAP('S ---------- Sql Course
  • concat(‘good’,’string’)—-> good string 拼接字符串(只能拼接两个字符串)

    SQL>select concat(‘good’,’string’) from dual;

        CONCAT('GO    ----------    goodstring
  • substr(‘String’,1,3)—->截取字符串,从第1位开始截取3位

    SQL>select substr(‘String’,1,3) from dual;

        SUB    ---    Str
  • instr(‘t#i#m#r#a#n#’,’#’,3)—->从第3位起始找#字符在哪个绝对位置

    SQL>select instr(‘t#i#m#r#a#n#’,’#’,3) from dual;

        INSTR('T#I#M#R#A#N#','#',3)    --------------------------                          4
  • length(‘String’)—->显示某一字符串的长度

    SQL>select length(‘String’) from dual;

        LENGTH('STRING')    ---------------               6
  • lpad(‘first’,10,’$’)—->左填充/整个字符串是十位长度,不足用$first左边补/

    SQL>select lpad(‘first’,10,’$’) from dual;

        LPAD('FIRS    ----------    $$$$$first
  • rpad(‘first’,10,’$’)—->右填充,跟上面相反

    SQL>select rpad(‘first’,10,’$’) from dual;

        RPAD('FIRS    ----------    first$$$$$
  • replace(‘JACK and JUE’,’J’,’BL’)—->把字符串中的JBL替换掉

    SQL>select replace(‘JACK and JUE’,’J’,’BL’) from dual;

        REPLACE('JACKA    --------------    BLACK and BLUE
  • trim(‘m’ from ‘mmtrimranm’)—->去除两边的m字符

    SQL>select trim(‘m’ from ‘mmtrimranm’) from dual;

        TRIM('M    -------    trimran
2.2.2 数值函数
  • round 对指定的值做四舍五入,round(p,s),小数点处s为0,s为正数表示小数点后要保留的位数,s为负数表示小数点前要保留的位数,但意义不大。

    • round 按指定精度对十进制数四舍五入,

SQL>select round(45.923,1) from dual;

ROUND(45.923,1)---------------           45.9

SQL>select round(45.923,0) from dual;

ROUND(45.923,0)---------------             46

SQL>select round(45.923,-1) from dual;

ROUND(45.923,-1)----------------              50
  • trunc 对指定的值进行取整(截取)trunc(p,s) 小数点处s为0,s为正数表示小数点后要截取的位数,s为负数表示小数点前要截取的位数
    • trunc 按指定精度截断十进制数

SQL>select trunc(45.923,1) from dual;

TRUNC(45.923,1)---------------            45.9

SQL>select trunc(45.923,0) from dual;

TRUNC(45.923,0)---------------             45

SQL>select trunc(45.923,-1) from dual;

TRUNC(45.923,-1)----------------              40
  • mod 返回除法后的余数

SQL>select mod(100,12) from dual;

MOD(100,12)-----------          4
0 0