yaomint 发表于 2018-10-20 12:06:16

SQL 基础之管理对象与数据字典视图(十九)

  数据字典

  数据字典结构

  数据字典结构
  视图命名约定:
视图前缀含义USER用户视图 (自己拥有的,自己方案下的)ALL扩展的用户视图 (在user_的基础上,用户有权访问的)DBA数据库管理员视图(所有方案下的)V$性能相关数据  如何使用字典视图
  DICTIONARY视图包括所有字典表和视图的名称及描述。
  desc dictionary
  select * from dictionary where table_name = 'user_objects';
  USER_OBJECTS和ALL_OBJECTS
  USER_OBJECTS:
  查询 USER_OBJECTS能看到你所拥有的所有对象。
  使用 USER_OBJECTS你可以得到您拥有所有对象的名称和
  类型还有以下信息:
  – 创建日期
  – 最后修改日期
  – 状态 (有效或失效)
  ALL_OBJECTS:
  查询 ALL_OBJECTS 你可以看到所有你有权访问的对象。
  USER_OBJECTS 视图
  select object_name, object_type, created, status
  from user_objects
  order by object_type;
  数据字典视图可以查询一下内容:
  – 表信息
  – 字段信息
  – 约束信息
  USER_TABLES:
  desc user_tables;
  select table_name from user_tables;
  Column 信息
  USER_TAB_COLUMNS:
  desc user_tab_columns
  Name   Null?    Type
  ----------------------------------------- -------- ----------------------------
  TABLE_NAME   NOT NULL VARCHAR2(30)
  COLUMN_NAME   NOT NULL VARCHAR2(30)
  DATA_TYPE    VARCHAR2(106)
  DATA_TYPE_MOD    VARCHAR2(3)
  DATA_TYPE_OWNER    VARCHAR2(30)
  DATA_LENGTH   NOT NULL NUMBER
  DATA_PRECISION   NUMBER
  DATA_SCALE    NUMBER
  NULLABLE    VARCHAR2(1)
  COLUMN_ID    NUMBER
  DEFAULT_LENGTH   NUMBER
  DATA_DEFAULT    LONG
  NUM_DISTINCT    NUMBER
  LOW_VALUE    RAW(32)
  HIGH_VALUE    RAW(32)
  DENSITY    NUMBER
  NUM_NULLS    NUMBER
  NUM_BUCKETS    NUMBER
  LAST_ANALYZED    DATE
  SAMPLE_SIZE    NUMBER
  CHARACTER_SET_NAME    VARCHAR2(44)
  CHAR_COL_DECL_LENGTH    NUMBER
  GLOBAL_STATS    VARCHAR2(3)
  USER_STATS    VARCHAR2(3)
  AVG_COL_LEN    NUMBER
  CHAR_LENGTH    NUMBER
  CHAR_USED    VARCHAR2(1)
  select column_name, data_type, data_length,
  data_precision, data_scale, nullable
  from user_tab_columns
  where table_name = 'employees';
  Constraint 信息
  USER_CONSTRAINTS 描述你表中定义的约束
  USER_CONS_COLUMNS 描述约束指定的字段
  select constraint_name, constraint_type,
  search_condition, r_constraint_name,
  delete_rule, status
  from user_constraints
  where table_name = 'employees';
  查询 USER_CONS_COLUMNS
  descuser_cons_columns
  select constraint_name, column_name
  from user_cons_columns
  where table_name = 'employees';
  View 信息
  descuser_views
  select view_name from user_views;
  select text from user_views where view_name = 'EMP_DETAILS_VIEW';
  Sequence信息
  descuser_sequences
  确认 Sequences
  在 USER_SEQUENCES 数据字典表中确认您的序列值
  select sequence_name, min_value, max_value,increment_by, last_number from user_sequences;
  如果指定了 NOCACHE 选项,那么LAST_NUMBER的内容即是下一个可用序号
  Index信息
  USER_INDEXES 提供关于索引的信息。
  USER_IND_COLUMNS 描述索引列,包括索引和字段
  descuser_indexes
  Name   Null?    Type
  ----------------------------------------- -------- ----------------------------
  INDEX_NAME   NOT NULL VARCHAR2(30)
  INDEX_TYPE    VARCHAR2(27)
  TABLE_OWNER   NOT NULL VARCHAR2(30)
  TABLE_NAME   NOT NULL VARCHAR2(30)
  TABLE_TYPE    VARCHAR2(11)
  UNIQUENESS    VARCHAR2(9)
  COMPRESSION    VARCHAR2(8)
  PREFIX_LENGTH    NUMBER
  TABLESPACE_NAME    VARCHAR2(30)
  INI_TRANS    NUMBER
  MAX_TRANS    NUMBER
  INITIAL_EXTENT   NUMBER
  NEXT_EXTENT    NUMBER
  MIN_EXTENTS    NUMBER
  MAX_EXTENTS    NUMBER
  PCT_INCREASE    NUMBER
  PCT_THRESHOLD    NUMBER
  select index_name, table_name,uniqueness
  from user_indexes
  where table_name = 'employees';
  INDEX_NAME       TABLE_NAME      UNIQUENES
  ------------------------------ ------------------------------ ---------
  EMP_JOB_IX       EMPLOYEES      NONUNIQUE
  EMP_EMAIL_UK       EMPLOYEES      UNIQUE
  EMP_EMP_ID_PK       EMPLOYEES      UNIQUE
  EMP_MANAGER_IX       EMPLOYEES      NONUNIQUE
  EMP_NAME_IX       EMPLOYEES      NONUNIQUE
  EMP_DEPARTMENT_IX       EMPLOYEES      NONUNIQUE
  6 rows selected.
  查询 USER_IND_COLUMNS
  desc user_ind_columns
  Name   Null?    Type
  ----------------------------------------- -------- ----------------------------
  INDEX_NAME    VARCHAR2(30)
  TABLE_NAME    VARCHAR2(30)
  COLUMN_NAME    VARCHAR2(4000)
  COLUMN_POSITION    NUMBER
  COLUMN_LENGTH    NUMBER
  CHAR_LENGTH    NUMBER
  DESCEND    VARCHAR2(4)
  Synonym 信息
  desc user_synonyms
  select * from user_synonyms;

  表添加注释
  使用 COMMENT 命令为表和字段添加注释:
  comment on table employees is 'employee information';
  comment on column employees.first_name is 'first name of the employee';
  可以通过下列数据字典视图查看注释信息:
  – ALL_COL_COMMENTS
  – USER_COL_COMMENTS
  – ALL_TAB_COMMENTS
  – USER_TAB_COMMENTS
  常用用户数据字典一般如下,可根据需要自行查看相关列信息:

[*]  DICTIONARY
[*]  USER_OBJECTS
[*]  USER_TABLES
[*]  USER_TAB_COLUMNS
[*]  USER_CONSTRAINTS
[*]  USER_CONS_COLUMNS
[*]  USER_VIEWS
[*]  USER_SEQUENCES
[*]  USER_INDEXES
[*]  USER_SYNONYMS

页: [1]
查看完整版本: SQL 基础之管理对象与数据字典视图(十九)