Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Oracle: Consultas SQL de Oracle para obtener datos de una tabla
Bases de Datos


Consultas SQL de Oracle para obtener datos de una tabla (estructura, campos, índices)

Os mostramos las consultas SQL de Oracle Database necesarias para obtener los campos ó columnas, tipos de datos, tamaño, las restricciones (constraint), los índices (indexes) y las reglas de integridad referencial de una tabla mediante las vistas: all_tab_columns, all_cons_columns y all_indexes.



Preparando el escenario de trabajo en Oracle Database

Para realizar las pruebas y obtener los datos necesitaremos un servidor con Oracle Database instalado, también necesitaremos un software para acceso a Oracle que nos permita ejecutar consultas SQL. Se puede utilizar SQL*Plus que incluye el propio Oracle (ejecutar consultas SQL en modo comando), utilizar la utilidad de ejecución de consultas SQL vía web (a partir de la versión 10g) o se puede utilizar cualquier otro software, como:

AjpdSoft Administración Bases de Datos

En primer lugar, para probar los resultados, crearemos un par de tablas ejecutando las consultas SQL de inserción siguientes:

create table PRUEBA (
  id number primary key, 
  texto varchar2(2000));


create table PRUEBA2 (
  id number primary key, 
  texto varchar2(2000),
  numero number(9,2) check(numero > 10));

Colocando "primary key" en un campo hacemos que sea clave primaria de la tabla y, por tanto, Oracle creará un índice para ese campo automáticamente. Nos servirá para probar los resultados.

Insertamos algún registro en las tablas de prueba:

insert into prueba values (1, 'Fernando Alonso');
insert into prueba values (2, 'David Junior');
insert into prueba2 values (1, 'Fernando Alonso', 11);
insert into prueba2 values (2, 'David Junior', 12);

Hemos de aclarar que para ejecutar algunas de estas consultas SQL y las que a continuación describiremos es necesario iniciar sesión en Oracle Database con un usuario con permisos de administrador. Normalmente deberá iniciar la sesión como usuario "system" o algún otro que tenga privilegios suficientes.

Obteniendo los datos de una tabla de Oracle Database

Obtener las columnas o campos de una tabla (nombre, tipo de datos, tamaño, permite nulos)

La siguiente consulta SQL mostrará las columnas de la tabla "PRUEBA" (nombre del campo, tipo de datos, tamaño, si permite nulos):

 select column_name "Campo", data_type "Tipo de datos", 
   data_length "Tamaño", nullable "Permite nulos"
from all_tab_columns 
where table_name = 'PRUEBA'

El resultado de la consulta anterior:

Campo Tipo de datos Tamaño Permite nulos
ID NUMBER 22 22 N
TEXTO VARCHAR2 2000 Y

Obtener las restricciones de una tabla Oracle Database

La siguiente consulta SQL mostrará todas las restricciones de la tabla "PRUEBA2" (nombre de la restricción, nombre de la tabla, columnas a las que afecta):

select constraint_name "Nombre", table_name "Tabla", 
   column_name "Columnas"
from all_cons_columns  
where table_name = 'PRUEBA2'
  

El resultado de la ejecución de la consulta SQL anterior:
Nombre Tabla Columnas
SYS_C0083714 PRUEBA2 NUMERO
SYS_C0083715 PRUEBA2 ID

Obtener los índices de una tabla Oracle Database

Esta consulta SQL mostrará todos los índices de la tabla "PRUEBA" (nombre del índice, tipo de índice, nombre de la tabla, tablespace en el que se guarda, si es secundario):

select index_name "Nombre", index_type "Tipo", 
   table_name "Tabla", tablespace_name "Tablespace", 
   secondary "Secundario"
from all_indexes 
where table_name = 'PRUEBA'

El resultado de la ejecución de la consulta SQL anterior:

Nombre Tipo Tabla Tablespace Secundario
SYS_C0083713 NORMAL PRUEBA USERS N

Otra forma de mostrar los índices de una tabla Oracle Database, ésta muestra más datos que la anterior: posición, tipo de orden, etc.:

select ai.index_name Nombre, ai.index_type Tipo, ai.uniqueness Unico, 
substr(ic.column_name, 1, 30) Columna, ic.column_position Posicion,
ai.compression Compresion, ai.status Estado, ai.secondary Secundario,
ai.generated Generado, ic.descend Orden, ai.table_owner Propietario_Tabla,
ic.index_owner Propietario_Indice, ic.table_name Nombre_Tabla,
ai.tablespace_name Tablespace
from all_ind_columns ic, all_indexes ai
where ai.index_name = ic.index_name and ai.table_name = 'PRUEBA'

El resultado de la ejecución de la consulta SQL anterior:
Nombre Tipo UNICO COLUMNA POSICION COMPRESION ESTADO
SYS_C0083713 NORMAL UNIQUE ID 1 DISABLED VALID

SECUNDARIO GENERADO ORDEN PROPIETARIO_TABLA
N Y ASC ALONSO

PROPIETARIO_INDICE NOMBRE_TABLA TABLESPACE
ALONSO PRUEBA USERS

Artículos relacionados

  

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft.



Nota: Revisado por AjpdSoft el 16-08-2009.
Revisado por AjpdSoft el 07-01-2008.
Revisado por AjpdSoft el 16-03-2007.

Anuncios


Enviado el Sábado, 20 agosto a las 18:48:34 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A