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

时间:2021-08-01 17:38:16

一、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