Advertisement
lucasmouraahere

Módulo 11

Sep 9th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.93 KB | None | 0 0
  1. Dicionário de Dados
  2.  
  3. dicionário de dados grava todas AS informações dos objetos, ou seja, uma package a gente consegue ver linha por linha por ser salva na tabela SOURCE.
  4.  
  5. Tipos de VIEWs
  6.  
  7. ALL: todos os objetos de que o seu usário pode acessar;
  8. USER: Somente os objetos do seu usário;
  9. DBA: Esta somente os DBAS tem acesso e conseguem ver todos os objetos de todos os usuários;
  10. V$: São VIEWs que estão relacionadascom o desempenho do bancode dados
  11.  
  12. Para acessar todos os nomes das VIEWs do dicionário de dados temos a VIEW DICTIONARY, com ela você consegue saber todas AS informações de todas AS VIEWs do dicionário de dados;*/
  13.  
  14.  
  15. /*USER_OBJECTs
  16.  
  17. Com essa VIEW você consegue visualizar todas as informações dos objetos do seu usuario(schema). nesta view estão contidas as seguintes informações:
  18.  
  19. OBJECT_NAME: Nome do objeto;
  20. SUBOBJECT_NAME: Nome do subobjeto, como por exemplo uma partição.
  21.  
  22. OBJECT_ID: Identificador do objeto no dicionário de dados;
  23.  
  24. DATA_OBJECT_ID: Identificador do seguimento onde o objeto está contido;
  25.  
  26. OBJECT_TYPE: Tipo de objeto;
  27.  
  28. CREATED: Data de criação do objeto;
  29.  
  30. LAST_DDL_TIME: ultima vez que tivemos um DDL no objeto;
  31.  
  32. TIMESTAMP: Data da especificação do objeto;
  33.  
  34. STATUS: status do objeto (Válido ou inválido);
  35.  
  36. TEMPORARY: verifica se o objeto é temporário ou não (N,Y);
  37.  
  38. GENERATED: foi um nome criado pelo Oracle ou pelo usuário (N,Y);
  39.  
  40. SECUNDARY: define se é um objeto secundário criado como parte de indes de dominio (Y,N);
  41.  
  42. NAMESPACE: nome da namespace onde o objeto foi criado;
  43.  
  44. EDTION_NAME: Nome a edição do objeto;*/
  45.  
  46. SELECT * FROM dictionary;
  47.  
  48. SELECT * FROM user_objects
  49. WHERE object_type = 'TABLE';
  50.  
  51.  
  52. /* Informações de Tabelas
  53.  
  54. Existem 4 VIEWs importantes onde encontramos informações de tabelas, que estão descritas abaixo:
  55.  
  56. USER_TABLES: Informações das tabelas do usuário que está verificando está informação;
  57.  
  58. USER_TAB_COLUMNS: Informação das colunas tabelas do usuário;
  59.  
  60. USER_CONSTRAINTS: Definição das constraints nas tabelas;
  61.  
  62. USER_CONS_COLUMNS: Colunas que estão nas constraints
  63. definidas.
  64.  
  65. VIEW USER_TABLES: A View USER_TABLES é uma das mais importantes do dicionário de dados, nela você encontra todas as informações das tabelas do usuário. Está VIEW possui muitas informações de configurações que são importantes para a manuntenção do banco de dados, abaixo seguem as informações mais importantes:
  66.  
  67. TABLE_NAME: Nome da tabela;
  68.  
  69. TABLESPACE_NAME: Nome do tablespace onde a VIEW está localizada.
  70.  
  71. STATUS: Existem dois status UNUSABLE, para os casos onde houver um DROP TABLE a tabela ficou inutilizavel e VALID;
  72.  
  73. BACKED_UP: Se a tabela teve um backup desde a sua criação em caso positivo Y, se não o valor é N;
  74.  
  75. AVG_SPACE: Média de espaço livre na tabela para utilização;
  76.  
  77. PARTIONED(Recurso de banco de dados Oracle): Se a tabela foi particionada ou não;
  78.  
  79. Além das tabelas também temos uma VIEW com as informações das colunas das tabelas, está view é a USER_TAB_COLUMNS, abaixo segue um descritivo dos principais campos dessa VIEW:
  80.  
  81. TABLE_NAME: Nome da tabela à qual as colunas pertencem;
  82.  
  83. COLUMN_NAME: Nome da coluna;
  84.  
  85. DATA_TYPE: Tipo da coluna;
  86.  
  87. DATA_LENGTH: Tamanho da coluna;
  88.  
  89. DATA_PRECISION: Percisão do campo(Casas decimais);
  90.  
  91. NULLABLE: Y se a coluna pode receber um valor nulo e N para os casos contrários
  92.  
  93. DATA_DEFAULT: valores Padrão da coluna;
  94.  
  95.  
  96.  
  97. Informações sobre Constraints
  98.  
  99. Para verificarmos as informações sobre as constraints temos duas views para isso, a USER_CONSTRAINTS e a USER_CONS_COLUMNS, abaixo segue um descritivo sobre elas:
  100.  
  101. USER_CONSTRAINTS: Nesta view estão contidas as informações da constraints propriamente ditas;
  102.  
  103. USER_CONS_COLUMNS: Nesta view estão as colunas especificadas nas constraits;
  104.  
  105. VIEW USER_CONSTRAINTS:
  106.  
  107. Abaixo seguem as colunas mais importantes desta VIEW:
  108.  
  109. OWNER: Nome do usuário dono da CONSTRAINT;
  110.  
  111. CONSTRAINT_NAME: Nome da constraint;
  112.  
  113. CONSTRAINT_TYPE: Tipo de constraint;
  114.  
  115. C: Constraint de verificação;
  116. P: Chave primária;
  117. U: Chave exclusiva;
  118. R: Integridade Referencial (Chave Estrangeira);
  119. V: Com opção de verificação, somente para VIEWs;
  120. O: Somente para leitura, esta constraint se aplica somente nas VIEWs.
  121.  
  122. TABLE_NAME: Nome da tabela;
  123.  
  124. SEARCH_CONDITION: Condição da constraint de CHECK;
  125.  
  126. R_OWNER: Nome do owner da tabela referenciada;
  127.  
  128. R_CONSTRAINT_NAME: Nome da constraint referenciada;
  129.  
  130. DELETE_RULE: Regra de deleção da constraint referenciada;
  131.  
  132. STATUS: Para ver se a constraint está habilitada ou não;
  133.  
  134. DEFERRABLE(É um recurso que só acontece após o commit, utilizado para melhorar performance da consulta): Se a constraint é DEFERRABLE ou NOT DEFERRABLE;
  135.  
  136. GENERATED: Se o nome da constraint foi gerado pelo sistema;
  137.  
  138.  
  139. VIEW USER_CONS_COLUMNS
  140.  
  141. Abaixo seguem as colunas da VIEW USER_CONS_COLUMNS:
  142.  
  143. OWNER: Nome do usuário dono da constraint;
  144.  
  145. CONSTRAINT_NAME: Nome da constraint;
  146.  
  147. TABLE_NAME: Nome da tabela;
  148.  
  149. COLUMN_NAME: Nome da coluna;
  150.  
  151. POSITION: Posição da coluna na tabela;
  152.  
  153.  
  154.  
  155.  
  156. Informações de VIEWs e SEQUENCES
  157.  
  158. Dicionário de dados de uma VIEW
  159.  
  160. AS VIEWs assim como os outros objetos de dados também possuem uma VIEW que armazena as informações de suas configurações, esta VIEW se cham USER_VIEW e dentro dela temos os seguintes campos:
  161.  
  162. VIEW_NAME: Nome da VIEW;
  163.  
  164. TEXT_LENGTH: Quantidade de caracteres contidos no código que formou a VIEW;
  165.  
  166. TEXT: Código que formou a VIEW;
  167.  
  168. EDITION_VIEW: Y se a view pode ser editado e N caso não;
  169.  
  170. READ_ONLY: Y se a view só for para leitura, N caso não;
  171.  
  172.  
  173. VIEW USER_SEQUENCES:
  174.  
  175. Na VIEW USER_SEQUENCES você encontra todas as informações de configuração de uma SEQUENCE, abaixo segue um descritivo dos seus campos:
  176.  
  177. SEQUENCE_NAME: Nome da SEQUENCE;
  178.  
  179. MIN_VALUE: Menor valor da SEQUENCE;
  180.  
  181. MAX_VALUE: Maior valor de uma SEQUENCE;
  182.  
  183. INCREMENT_BY: Valor que é incrementado na SEQUENCE;
  184.  
  185. CYCLE_FLAG: Y caso de positivo e N em caso que não tempos CYCLE;
  186.  
  187. CACHE_SIZE: Tamanho do cache da SEQUENCE;
  188.  
  189. LAST_NUMBER: Ultimo número da SEQUENCE, no momento da consulta;
  190.  
  191.  
  192.  
  193. Informações de sinonimos e como adicionar um comentário a uma tabela ou a uma coluna.
  194.  
  195. Dicionário de dados de um sinônimo:
  196.  
  197. Assim como os outros objetos os sinonimos também possuem uma VIEW onde ficam armazenadas as suas configurações, abaixo segue um descritivo das colunas da VIEW USER_SYNONYMS:
  198.  
  199. SYNONYM_NAME: Nome do sinonimo;
  200.  
  201. TABLE_OWNER: usuário proprietário do objeto que é referenciado pelo sinonimo;
  202.  
  203. TABLE_NAME: Nome do objeto referenciado;
  204.  
  205. DB_LINK: Link referenciado para um sinonimo remoto;
  206.  
  207. COMO ADICIONAR COMENTÁRIO EM UMA TABELA OU COLUNA:
  208.  
  209. USER_COL_COMMENTS: Comentários adicionados nas colunas;
  210.  
  211. USER_TAB_COMMENTS Comentários adicionados nas tabelas;
  212. */
  213.  
  214. COMMENT ON TABLE hr.employees
  215.     IS 'Informações dos empregados';
  216.  
  217. COMMENT ON COLUMN hr.employees.employee_id
  218.     IS 'Identificação dos funcionários';
  219.  
  220. SELECT * FROM ALL_TAB_COMMENTS;
  221.  
  222. SELECT * FROM ALL_COL_COMMENTS;
  223.  
  224. SELECT * FROM ALL_TAB_COMMENTS
  225. WHERE TABLE = 'HR.EMPLOYEES;
  226.  
  227. SELECT * FROM ALL_COL_COMMENTS
  228. WHERE TABLE_NAME = 'hr.employees'
  229. AND COLUMN_NAME = 'employee_id';
  230.  
  231. /* Crie uma consulta que exiba o nome das colunas, os tipos de dados, o tamanho dos dados e se eles podem ser nulos da tabela JOBS*/
  232.  
  233. SELECT table_name, column_name
  234.       data_type, data_length,
  235.       nullable
  236. FROM USER_TAB_COLUMNS
  237. WHERE TABLE_NAME = 'hr.jobs';
  238.  
  239. /* Agora faça uma consulta que exiba o nome da coluna, nome da constraint,
  240. o tipo da constraint(nome descritivo, use o DECODE com o descritivo passado na aula para exibir essa informação)
  241. a condição de pesquisa e o seu STATUS. Para fazer esse exercício faça um JOIN das tabelas USER_CONSTRAINTS e USER_CONS_COLUMNS
  242.  
  243. */
  244.  
  245. SELECT uc.constraint_name, ucolum.column_name,
  246.       DECODE(
  247.       uc.constraint_type,
  248.                       'C', 'CONSTRAINT de verificação',
  249.                       'P', 'Chave Primária',
  250.                       'U', 'Chave exclusiva',
  251.                       'R', 'Integridade Referencial',
  252.                       'V', 'Com opção de verificação',
  253.                       'O', 'Somente para leitura') 'Tipo',
  254.      uc.search_condition, uc.status
  255. FROM USER_CONSTRAINTS uc
  256. INNER JOIN USER_CONS_COLUMNS ucolum
  257. ON uc.CONSTRAINT_NAME = ucolum.CONSTRAINT_NAME;
  258.  
  259. /* Crie uma consulta para exibir as informações sobre suas seqüências: nome, valor máximo, tamanho do incremento e último número.*/
  260.  
  261. SELECT sequence_name, max_value,
  262.       increment_by, last_number
  263. FROM USER_SEQUENCES;
  264.  
  265. /* Adicione um comentário a coluna department_id da tabela departments,
  266. este comentário deve ser a tradução do comentário atual. Após fazer isso exiba este comentário.*/
  267.  
  268. COMMENT ON COLUMN hr.departments.department_id
  269.    IS 'Tradução do comentário atual';
  270.    
  271. SELECT * FROM ALL_COL_COMMENTS;
  272.    WHERE TABLE_NAME = 'hr.departments'
  273.    AND COLUMN_NAME = 'department_id';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement