例如:
SELECT SUBSTR('abcdef', 1, 3) FROM dual;--输出abc
例如:
SELECT INSTR('abcdef','cd',1) FROM dual;--输出3
SELECT INSTR('abcdefcd','cd',1,2) FROM dual;--从1开始找第2次出现的位置 输出7
例如:
SELECT LTRIM(' abc') FROM dual;--输出abc
SELECT RTRIM('abc ') FROM dual;--输出abc
SELECT TRIM(' abc ') FROM dual;--输出abc
例如:
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') FROM dual;--输出2019-04-28
例如:
SELECT LPAD('123', 5, 0) FROM dual;--输出00123
SELECT RPAD('123', 5, 0) FROM dual;--输出12300
例如:
SELECT LOWER('ABCdefGHIjkl') FROM dual;--输出abcdefghijkl
SELECT UPPER('ABCdefGHIjkl') FROM dual;--输出ABCDEFGHIJKL
例如:
SELECT LENGTH('abcdef') FROM dual;--输出6
例如:
SELECT REPLACE('abcdef', 'def', 'xyz') FROM dual;--输出abcxyz
例如:
SELECT CONCAT('abc','def') FROM dual;--输出abcdef
--也可以使用||符号进行连接
SELECT 'abc' || 'def' FROM dual;--输出abcdef
SELECT ABS(-10) FROM dual;--输出10
SELECT ROUND(56.789) FROM dual;--输出57
SELECT ROUND(56.789, 2) FROM dual;--输出56.79
SELECT ROUND(-56.789) FROM dual;--输出-57
SELECT ROUND(-56.789, 2) FROM dual;--输出-56.79
SELECT CEIL(56.789) FROM dual;--输出57
SELECT CEIL(56) FROM dual;--输出56
SELECT CEIL(-56.789) FROM dual;--输出-56
SELECT FLOOR(56.789) FROM dual;--输出56
SELECT FLOOR(56) FROM dual;--输出56
SELECT FLOOR(-56.789) FROM dual;--输出-57
SELECT SQRT(2) FROM dual;--输出1.41421356237309504880168872420969807857
SELECT POWER(2, 10) FROM dual;--输出1024
SELECT TRUNC(56.789, 1) FROM dual;--输出56.7
SELECT TO_NUMBER('56789') FROM dual;--输出56789
SELECT TO_NUMBER('-56789') FROM dual;--输出-56789
SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual;--2019
SELECT EXTRACT(MONTH FROM SYSDATE) FROM dual;--4
SELECT EXTRACT(DAY FROM SYSDATE) FROM dual;--28
SELECT CURRENT_DATE FROM dual;--2019-04-28 15:55:10
SELECT SYSDATE FROM dual;--2019-04-28 15:55:10
SELECT CURRENT_TIMESTAMP FROM dual;--2019-04-28 15:55:10.913000 +08:00
SELECT SYSTIMESTAMP FROM dual;--2019-04-28 15:55:10.914000 +08:00
SELECT TO_DATE('2019-04-28', 'yyyy-mm-dd') FROM dual;
SELECT TO_TIMESTAMP('2019-04-28', 'yyyy-mm-dd') FROM dual;
SELECT ADD_MONTHS(SYSDATE, 10) FROM dual;--10个月后是2020-02-28 15:58:43
SELECT LAST_DAY(SYSDATE) FROM dual;--2019-04-30 16:00:23
SELECT COUNT(*) FROM sales;
SELECT MAX(PRICE) FROM sales;
SELECT MIN(PRICE) FROM sales;
SELECT SUM(PRICE) FROM sales;
SELECT AVG(PRICE) FROM sales;
在ORACLE数据库中视图是数据库中特有的对象。视图主要用于数据查询,它不会存储数据。视图的数据来源于一个或者多个表中,通常情况下视图主要用于查询,不提倡通过视图修改表中的数据,因为视图中的数据只是一个或者多个表中的局部数据。
CREATE OR REPLACE VIEW 视图名称 AS
SELECT 表或者其他视图;
例如:
CREATE OR REPLACE VIEW view_emp_dept AS
SELECT D.ID 部门编号,D.NAME 部门名称,E.ID 员工编号,E.NAME 员工姓名 FROM DEPT D,EMP E WHERE E.DEPID = D.ID;
CREATE OR REPLACE VIEW 视图名称 AS
SELECT 表或者其他视图;
WITH READ ONLY;
PL/SQL是过程化SQL语言是对SQL语句的扩展,增加了编程语言的特点。
DECLARE
变量1 类型;
变量2 类型;
BEGIN
数据处理语句;
EXCEPTION
异常处理语句;
END;
使用关键字DECLARE
声明变量,使用:=
符号来给变量赋值,声明部分必须写在其他语句的前面。
通常变量名称可以包括字母、下划线、数字、#、$
变量名称不能超过30个字符
第一个字符必须是字母
不区分大小写
不能使用任何关键字
IF 布尔表达式 THEN
执行的语句;
ELSE
执行的语句;
END IF;
IF 布尔表达式1 THEN
执行的语句;
ELSIF 布尔表达式2 THEN
执行的语句;
ELSIF 布尔表达式3 THEN
执行的语句;
ELSIF 布尔表达式4 THEN
执行的语句;
ELSE
执行的语句;
END IF;
CASE
WHEN 布尔表达式1 THEN
执行的语句;
WHEN 布尔表达式2 THEN
执行的语句;
WHEN 布尔表达式3 THEN
执行的语句;
WHEN 布尔表达式4 THEN
执行的语句;
ELSE
执行的语句;
END CASE;
LOOP
循环体;
EXIT;--可用exit退出循环
END LOOP;
WHILE 循环条件控制语句 LOOP
循环体
END LOOP;
FOR 循环变量 IN 循环变量开始值..循环变量结束值 LOOP
循环体
END LOOP;
end