Nvidal’s Blog

Just another WordPress.com weblog

Curso Basico de SQL (Capitulo III)

CAPITULO III – SENTENCIAS DML

Creación De Sinónimos: 

Los objetos de Base de Datos pertenecen a usuarios y cuando son de otros usuarios para verlos se necesitan permisos y referirlos con el nombre del usuario (dueño), un punto y luego el nombre del objeto (USUARIO.NOMBRE_OBJETO). Para evitar esto nos asistimos de los sinónimos, los cuales pueden ser publicos o privados.

Sintaxis:

            CREATE [PUBLIC] SYNONYM synonym_name FOR user.table_name;

            Synonym_name           Nombre del sinónimo.

            User                            Nombre del usuario dueño de la tabla.

            Table_name                Nombre de la Tabla a la que se le hace el sinónimo.

Los sinonimos publicos estan disponible para todos los usuarios, los privados solo para el usuario que los creo. Se puede tener ambos, en este caso oracle utiliza primero el privado.

Ejemplos:

1)      Veamos a crear un sinónimo privado de la tabla ciudades del usuario scott.

SQL> DESC scott.cities

Name                            Null?    Type

——————————- ——– —-

STATE                                    VARCHAR2(2)

CITY                                     VARCHAR2(25)

POPULATION                               NUMBER(8)

WHITE                                    NUMBER(6,2)

BLACK                                    NUMBER(6,2)

HISPANIC                                 NUMBER(6,2)

ASIAN                                    NUMBER(6,2)

OTHER                                    NUMBER(6,2)

CREATE SYNONYM cities FOR scott.cities;           

SQL> DESC cities

Name                            Null?    Type

——————————- ——– —-

STATE                                    VARCHAR2(2)

CITY                                     VARCHAR2(25)

POPULATION                               NUMBER(8)

WHITE                                    NUMBER(6,2)

BLACK                                    NUMBER(6,2)

HISPANIC                                 NUMBER(6,2)

ASIAN                                    NUMBER(6,2)

OTHER                                    NUMBER(6,2)

 2)      Este comando crea un sinónimo público de la tabla item del usuario scott.

 CREATE PUBLIC SYNONYM item FOR scott.item;

Creación De Índice a Tablas  

El acceso a los datos de las tablas en oracle es bastante rápido, pero cuando la tabla es grande es necesario utilizar índice para optimizar estos accesos. Los índices nos permiten el acceso rápido de la data de una tabla, siempre y cuando estos sean usados correctamente. Se debe estar consciente de los índices que se crean, ya que estos ocupan muchos espacios de almacenamiento en disco y si no se definen adecuadamente en vez de ayudar nos perjudican.

Oracle crea un índice implícito por cada Primary Key, si se tiene un modelo de data normalizado a lo mejor  se tenga que crear muy pocos índices en adición a los creados por los PK.

            CREATE [UNIQUE] INDEX index_name

            ON table_name (column_name [ASC|DESC], column_name [ASC|DESC],….)

            Index_name                 Nombre del índice a crear.

            Unique                                    Unico, los valores del índice no se repiten.

            table_name                  Nombre de la Tabla a la que se le hace el índice.

            column_name              Nombre de columna por la que se ordenará el índice.

            Asc|Desc                     Para ordenar el índice de manera ascendente o

Descendente por columna. El default es Asc.

Ejemplos:

1)        Crea el índice nom_estudiantes a la tabla de estudiantes por la columna nombre en forma ascendente.

CREATE INDEX nom_estudiante ON estudiantes (nombre asc);

2)        Crea el índice calif_notas a la tabla de notas por las columnas materia descendente y matricula ascendente.

CREATE INDEX calf_notas ON notas (materia desc,matricula  asc)

Eliminación de Objetos:

La sentencia DROP elimina de manera definitiva un objeto de la Base de Datos.

Drop Table:

Una tabla se puede borrar si no tiene ninguna tabla que dependa de ella. En el caso que existan dependencias (hijos) se deben borrar primero los hijos y luego la tabla (padre), al menos que se  utilice la cláusula CASCADE CONSTRAINT que borra todas las relaciones de la tabla; el uso de esta cláusula no es recomendada al menos que se esté seguro de lo que se hace.

Sintaxis:

            DROP TABLE tabla [CASCADE CONSTRAINT];

Tabla                                       Nombre de la tabla a borrar.

CASCADE CONSTRAINT     Borra la tabla y sus relaciones con otras tablas.

Ejemplos:

1)      Borra la tabla de materias.

DROP TABLE materias;

            No se pudo borrar porque la tabla de notas depende de ella.

2)      Borra la tabla de materias  con todas sus relaciones.

DROP TABLE materias CASCADE CONSTRAINT;

Drop Index:

Este comando se utiliza para borrar los índices de las tablas. Estos no se modifican, se eliminan y se vuelven a crear. Al borrar una tabla automáticamente borra los índices de ésta.

Sintaxis:

            DROP INDEX índice;

            Índice                          Nombre del Índice a borrar.

 Ejemplos:

 1)  Borra el índice nom_estudiante de la tabla estudiantes.

             DROP INDEX nom_estudiante;

 Drop Synonyms:

Para Eliminar sinónimos. Los sinónimos son objetos independientes, no dependen de las tablas.

DROP [PUBLIC] SYNONYM sinónimo;

Sinónimo                     Nombre de sinónimo a borrar. 

Nota:  si el sinónimo es public se debe emplear la cláusula PUBLIC.

 

Ejemplos:

1)  Borra el sinónimo privado  cities creado a la tabla cities del usuario scott.

                 DROP SYNONYM cities;

                 Si el sinónimo es público seria:       

                 DROP PUBLIC SYNONYM cities;

 Truncando Tablas:

Truncate Table

Esta es una manera  rápida de borrar una tabla. Este comando es muy peligroso, se debe tener mucho cuidado con su uso, ya que a diferencia del DELETE, UPDATE, INSERT que necesitan del COMMIT para grabar definitivamente la información; este graba automáticamente.

Sintaxis:

            TRUNCATE  TABLE  Table_name;

Ejemplo:        

Para borrar todos los registros de la tabla deptos :

            TRUNCATE TABLE deptos;

EJERCICIO I

1)      Crear un índice llamado nom_empleados_ind a la tabla de EMPLEADOS por  el nombre del empleado.

2)      Crear un índice fk2_trans_emplados a la tabla de TRANS_X_EMPLEADOS  por el código del empleado.

3)      Crear un índice sec_transaccion_ind de la tabla TRANS_X_EMPLEADOS sobre las columnas secuencia de transacción de forma descendente y  fecha de transacción ascendente.

4)      Borrar el  índice calif_notas de la tabla NOTAS.

5)      Borrar las tablas NOTAS Y ESTUDIANTES.

6)      Borrar el índice sec_transaccion_ind de la tabla TRANS_X_EMPLEADOS.

septiembre 28, 2009 - Posted by | Database

Aún no hay comentarios.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: