说明
本文介绍系统表的相关slq常用语句,方便日常工作和学习
假定用户为TWOAPES
常用数据库语句(一)
统计分析:analyze table table_name compute statistics;
ORACLE查询当前数据库的默认日期格式:SELECT SYSDATE FROM dual;
ORACLE修改当前数据库的默认日期格式(使用dba权限的用户):
ALTER SYSTEM SET nls_date_format='YYYY-MM-DD hh24:mi:ss' scope=spfile;
SHUTDOWN IMMEDIATE;
startup;
SELECT SYSDATE FROM dual;
SHOW PARAMETERS NLS;
查询表空间文件位置:select * from dba_data_files;
查询当前用户下,有哪些表:SELECT * FROM user_tables;
查询当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的]:SELECT * FROM all_tables;
查询当前数据库所有的表, 需要你有 DBA 的权限:SELECT * FROM dba_tables;
查询当前用户下的所有对象:SELECT * FROM tab;
创建用户和密码:CREATE USER TWOAPES IDENTIFIED BY pass_word;
授予连接,资源和dba权限:GRANT CONNECT,RESOURCE,DBA TO TWOAPES;
用户需要查询数据库中所有数据:GRANT SELECT ANY TABLE TO TWOAPES;
该用户需要读取数据字典、使用OEM工具等:GRANT SELECT ANY DICTIONARY TO TWOAPES;
给表或存储过程赋权限:(with grant option权限会被回收,with admin option会永久保留)
GRANT CREATE TABLESPACE TO TWOAPES;
GRANT SELECT ON tabelname TO TWOAPES;
GRANT UPDATE ON tablename TO TWOAPES;
GRANT EXECUTE ON procedurename TO TWOAPES;
授权存储过程:grant update on tablename to TWOAPES with grant option;
给所有用户向表 tablename 插入记录的权限:GRANT ALL ON TWOAPES TO PUBLIC;
赋予权限SQL语句(给普通用户user赋所有权限):GRANT ALL TO TWOAPES;
如果只要赋予部分权限,则:GRANT CREATE SESSION, SELECT ANY TABLE, DBA TO TWOAPES;
清空数据:TRUNCATE TABLE table_name;
查看表:select * from user_tables;
查看视图:SELECT view_name FROM user_views;
查询包体:
SELECT s.name, s.text,s.line
FROM all_source s
WHERE TYPE = 'PACKAGE BODY'
AND owner = 'TWOAPES'
GROUP BY s.name, s.text,s.line;
删除用户:DROP USER TWOAPES CASCADE;
创建用户表空间:
create tablespace ods datafile'D:\app\Administrator\oradata\user_name\ods.dbf' size 100m autoextend on next 100m maxsize 1024m extent
management local autoallocate;
无需用户修改sys密码:
sqlplus/nolog;
CONNECT SYS AS SYSDBA ALTER USER SYS IDENTIFIED BY password;
查询某字段是否有重复的数据:
SELECT s.comment, COUNT(*)
FROM table_name s
GROUP BY s.comment
HAVING COUNT(*) > 1;
查询指定数据库的表创建语句(但是不能超过100条, rownum <= 100条件不能去除):
SELECT dbms_metadata.get_ddl('TABLE', table_name, USER)
FROM user_tables s
WHERE s.tablespace_name = 'tablespace_name'
AND rownum <= 100
最高效率分页查询:
SELECT * FROM
( SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= end )
WHERE RN >= star
查看密码到期时间:SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'
去除密码到期:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED
获得当年实际天数:SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12) - TRUNC(SYSDATE, 'YYYY') days FROM DUAL
创建新用户需要的语句:
CREATE TABLESPACE TWOAPES DATAFILE 'D:\app\Administrator\oradata\TWOAPES\TWOAPESO01.dbf' SIZE 1024M
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER TABLESPACE TWOAPES ADD DATAFILE 'D:\app\Administrator\oradata\TWOAPES\TWOAPESO02.dbf' SIZE 1024M;
ALTER DATABASE DATAFILE 'D:\app\Administrator\oradata\TWOAPES\TWOAPESO02.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE unlimited;
CREATE USER TWOAPES IDENTIFIED BY 1 DEFAULT TABLESPACE TWOAPES;
GRANT CONNECT TO TWOAPES;
GRANT RESOURCE TO TWOAPES;
GRANT DBA TO TWOAPES;
GRANT UNLIMITED TABLESPACE TO TWOAPES;
GRANT create any table TO TWOAPES;
--1、查看表空间的名称及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
--2、查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
--3、查看回滚段名称及大小
SELECT segment_name,
tablespace_name,
r.status,
(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,
max_extents,
v.curext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
--4、查看控制文件
SELECT NAME FROM v$controlfile;
--5、查看日志文件
SELECT MEMBER FROM v$logfile;
--6、查看表空间的使用情况
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;
--7、查看数据库库对象
SELECT owner, object_type, status, COUNT(*) count#
FROM all_objects
GROUP BY owner, object_type, status;
--8、查看数据库的版本
SELECT version
FROM product_component_version
WHERE substr(product, 1, 6) = 'Oracle';
--9、查看数据库的创建日期和归档方式
SELECT created, log_mode, log_mode FROM v$database;
SQL2:
代码如下:
--1G=1024MB
--1M=1024KB
--1K=1024Bytes
--1M=11048576Bytes
--1G=1024*11048576Bytes=11313741824Bytes
SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表空间使用大小",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
--查看主键外键,索引等
SELECT t.table_name AS 表名,
t.column_name AS 表字段,
co.comments AS 表备注,
t.data_type AS 字段类型,
t.data_length AS 字段长度,
c.comments AS 字段备注
FROM user_tab_columns t
JOIN user_col_comments c
ON t.table_name = c.table_name
JOIN user_tab_comments co
ON co.table_name = t.table_name;
SELECT au.table_name AS 表名,
cu.column_name AS 字段名,
au.owner AS 用户,
cu.constraint_name AS 约束名称,
decode(au.constraint_type,
'C',
'普通字段',
'P',
'主键',
'U',
'唯一约束',
'R',
'外键') AS 约束类型
FROM user_constraints au
JOIN user_cons_columns cu
ON au.table_name = cu.table_name;
--综合查询
SELECT 用户,
索引名称,
字段名称,
字段类型,
字段长度,
字段备注,
约束名称,
约束对应的字段名,
约束类型,
表名,
表备注,
所属表空间
FROM (
--所有非约束表
SELECT NULL AS 用户,
NULL AS 索引名称,
t.column_name AS 字段名称,
t.data_type AS 字段类型,
t.data_length AS 字段长度,
c.comments AS 字段备注,
NULL AS 约束名称,
NULL AS 约束对应的字段名,
NULL AS 约束类型,
t.table_name AS 表名,
co.comments AS 表备注,
ut.tablespace_name AS 所属表空间
FROM user_tab_columns t
JOIN user_col_comments c
ON t.table_name = c.table_name
AND t.column_name = c.column_name
JOIN user_tab_comments co
ON co.table_name = t.table_name
JOIN user_tables ut
ON ut.table_name = t.table_name
UNION
--所有约束表
SELECT au.owner AS 用户,
au.index_name AS 索引名称,
t.column_name AS 字段名称,
t.data_type AS 字段类型,
t.data_length AS 字段长度,
c.comments AS 字段备注,
au.constraint_name AS 约束名称,
cu.column_name AS 约束对应的字段名,
decode(au.constraint_type,
'C',
'普通字段',
'P',
'主键',
'U',
'唯一约束',
'R',
'外键') AS 约束类型,
t.table_name AS 表名,
co.comments AS 表备注,
ut.tablespace_name AS 所属表空间
FROM user_tab_columns t
JOIN user_col_comments c
ON t.table_name = c.table_name
AND t.column_name = c.column_name
JOIN user_tab_comments co
ON co.table_name = t.table_name
JOIN user_constraints au
ON au.table_name = t.table_name
JOIN user_cons_columns cu
ON cu.constraint_name = au.constraint_name
JOIN user_tables ut
ON ut.table_name = t.table_name) k;
创建序列:
CREATE SEQUENCE seq_SEQUENCE
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE
常用数据库语句(二)
--查询当前用户下所有的可用索引属性
SELECT s.index_name AS 索引名称,
s.index_type AS 索引类型,
s.table_name AS 表名,
s.table_type AS 表类型,
s.uniqueness AS 唯一性标志,
s.tablespace_name AS 表空间名称,
s.num_rows AS 当前行数
FROM user_indexes s;
--查询所有用户下所有的可用索引属性
SELECT s.owner AS 用户名称,
s.index_name AS 索引名称,
s.index_type AS 索引类型,
s.table_name AS 表名,
s.table_type AS 表类型,
s.uniqueness AS 唯一性标志,
s.tablespace_name AS 表空间名称,
s.num_rows AS 当前行数
FROM dba_indexes s;
--查询当前用户下所有的可用表空间属性
SELECT s.tablespace_name AS 表空间名称, s.max_size AS 最大值
FROM user_tablespaces s;
--查询所有用户下所有的可用表空间属性
SELECT s.tablespace_name AS 表空间名称, s.max_size AS 最大值
FROM dba_tablespaces s;
--查询当前用户下所有的表属性
SELECT s.table_name AS 表名,
s.num_rows AS 表中的行数,
s.tablespace_name AS 所在的表空间
FROM user_tables s;
--查询所有用户下所有的表属性
SELECT s.owner AS 用户名称,
s.table_name AS 表名,
s.num_rows AS 表中的行数,
s.tablespace_name AS 所在的表空间
FROM dba_tables s;
--查询当前用户下所有非对象视图属性
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM user_views;
--查询所有用户下所有非对象视图属性
SELECT s.owner AS 用户名称,
s.view_name AS 视图名称,
s.text_length AS 视图文本的长度,
s.text AS 查看文本,
s.superview_name AS 子视图名称,
s.editioning_view AS "同一个版本视图(Y-是,N-否)",
s.read_only AS "只读(Y-是,N-否)"
FROM dba_views s
WHERE s.owner = 'ORACLE账户的用户名';
--当前用户的表及视图中字段名称及字段注释
SELECT s.table_name AS 对象名称,
s.column_name AS 字段名称,
s.comments AS 注释
FROM user_col_comments s;
--所有用户的表及视图中字段名称及字段注释
SELECT s.owner AS 用户名称,
s.table_name AS 对象名称,
s.column_name AS 字段名称,
s.comments AS 注释
FROM all_col_comments s
WHERE s.owner = 'ORACLE账户的用户名';
--查看所有用户下的非图像格式字段的表及视图结构
SELECT s.owner AS 用户,
s.table_name AS "表,视图,群集名称",
s.column_name AS 字段名称,
s.data_type AS 字段类型,
s.data_length AS "字段(字符串)的长度(字节)",
s.data_precision AS "长度(二进制或十进制数字)",
s.data_scale AS 小数点右边的数字的刻度,
s.nullable AS "是否允许为空(Y-是,N-否)",
s.column_id AS 创建字段的序字段号,
s.default_length AS 默认长度,
s.data_default AS 默认值,
s.num_distinct AS 字段的不同值数目,
s.low_value AS 字段中的最低的值,
s.high_value AS 字段中的最高的值,
s.density AS 柱的密度,
s.num_nulls AS 空值的数量,
s.num_buckets AS 字段的柱状图中的桶数,
s.last_analyzed "最近一次分析时间(统计分析)",
s.character_set_name AS 字符集名称,
s.char_col_decl_length AS 声明类型时的长度,
s.avg_col_len AS 字段的平均长度,
s.char_length AS 字符字段最大长度,
s.char_used AS "最大长度单位(C-字符,B-字节)",
s.hidden_column AS "YES-隐藏列,NO-非隐藏列",
s.virtual_column AS "YES-虚拟列,NO-非虚拟列",
s.segment_column_id AS 段中的序列号,
s.internal_column_id AS 列中的序列号,
s.qualified_col_name AS 合格的列名称
FROM all_tab_cols s
WHERE s.owner = 'ORACLE账户的用户名';
SELECT s.owner AS 用户,
s.table_name AS "表,视图,群集名称",
s.column_name AS 字段名称,
s.data_type AS 字段类型,
s.data_length AS "字段(字符串)的长度(字节)",
s.data_precision AS "长度(二进制或十进制数字)",
s.data_scale AS 小数点右边的数字的刻度,
s.nullable AS "是否允许为空(Y-是,N-否)",
s.column_id AS 创建字段的序字段号,
s.default_length AS 默认长度,
s.data_default AS 默认值,
s.num_distinct AS 字段的不同值数目,
s.low_value AS 字段中的最低的值,
s.high_value AS 字段中的最高的值,
s.density AS 柱的密度,
s.num_nulls AS 空值的数量,
s.num_buckets AS 字段的柱状图中的桶数,
s.last_analyzed "最近一次分析时间(统计分析)",
s.character_set_name AS 字符集名称,
s.char_col_decl_length AS 声明类型时的长度,
s.avg_col_len AS 字段的平均长度,
s.char_length AS 字符字段最大长度,
s.char_used AS "最大长度单位(C-字符,B-字节)"
FROM all_tab_columns s
WHERE s.owner = 'ORACLE账户的用户名';
-- 查看当前用户下非图像格式字段的表及视图结构
SELECT s.table_name AS "表,视图,群集名称",
s.column_name AS 字段名称,
s.data_type AS 字段类型,
s.data_length AS "字段(字符串)的长度(字节)",
s.data_precision AS "长度(二进制或十进制数字)",
s.data_scale AS 小数点右边的数字的刻度,
s.nullable AS "是否允许为空(Y-是,N-否)",
s.column_id AS 创建字段的序字段号,
s.default_length AS 默认长度,
s.data_default AS 默认值,
s.num_distinct AS 字段的不同值数目,
s.low_value AS 字段中的最低的值,
s.high_value AS 字段中的最高的值,
s.density AS 柱的密度,
s.num_nulls AS 空值的数量,
s.num_buckets AS 字段的柱状图中的桶数,
s.last_analyzed "最近一次分析时间(统计分析)",
s.character_set_name AS 字符集名称,
s.char_col_decl_length AS 声明类型时的长度,
s.avg_col_len AS 字段的平均长度,
s.char_length AS 字符字段最大长度,
s.char_used AS "最大长度单位(C-字符,B-字节)"
FROM user_tab_cols s;
SELECT s.table_name AS "表,视图,群集名称",
s.column_name AS 字段名称,
s.data_type AS 字段类型,
s.data_length AS "字段(字符串)的长度(字节)",
s.data_precision AS "长度(二进制或十进制数字)",
s.data_scale AS 小数点右边的数字的刻度,
s.nullable AS "是否允许为空(Y-是,N-否)",
s.column_id AS 创建字段的序字段号,
s.default_length AS 默认长度,
s.data_default AS 默认值,
s.num_distinct AS 字段的不同值数目,
s.low_value AS 字段中的最低的值,
s.high_value AS 字段中的最高的值,
s.density AS 柱的密度,
s.num_nulls AS 空值的数量,
s.num_buckets AS 字段的柱状图中的桶数,
s.last_analyzed "最近一次分析时间(统计分析)",
s.character_set_name AS 字符集名称,
s.char_col_decl_length AS 声明类型时的长度,
s.avg_col_len AS 字段的平均长度,
s.char_length AS 字符字段最大长度,
s.char_used AS "最大长度单位(C-字符,B-字节)"
FROM user_tab_columns s;
--------------------------------------------网上补充-----------------------------------------------------------------
-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图
-- DBA_TABLES意为DBA拥有的或可以访问的所有的关系表。
-- ALL_TABLES意为某一用户拥有的或可以访问的所有的关系表。
-- USER_TABLES意为某一用户所拥有的所有的关系表。
-- 当某一用户本身就为数据库DBA时,DBA_TABLES与ALL_TABLES等价。
-- DBA_TABLES >= ALL_TABLES >= USER_TABLES
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM dba_views
WHERE view_name LIKE 'DBA%'
AND owner = 'SYS';
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM dba_views
WHERE view_name LIKE 'ALL%'
AND owner = 'SYS';
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM dba_views
WHERE view_name LIKE 'USER%'
AND owner = 'SYS';
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM dba_views
WHERE view_name LIKE 'V_$%'
AND owner = 'SYS'; -- 针对某个实例的视图
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM dba_views
WHERE view_name LIKE 'GV_$%'
AND owner = 'SYS'; -- 全局视图,针对多个实例环境
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM dba_views
WHERE view_name LIKE 'SESSION%'
AND owner = 'SYS';
SELECT view_name AS 视图名称,
text_length AS 视图文本的长度,
text AS 查看文本,
superview_name AS 子视图名称,
editioning_view AS "同一个版本视图(Y-是,N-否)",
read_only AS "只读(Y-是,N-否)"
FROM dba_views
WHERE view_name LIKE 'INDEX%'
AND owner = 'SYS';
-- V$/GV$开头的绝大部分都是V_$/GV_$表的别名
SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'V$%';
SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'GV$%';
-- X$没有对应的X_$
SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'X$%';
-- 比较常用的DBA开头的视图有
SELECT * FROM dba_users; --数据库用户信息
SELECT * FROM dba_roles; --角色信息
SELECT * FROM dba_segments; --表段信息
SELECT * FROM dba_extents; --数据区信息
SELECT * FROM dba_objects; --数据库对象信息
SELECT * FROM dba_lobs; --lob数据信息
SELECT * FROM dba_tablespaces; --数据库表空间信息
SELECT * FROM dba_data_files; --数据文件设置信息
SELECT * FROM dba_temp_files; --临时数据文件信息
SELECT * FROM dba_rollback_segs; --回滚段信息
SELECT * FROM dba_ts_quotas; --用户表空间配额信息
SELECT * FROM dba_free_space; --数据库空闲空间信息
SELECT * FROM dba_profiles; --数据库用户资源限制信息
SELECT * FROM dba_sys_privs; --用户的系统权限信息
SELECT * FROM dba_tab_privs; --用户具有的对象权限信息
SELECT * FROM dba_col_privs; --用户具有的列对象权限信息
SELECT * FROM dba_role_privs; --用户具有的角色信息
SELECT * FROM dba_audit_trail; --审计跟踪记录信息
SELECT * FROM dba_stmt_audit_opts; --审计设置信息
SELECT * FROM dba_audit_object; --对象审计结果信息
SELECT * FROM dba_audit_session; --会话审计结果信息
SELECT * FROM dba_indexes; --用户模式的索引信息
-- 比较常用的ALL开头的视图有
SELECT * FROM all_users; --数据库所有用户的信息
SELECT * FROM all_objects; --数据库所有的对象的信息
SELECT * FROM all_def_audit_opts; --所有默认的审计设置信息
SELECT * FROM all_tables; --所有的表对象信息
SELECT * FROM all_indexes; --所有的数据库对象索引的信息
SELECT * FROM all_tab_comments; --查询所有用户的表,视图等
SELECT * FROM all_col_comments; --查询所有用户的表的列名和注释.
SELECT * FROM all_tab_columns; --查询所有用户的表的列名等信息(详细但是没有备注)
-- 比较常用的user开头的视图有
SELECT * FROM user_objects; --用户对象信息
SELECT * FROM user_source; --数据库用户的所有资源对象信息
SELECT * FROM user_segments; --用户的表段信息
SELECT * FROM user_tables; --用户的表对象信息
SELECT * FROM user_tab_columns; --用户的表列信息
SELECT * FROM user_constraints; --用户的对象约束信息
SELECT * FROM user_sys_privs; --当前用户的系统权限信息
SELECT * FROM user_tab_privs; --当前用户的对象权限信息
SELECT * FROM user_col_privs; --当前用户的表列权限信息
SELECT * FROM user_col_comments; -- 查询本用户的表的列名和注释
SELECT * FROM user_role_privs; --当前用户的角色权限信息
SELECT * FROM user_indexes; --用户的索引信息
SELECT * FROM user_ind_columns; --用户的索引对应的表列信息
SELECT * FROM user_cons_columns; --用户的约束对应的表列信息
SELECT * FROM user_clusters; --用户的所有簇信息
SELECT * FROM user_clu_columns; --用户的簇所包含的内容信息
SELECT * FROM user_cluster_hash_expressions; --散列簇的信息
-- 比较常用的V$开头的别名有
SELECT * FROM v$database; --数据库信息
SELECT * FROM v$datafile; --数据文件信息
SELECT * FROM v$controlfile; --控制文件信息
SELECT * FROM v$logfile; --重做日志信息
SELECT * FROM v$instance; --数据库实例信息
SELECT * FROM v$log; --日志组信息
SELECT * FROM v$loghist; --日志历史信息
SELECT * FROM v$sga; --数据库SGA信息
SELECT * FROM v$parameter; --初始化参数信息
SELECT * FROM v$process; --数据库服务器进程信息
SELECT * FROM v$bgprocess; --数据库后台进程信息
SELECT * FROM v$controlfile_record_section; --控制文件记载的各部分信息
SELECT * FROM v$thread; --线程信息
SELECT * FROM v$datafile_header; --数据文件头所记载的信息
SELECT * FROM v$archived_log; --归档日志信息
SELECT * FROM v$archive_dest; --归档日志的设置信息
SELECT * FROM v$logmnr_contents; --归档日志分析的DML DDL结果信息
SELECT * FROM v$logmnr_dictionary; --日志分析的字典文件信息
SELECT * FROM v$logmnr_logs; --日志分析的日志列表信息
SELECT * FROM v$tablespace; --表空间信息
SELECT * FROM v$tempfile; --临时文件信息
SELECT * FROM v$filestat; --数据文件的I/O统计信息
SELECT * FROM v$undostat; --Undo数据信息
SELECT * FROM v$rollname; --在线回滚段信息
SELECT * FROM v$session; --会话信息
SELECT * FROM v$transaction; --事务信息
SELECT * FROM v$rollstat; --回滚段统计信息
SELECT * FROM v$pwfile_users; --特权用户信息
SELECT * FROM v$sqlarea; --当前查询过的sql语句访问过的资源及相关的信息
SELECT * FROM v$sql; --与v$sqlarea基本相同的相关信息
SELECT * FROM v$sysstat; --数据库系统状态信息
SELECT * FROM v$controlfile; --查询oracle安装位置
SELECT * FROM v$pwfile_users; --查询具有管理员权限的用户
-- 比较常用的SESSION开头的视图有
SELECT * FROM session_roles; --会话的角色信息
SELECT * FROM session_privs; --会话的权限信息
-- 比较常用的INDEX开头的视图有
SELECT * FROM index_stats; --索引的设置和存储信息
-- 伪表,参考oracle 中 dual 详解:http://blog.csdn.net/ozhouhui/article/details/7935196
SELECT * FROM dual; --系统伪列表信息
SELECT SYSDATE FROM dual; --可将Sysdate视为一个其结果为当前日期和时间的函数,在任何可以使用Oracle函数的地方都可以使用Sysdate。也可以将它视为每个表的一个隐藏的列或伪列。
SELECT current_date FROM dual; --报告会话的时区中的系统日期。注:可以设置自己的时区,以区别于数据库的时区。
SELECT systimestamp FROM dual; --报告TIMESTAMP数据类型格式的系统日期。
-- 系统权限
-- GRANTEE 接受该权限的用户名
-- OWNER 对象的拥有者
-- GRANTOR 赋予权限的用户
SELECT * FROM dba_sys_privs WHERE grantee = 'SYS';
SELECT * FROM dba_sys_privs WHERE grantee = 'CONNECT';
SELECT * FROM dba_sys_privs WHERE grantee = 'RESOURCE';
grant sysdba TO user_name; --给某用户赋予管理员权限
revoke sysdba FROM user_name; --给某用户去除管理员权限
-- 角色权限
-- 查看某个用户有哪些角色
SELECT * FROM dba_role_privs WHERE grantee = 'SYS';
-- 查看某个角色被赋予了哪些用户
SELECT * FROM dba_role_privs WHERE granted_role = 'DBA';
-- 对象权限
SELECT * FROM dba_tab_privs;
-- 查看某个系统用户是否有SYSDBA或者SYSOPER权限
SELECT * FROM v$pwfile_users;
-- 锁定、解锁用户
SELECT * FROM dba_users WHERE username = 'SCOTT';
ALTER USER scott account LOCK; --锁定用户
ALTER USER scott account unlock; --解锁用户
COMMIT;
-- oracle10g 修改用户密码:
SELECT s.password FROM dba_users s WHERE s.username = 'SCOTT';
ALTER USER scott identified BY 1; --修改用户密码
SELECT * FROM global_name; -- 查看oracle的全局数据库名
SELECT * FROM v$database; -- 查看数据库名 show parameter db_name;
-- 数据库实例名对应着SID
SELECT * FROM v$instance; --查看数据库实例名 show parameter instance_name;
SELECT instance FROM v$thread;
-- show parameter是oracle的命令,不是标准SQL语句
-- 可以在sqlplus或者pl/sql dev的命令窗口执行
-- show parameter aaaa;等价于SELECT * FROM v$parameter WHERE name like '%aaaa%';
SELECT * FROM v$parameter WHERE NAME LIKE '%name%'; --等价于show parameter name;
SELECT * FROM v$parameter WHERE NAME LIKE '%db_domain%'; --查询数据库域名
--增删改操作回滚语句:
SELECT first_load_time FROM v$sql WHERE sql_text LIKE '%需要恢复的语句%'; --查出时间点
CREATE TABLE hyz_back AS --新的表
SELECT *
FROM table_name --你误操作的表
AS OF TIMESTAMP to_timestamp('2018-01-17 19:37:20', 'yyyy-mm-dd hh24:mi:ss'); --时间点
--执行计划查询
explain plan for
select * from table;--SQL语句
select * from table(dbms_xplan.display);
网友评论