quarta-feira, 12 de agosto de 2015

Listando Tabelas e Colunas no PostgreSQL, Firebird, MS-SQL Server e Oracle

Olá, Boa Tarde!!!

Com certeza você já preciso listar tabelas, bem como suas colunas, tipo de dados, tamanho de coluna, chaves primárias e estrangeiras, etc. Então resolvemos reunir os comandos para fazer isso em quatro dos principais bancos de dados, o PostgreSQL, o Firebird, o MS-SQL Server e o Oracle.

Abaixo deixamos os links para cada um dos materiais:

PostgreSQL:

Firebird:

Oracle:

Nesta postagem juntamos os links de todas as postagens referente ao assunto de listagem de tabelas e colunas em banco de dados.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

terça-feira, 11 de agosto de 2015

Listando as Colunas de uma Tabela no Oracle

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar todas as colunas de uma tabela no Oracle, identificando as chaves primárias, as chaves estrangeiras, o tipo de dado, tamanho do campo, bem como se ele aceita nulo ou não.

Tendo em mãos o nome da tabela desejada, basta executar o comando abaixo:

Vamos ao comando?
SELECT A.COLUMN_NAME || ' (' || CASE WHEN ((SELECT COUNT(1) 
                                            FROM ALL_CONS_COLUMNS AA 
                                            LEFT JOIN ALL_CONSTRAINTS BB ON AA.CONSTRAINT_NAME = BB.CONSTRAINT_NAME
                                            WHERE BB.CONSTRAINT_TYPE = 'P'
                                              AND AA.TABLE_NAME = A.TABLE_NAME 
                                              AND AA.COLUMN_NAME = A.COLUMN_NAME) > 0) THEN 'PK, ' ELSE '' END ||
       CASE WHEN ((SELECT COUNT(1) 
                   FROM ALL_CONS_COLUMNS AA 
                   LEFT JOIN ALL_CONSTRAINTS BB ON AA.CONSTRAINT_NAME = BB.CONSTRAINT_NAME
                   WHERE BB.CONSTRAINT_TYPE = 'R'
                     AND AA.TABLE_NAME = A.TABLE_NAME 
                     AND AA.COLUMN_NAME = A.COLUMN_NAME) > 0) THEN 'FK, ' ELSE '' END ||
       DATA_TYPE ||
       CASE WHEN (A.CHAR_COL_DECL_LENGTH IS NOT NULL) THEN  '(' || A.CHAR_COL_DECL_LENGTH || '), ' ELSE ', ' END ||
       CASE WHEN A.NULLABLE = 'N' THEN 'Não Nulo' ELSE 'Nulo' END ||
       ')' AS Coluna
FROM ALL_TAB_COLUMNS A
WHERE A.OWNER = 'ALFACONTROL'  -- Nome da TableSpace
  AND A.TABLE_NAME = 'USUARIO'  -- Nome da Tabela

Prontinho, aí estão todas as colunas com as devidas informações de tamanho, tipo de dado, etc.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Listando Tabelas no Oracle

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar as tabelas em um banco de dados Oracle.

Vamos aos comandos? 
   SELECT TABLE_NAME AS Tabela 
   FROM ALL_ALL_TABLES 
   WHERE TABLESPACE_NAME = 'ALFACONTROL'  -- Nome da TableSpace

Prontinho, aí estão todas as tabelas de um determinado Banco de Dados Oracle.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Listando as Colunas de uma Tabela no MS-SQL Server

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar todas as colunas de uma tabela no MS-SQL server, identificando as chaves primárias, as chaves estrangeiras, o tipo de dado, tamanho do campo, bem como se ele aceita nulo ou não.

Tendo em mãos o nome da tabela desejada, basta executar o comando abaixo:

Vamos ao comando?
SELECT A.name + 
       ' (' + CASE WHEN ((SELECT COUNT(1) 
                      FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AA 
                          WHERE A.name = AA.COLUMN_NAME 
                            AND CONSTRAINT_NAME = (SELECT NAME 
                                                   FROM SYSOBJECTS As AAA
                                                   WHERE AA.TABLE_NAME = OBJECT_NAME(AAA.Parent_Obj)
                                                     AND AAA.XTYPE = 'PK')) > 0)
       THEN 'PK, ' ELSE '' END +
       CASE WHEN ((SELECT COUNT(1)
                   FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AA
                   LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE BB ON BB.CONSTRAINT_CATALOG = AA.CONSTRAINT_CATALOG
                                                                   AND BB.CONSTRAINT_SCHEMA = AA.CONSTRAINT_SCHEMA
                                                                   AND BB.CONSTRAINT_NAME = AA.CONSTRAINT_NAME
                   WHERE BB.TABLE_NAME = B.name 
                     AND BB.COLUMN_NAME = A.name) > 0) 
       THEN 'FK, ' ELSE '' END +
       C.name + CASE WHEN (C.collationid IS NOT NULL) 
                THEN  '(' + CAST(A.length AS VARCHAR(10)) + ')' ELSE '' END  + ', ' +
       CASE WHEN (A.isnullable = 0) THEN 'Não Nulo' ELSE 'Nulo' END +
       ')' AS Coluna
FROM SYSCOLUMNS A
LEFT JOIN SYSOBJECTS B ON A.id = B.id
LEFT JOIN SYSTYPES C ON A.usertype = C.usertype
WHERE B.name = 'Pessoa'  -- Nome da Tabela

Prontinho, aí estão todas as colunas com as devidas informações de tamanho, tipo de dado, etc.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Listando Tabelas no MS-SQL Server

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar as tabelas em um banco de dados MS-SQL Server.

Vamos aos comandos?
SELECT NAME AS Tabela FROM SYSOBJECTS WHERE XTYPE = 'U' 

Prontinho, aí estão todas as tabelas de um determinado Banco de Dados MS-SQL Server.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Listando as Colunas de uma Tabela no Firebird

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar todas as colunas de uma tabela no Firebird, identificando as chaves primárias, as chaves estrangeiras, o tipo de dado, tamanho do campo, bem como se ele aceita nulo ou não.

Tendo em mãos o nome da tabela desejada, basta executar o comando abaixo:

Vamos ao comando?
SELECT TRIM(RDB$RELATION_FIELDS.RDB$FIELD_NAME) || ' (' || 
       CASE WHEN ((SELECT COUNT(1)
                   FROM RDB$RELATION_CONSTRAINTS,
                        RDB$INDEX_SEGMENTS
                   WHERE RDB$INDEX_SEGMENTS.RDB$INDEX_NAME = RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME
                     AND RDB$RELATION_CONSTRAINTS.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
                     AND RDB$RELATION_CONSTRAINTS.RDB$RELATION_NAME = RDB$RELATION_FIELDS.RDB$RELATION_NAME
                     AND RDB$INDEX_SEGMENTS.RDB$FIELD_NAME = RDB$RELATION_FIELDS.RDB$FIELD_NAME) > 0)
       THEN 'PK, ' ELSE TRIM('') END ||
       CASE WHEN ((SELECT COUNT(1)
                   FROM RDB$RELATION_CONSTRAINTS,
                        RDB$INDEX_SEGMENTS
                   WHERE RDB$INDEX_SEGMENTS.RDB$INDEX_NAME = RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME
                     AND RDB$RELATION_CONSTRAINTS.RDB$CONSTRAINT_TYPE = 'FOREIGN KEY'
                     AND RDB$RELATION_CONSTRAINTS.RDB$RELATION_NAME = RDB$RELATION_FIELDS.RDB$RELATION_NAME
                     AND RDB$INDEX_SEGMENTS.RDB$FIELD_NAME = RDB$RELATION_FIELDS.RDB$FIELD_NAME) > 0)
       THEN 'FK, ' ELSE TRIM('') END ||
       CASE RDB$FIELDS.RDB$FIELD_TYPE
          WHEN 7 THEN 'smallint, '
          WHEN 8 THEN 'integer, '
          WHEN 9 THEN 'quad, '
          WHEN 10 THEN 'float, '
          WHEN 11 THEN 'd_float, '
          WHEN 12 THEN 'date, '
          WHEN 13 THEN 'time, '
          WHEN 14 THEN 'char' || '(' || RDB$FIELDS.RDB$FIELD_LENGTH || '), '
          WHEN 16 THEN 'int64, '
          WHEN 27 THEN 'double, '
          WHEN 35 THEN 'timestamp, '
          WHEN 37 THEN 'varchar' || '(' || RDB$FIELDS.RDB$FIELD_LENGTH || '), '
          WHEN 40 THEN 'cstring' || '(' || RDB$FIELDS.RDB$FIELD_LENGTH || '), '
          WHEN 261 THEN 'blob, '
          ELSE 'Não Identificado, ' END ||
       CASE RDB$RELATION_FIELDS.RDB$NULL_FLAG
          WHEN 1 THEN TRIM('Não Nulo') ELSE TRIM('Nulo') END || ')' AS Coluna
