常用系统表和视图
具体的字段信息到Oracle官网去查看,上面的内容非常的详细:
NAME |
TYPE |
OWNER |
Description |
DBA_OBJECTS |
VIEW |
SYS |
当前数据库里的所有对象 |
USER_OBJECTS |
VIEW |
SYS |
当前用户拥有的所有对象(不显示OWNER字段) |
ALL_OBJECTS |
VIEW |
SYS |
当前用户能够访问的所有对象,注意object_type 和 owner字段 |
DBA_TABLES |
VIEW |
SYS |
当前数据库里所有的关系表 |
ALL_TABLES |
VIEW |
SYS |
当前用户可访问的关系表 |
USER_TABLES |
VIEW |
SYS |
当前用户拥有的关系表 |
ALL_TAB_COLUMNS |
VIEW |
SYS |
系统视图,存放表信息(数据库名 表名,表字段名,字段类型,字段长度,默认值等) |
DBA_TABLESPACES |
VIEW |
SYS |
数据库中的所有表空间 |
USER_TABLESPACES |
VIEW |
SYS |
当前用户可访问的表空间 |
DBA_INDEXES |
VIEW |
SYS |
当前数据库里所有的索引 |
ALL_INDEXES |
VIEW |
SYS |
当前用户可访问的索引 |
USER_INDEXES |
VIEW |
SYS |
当前用户拥有的索引,不显示OWNER字段 |
ALL_SOURCE |
VIEW |
SYS |
记录了该用户可访问的所有数据库对象的脚本信息(DDL) |
常用来查数据库问题的表:
NAME |
Description |
Use |
V$SQLAREA |
列出了共享SQL区域的统计信息,同时为每个SQL字符串保存一条记录。它提供关于内存中、已解析并准备执行的SQL语句的统计信息 |
|
V$SQL |
列出了没有group by操作的共享SQL区域的统计信息,同时为原始的SQL保存所有的child信息,正常情况下,当query执行完成,显示在V$SQL中的统计信息会被更新。但是,如果是一个运行长时间的查询,每5秒钟会更新一次。因此,通过这些信息可以很容易的发现那些正在长时间运行的SQL语句所造成的影响。 |
可以使用V$SQLAREA中的SQL_ID字段来查询执行的sql信息 |
重要字段说明
名字 |
字段 |
说明 |
ALL_INDEXES |
STATUS |
表示当前index的状态,VALID 或者 UNUSABLE |
ALL_SOURCE |
TYPE |
对象类型,如FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY等 |
常用函数
注意,下面例子中的英文单引号显示成了中文单引号,需要修改。这个是csdn显示的问题。
数值型函数
函数名 |
描述 |
例子 |
结果 |
ABS(n) |
返回绝对值 |
select ABS(-100), ABS(‘100’) from dual; |
100 100 |
MOD(n2,n1) |
返回n2除以n1的余数 |
select MOD(5,2) from dual; |
1 |
ROUND(n,integer) |
它将参数n四舍五入成第二个参数指定的形式的十进制数。参数integer要求是整数,如果不是整数,那么它就会被自动截取为整数部分 |
|
|
TRUNC |
数值n根据integer的值进行截取,和integer的正负有关;integer要求是整数,如果不是整数,那么它就会被自动截取为整数部分;当integer为正整数,表示n将截取到integer位小数,如果integer为负数,则截取到小数点左第integer位,被截取部分用0代替 |
|
|
字符函数
函数名 |
描述 |
例子 |
结果 |
|| |
并置运算符 |
select ‘abc’||‘def’ from dual; |
abcdef |
lower |
将字符串全转为小写 |
select lower(‘ABc’) from dual; |
abc |
upper |
将字符串全转为大写 |
select upper(‘ABc’) from dual; |
ABC |
initcap |
将字符串的首字母全转为大写 |
select upper(‘how are you’) from dual; |
How Are You |
concat |
连接两个参数并返回 |
select concat(‘How ‘, ‘are you’) from dual; |
How are you |
substr |
对字符串进行截取,语法:substr(char, position, [substring_length]) 其中position为要截取字符串的开始位置,初始为1,如果该值为负,则表示从char的右边算起 |
|
|
length |
求字符串的长度 |
select length(‘ABc’) from dual; |
3 |
instr |
在字符串中搜索另一个字符串 |
select instr(‘ABc’, ‘B’) from dual; |
2 |
rpad |
结构rpad(expr1, n[, expr2]),在字符串expr1的右边用字符串expr2填充,直到整个字符串的长度为n为止 |
|
|
lpad |
结构lpad(expr1, n[, expr2]),在字符串expr1的左边用字符串expr2填充,直到整个字符串的长度为n为止 |
|
|
trim |
LTRIM(X[,Y]), 去掉字符串X左边的Y字符串,Y不填时,默认的是字符串X左边去空格 |
|
|
replace |
结构REPLACE(X,old,new),查找字符串X中old字符,并利用new字符替换 |
|
|
日期型函数
函数名 |
描述 |
例子 |
结果 |
sysdate |
系统日期和时间 |
select sysdate from dual; |
|
systimestamp |
该函数没有参数,可以得到系统的当前时间,该时间包含时区信息,精确到微秒 |
select systimestamp from dual; |
|
dbtimezone |
返回数据库时区 |
select dbtimezone from dual; |
|
last_day |
返回参数指定日期对应月份的最后一天 |
select last_day(sysdate) from dual; |
|
next_day |
返回参数指定日期的下一天 |
select next_day(sysdate) from dual; |
|
round |
ROUND(r[,f])函数:将日期r按f的格式进行四舍五入。如果f不填,则四舍五入到最近的一天 |
|
|
trunc |
TRUNC(r[,f])函数:将日期r按f的格式进行截取。如果f不填,则截取到当前的日期 |
|
|
控值处理函数
函数名 |
描述 |
例子 |
结果 |
NVL(expr1, expr2) |
如果expr1的值为空值,则返回expr2的值,否则返回expr1的值(expr1和expr2的数据类型必须相同) |
|
|
NVL2(expr1, expr2, expr2) |
上面的增强版;如果expr1的值为空值,则返回expr3的值,否则返回expr2的值(expr1为任何数据类型;而表达式expr2和expr3为除LONG数据类型外的任何数据类型) |
|
|
NULLIF(expr1, expr2) |
比较两个表达式,如果二者相等,则返回NULL,否则返回第一个表达式的值。要求第一个表达式的值不能为NULL |
|
|
特殊格式日期函数
函数名 |
描述 |
例子 |
结果 |
Y或YY或YYY |
年的最后一位,两位,三位 |
select to_char(sysdate,‘YYY’) from dual; |
如果是2019年,则输出 019 |
DDD |
当年第几天 |
select to_char(sysdate, ‘DDD’) from dual; |
|
DD |
当月第几天 |
select to_char(sysdate, ‘DD’) from dual; |
|
D |
当周第几天 |
select to_char(sysdate, ‘D’) from dual; |
|
转换函数
函数名 |
描述 |
例子 |
结果 |
to_char |
将数字型或者日期型转为字符型 |
select to_char(sysdate, ‘YYYYMMDD’) from dual; |
|
to_date |
将字符型数据转化为日期型数据 |
select to_date(‘20180101’, ‘YYYYMMDD’) from dual; |
|
to_number |
to_number(x[,f]) 可以把字符串x按照格式f进行格式化转换为数值类型结果 |
select to_number(‘123.74’,‘999.99’) from dual |
|
注意:其中数值的格式f可以参考下表
参数 |
示例 |
说明 |
9 |
999 |
指定位置返回数字 |
. |
99.9 |
指定小数点的位置 |
, |
99,9 |
指定位置返回一个逗号 |
$ |
$99.9 |
指定开头返回一个美元符号 |
EEEE |
9.99EEEE |
指定科学计数法 |
逻辑判断函数
函数名 |
描述 |
例子 |
结果 |
CASE |
|
|
|
DECODE |
格式: DECODE(col|expression, search1,result1 [search2, result2, …,] [, default]) 与CASE有相同的功能,先判断search1的值是否和col或expression的值相等,如果相等,返回result1的值,否则判断search2,依次类推,如果都不相等,返回默认值default |
|
|