(一):序列【Sequence】
a. 创建序列: create sequence 序列名 [参数列表]
b. 查询序列:
1).查询当前用户拥有的序列 : select * from user_sequences
2).查询序列当前值、下一个值 : nextval【主要用于id新增自增长】 和currval
select user_seq.nextval from dual 每次使用,序列的值,都会根据序列规则进行增加
select user_seq.currval from dual 使用序列后的当前值
c. 修改序列: alter sequence 序列名 [参数列表] 起始值无法修改.
d. 删除序列: drop sequence 序列名
(二):索引【Index】
a. 创建索引: create index 索引名 on 表名 (列名....)
查询当前用户拥有的索引,通过数据字典查询(user_indexes) : select * from user_indexes
b. 删除索引: drop index 索引名
c. 造成索引失效的情况
通配符检索【%value%】 --> value%
使用 not 或 <> 检索 --> line > a or line <b
使用 is null / is not null 检索
(三):同义词【Synonym】
可替换表名、视图名、序列名和存储过程名或其它对象名
a. 创建同义词: create synonym 同义词名 for 数据对象(表/视图.....)
b. 删除同义词: drop synonym 同义词名
(四):视图【View】
a. 创建视图:create or replace view 视图名称 as 子查询
create or replace view user_zhang as select * from ts_user t where t.um like '张%';
b. 限定视图只读:create or replace view 视图名称 as 子查询 with read only
注:未设定只读,视图可进行 增删改查 操作 (与操作数据库表一样)
c. 删除视图 : drop view 视图名
(五):存储过程【Procedure】
a. 简单版存储过程:
注:调用存储过程 : call 存储过程名称()
b. 存储过程变量与语法
存储过程的变量:
1: 定义变量 :变量名 变量类型(长度);
要求: (1)、在begin程序体前声明变量,变量必须先声明后使用;
(2)、变量具有数据类型和长度,与ORACLE的数据类型保持一致
(3)、变量可以通过select into的方式赋值,也可以通过:=赋值
2: 变量l类型 : 普通数据类型(char,varchar2,date,number,boolean,long)
特殊变量类型(引用型变量,记录型变量)
引用变量 : 变量名 表名.列名%TYPE记录型变量:变量名称 表名%ROWTYPR
存储过程的语法:
c. 游标
用于临时存储一个查询返回的多行数据,通过遍历游标,可以逐行访问处理该结果集的数据
游标的使用方式:声明——>打开——>读取——>关闭
游标实现方式:
(1): 显式游标实现方式(可多值)
(2): 隐式游标(可以实现查询多值)
(3):带有参数的游标(可实现查询多值)
(六):常用函数
a. 常用的统计函数:
b. 日期函数:
计算两个日期相差天数: ROUND(TO_NUMBER(END_DATE - START_DATE))
指定日期,添加 n 月: ADD_MONTHS(d,n) d 表示日期,n 表示要加的月数
当月的最后一天: LAST_DAY(d)
提取日期中的特定部分 : EXTRACT(fmt FROM d) fmt :YEAR /MONTH/DAY/HOUR
c. 字符操作函数:
连接字符串X和Y : CONCAT(X,Y)
X转换成小写/大写 : LOWER(X) 、 UPPER(X)
缺省截去空格: TRIM([TRIM_STR FROM]X)
替换字符: REPLACE(X,old,new)
截取字符: SUBSTR(X,start[,length])
d. 转换函数
转换为字符串: TO_CHAR(d|n[,fmt])
SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;
SELECT TO_CHAR(-123123.45,'9.9')"date" FROM dual;
字符串转日期 : TO_DATE(X,[,fmt])
字符串转数字 : TO_NUMBER(X,[,fmt])
e. 转换函数
绝对值 : abs(value)
截断: trunc(value,n) n>0,留n位小数;n<0,则留-n位整数位;n=0,则去掉小数
四舍五入: round(value,n)
(七):异常处理
(八):案例