FROM RDB$RELATION_FIELDS
LEFT JOIN RDB$FIELDS ON RDB$RELATION_FIELDS.RDB$FIELD_SOURCE = RDB$FIELDS.RDB$FIELD_NAME
WHERE RDB$RELATION_FIELDS.RDB$RELATION_NAME = 'USUARIOS' -- Nome da Tabela

Prontinho, aí estão todas as colunas com as devidas informações de tamanho, tipo de dado, etc.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Listando Tabelas no Firebird

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar as tabelas em um banco de dados Firebird.

Vamos aos comandos?
SELECT RDB$RELATION_NAME AS Tabela
FROM RDB$RELATIONS
WHERE RDB$VIEW_BLR IS NULL
  AND (RDB$SYSTEM_FLAG = 0 OR RDB$SYSTEM_FLAG IS NULL);

Prontinho, aí estão todas as tabelas de um determinado Banco de Dados Firebird.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Listando as Colunas de uma Tabela no PostgreSQL

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar todas as colunas de uma tabela no postgreSQL, identificando as chaves primárias, as chaves estrangeiras, o tipo de dado, tamanho do campo, bem como se ele aceita nulo ou não.

Tendo em mãos o nome do Schema e o nome da tabela desejada, basta executar o comando abaixo:

Vamos ao comando?
SELECT A.attname || '(' ||
       CASE WHEN ((SELECT COUNT(1)
                   FROM pg_index AA
                   WHERE AA.indrelid = B.oid
                     AND AA.indkey[0] = A.attnum) > 0)
       THEN 'PK, ' ELSE '' END ||
       CASE WHEN ((SELECT COUNT(1)
                   FROM pg_constraint BB
                   WHERE BB.conrelid = A.attrelid
                     AND BB.conkey[1] = A.attnum
                     AND BB.confrelid <> 0) > 0)
       THEN 'FK, ' ELSE '' END ||
       format_type(A.atttypid, A.atttypmod) || ', ' ||
       CASE WHEN A.attnotnull = 't' 
       THEN 'Não Nulo' ELSE 'Nulo' END ||
       ')' AS Coluna
FROM pg_attribute A 
LEFT JOIN pg_class B ON A.attrelid = B.oid
LEFT JOIN pg_namespace C ON B.relnamespace = C.oid
LEFT JOIN pg_type D ON A.atttypid = D.oid
WHERE A.attnum > 0
  AND C.nspname = 'public' --Nome do Schema
  AND B.relname = 'pessoa' --Nome da Talela



Prontinho, aí estão todas as colunas com as devidas informações de tamanho, tipo de dado, etc.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.

Listando Tabelas no PostgreSQL

Olá, Bom Dia Galera!!!

Vamos ver os comandos para listar as tabelas em um banco de dados PostgreSQL.

Vamos aos comandos?

1º) Vamos identificar o nome do schema:
   SELECT DISTINCT(schemaname) FROM pg_tables;       

2º) Agora vamos ao comando para listar as tabelas de um determinado schema.
   SELECT tablename AS Tabela FROM pg_tables WHERE schemaname = 'public';

Prontinho, aí estão todas as tabelas de um determinado Schema ou Banco de Dados PostgreSQL.

Se você tem uma dica interessante, preencha o Formulário de contato do lado direito da página e nos envie.

Atenciosamente
Dica Chave.