06 gestion de tablas y vistas.ppt

Upload: franklin-soutcorp

Post on 08-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    1/16

    Gestin de Tablas y Vistas

    Creacin de Tablas

    Se realiza empleando el comando CREATE TABLE,para lo cual se debe contar con lo siguiente:

    Nombre de la tabla.

    Nombre de las columnas.

    Tipo de datos de cada columna.

    Restricciones (Constraints).

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    2/16

    Tanto los nombres de tablas, como los decolumnas, deben guardar relacin con losdatos que albergan.

    Todo nombre debe cumplir con las siguientesreglas:

    Su longitud no podr ser menor a 1 carcter nimayor a 30, siendo el primer carcter alfabtico.

    Unicamente podr contener los siguientescaracteres:

    A-Z, a-z, 0-9,_.

    $ y # son vlidos pero no se recomienda su uso.

    No debe emplearse ninguna palabra reservada.

    Para el caso exclusivo de tablas, su nombre nopodr ser igual al de otro objeto del mismousuario.

    Nombre de Tabla y Columnas

    Tipo de Datos

    Tipo de Dato Descripcin

    CHAR (n) Cadena de caracteres de longitud fija. El tamao mximo esde 2000 bytes y el default es de 1 byte. Equivalente aCHARECTER.

    VARCHAR2 (n) Cadena de caracteres de longitud variable, la cual tiene untamao de longitud mxima de 4000 bytes. Se debeespecificar un tamao en este tipo de dato.

    NUMBER (n,d) Valor numrico con dgitos entre 0-9, opcionalmente utilizasigno (+/-) as como punto decimal; nes el nmero mximo dedgitos y des el nmero mximo de decimales. La precisin denpuede tener un rango de 1 a 38 y la escala d, un rango de 84 a 127. Equivalente a Decimal.

    LONG Cadena de caracteres de longitud variable que puede contenerhasta 2 gigabytes. No se puede definir ms de una columnatipo Long por tabla, tampoco se puede hacer un join de tablascon ella, ni basar una bsqueda. Este tipo de columna slopuede aparecer en un constraint NULL y NOT NULL.

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    3/16

    Tipo de Dato Descripcin

    DATE Valores tipo fecha y hora, desde Enero 1 del ao 4712 AC. ADiciembre 31 del ao 4712 DC.

    INTEGER(n) Dato numrico que entrega valores enteros. Su tamaomximo es 38 dgitos.INTEGER(38) = INT = NUMBER(38).

    LONG RAW Dato binario de longitud variable con un tamao hasta dehasta 2GB.

    BFILE Archivo binario almacenado fuera de la base de datos yreferenciado a partir de un puerto. Capacidad mximasoportada 4GB.

    BLOB Dato binario de gran tamao (hasta 4GB) almacenado en la

    base de datos.

    RestriccionesConstraint Uso

    PRIMARY KEY Identifica de forma nica a cada registro de la tabla.

    CHECK Especifica una condicin que cada registro en latabla debe satisfacer.

    FOREIGN KEY(nombre_columna)

    Designa una columna o combinacin de columnascomo la llave fornea.

    REFERENCES

    tabla(nombre_columna)

    Establece y obliga una relacin entre esta columna y

    la columna de la llave primaria de la tablareferenciada.

    [NOT] NULL Especifica que esta columna no puede contener unvalor nulo.

    UNIQUE Especifica una o varias columnas cuyos valoresdeben ser nicos a travs de todos los renglones.Oracle crea un ndice nico para asegurar esteconstraint.

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    4/16

    Creacin de Tabla

    Ejemplo:

    CREATE TABLE [Usuario.]Tabla

    (Columna1 Tipo_Dato1 [DEFAULT expresion1] [Constraint1],Columna2 Tipo_Dato2 [DEFAULT expresion2] [Constraint2]...);

    SQL> CREATE TABLE empleados2 (cod_emp NUMBER(4) CONSTRAINT pk_emp PRIMARY KEY,3 nombre_emp VARCHAR2(10) CONSTRAINT nn_nombemp NOT NULL4 CONSTRAINT upper_nombemp CHECK (nombre_emp=UPPER(nombre_emp)),5 puesto VARCHAR2(9),6 jefe NUMBER(4) CONSTRAINT fk_jefe REFERENCES empleados(cod_emp),7 fecha_ing DATE DEFAULT SYSDATE,

    8 salario NUMBER(10,2) CONSTRAINT ch_sal CHECK (salario>500),9 comision NUMBER(9,0) DEFAULT NULL,10 cod_dept NUMBER(2) CONSTRAINT nn_coddept NOT NULL11 CONSTRAINT fk_coddept REFERENCES depart(cod_dept) );

    Creacin de Tabla Desde una Consulta

    Ejemplo:

    CREATE TABLE TablaAS Consulta;

    SQL> CREATE TABLE fecha_A2 AS SELECT cod_emp, nombre_emp, fecha_ing

    3 FROM empleados

    4 WHERE cod_dept = 10;

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    5/16

    SALARIO

    2000

    3500

    1700

    1250

    3000

    2500

    2500

    NOMBRE

    Merino

    Rojas

    Perez

    Lopez

    Milla

    Rivas

    Gomez

    CODIGO

    001

    002

    003

    004

    005

    006

    007

    CARGO

    Cajero

    Jefe

    Asistente

    Cajero

    Jefe

    Guardin

    Asistente

    TRABAJADORTRABAJADOR

    NOMBRE

    Perez

    Gomez

    SALARIO

    1700

    2500

    ASISTENTEASISTENTECREATE TABLE asistente

    AS SELECT nombre, salarioFROM trabajadorWHERE cargo = Asistente;

    Modificacin de Tabla

    Toda tabla puede ser modificada en suestructura, tanto a nivel de columna como anivel de restriccin.

    Se realiza mediante el comando ALTER TABLE,el cual puede presentar tres (3) clusulas:

    ADD.- Permite agregar columnas y/orestricciones.

    MODIFY.- Permite modificar columnas.

    DROP.- Permite eliminar columas y/orestricciones.

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    6/16

    Agregar Columnas y/o Restricciones

    Ejemplo:

    ALTER TABLE TablaADD (Columna | Restrccin [Tipo_Dato [DEFAULT expresion] [Constraint]],

    ...);

    SQL> ALTER TABLE fecha_A

    2 ADD (jefe NUMBER(4) );

    SQL> ALTER TABLE fecha_A

    2 ADD CONSTRAINT pk_fecha_A

    3 PRIMARY KEY (cod_emp);

    NOMBRE

    Perez

    Gomez

    SALARIO

    1700

    2500

    ASISTENTEASISTENTE

    JEFE

    Un_asistenteUn_asistente

    JEFE

    Neyra

    Neyra

    NOMBRE

    Perez

    Gomez

    SALARIO

    1700

    2500

    ASISTENTEASISTENTE

    ALTER TABLE asistenteADD( jefe VARCHAR2(20)CONSTRAINT un_asistente UNIQUE);

    JEFE

    Neyra

    Mendez

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    7/16

    Modificar Columnas

    Ejemplo:

    ALTER TABLE TablaMODIFY (Columna Tipo_Dato [DEFAULT expresion],

    ...);

    SQL> ALTER TABLE fecha_A

    2 MODIFY (nombre_emp CHAR(18) );

    Eliminar Columnas y/o Restricciones

    Ejemplo:

    ALTER TABLE TablaDROP [COLUMN | CONSTRAINT] [Columna | Restriccion];

    SQL> ALTER TABLE depart

    2 DROP PRIMARY KEY;

    SQL> ALTER TABLE depart

    2 DROP COLUMN loc;

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    8/16

    NOMBRE

    Perez

    Gomez

    SALARIO

    1700

    2500

    ASISTENTEASISTENTE

    JEFE

    Neyra

    Mendez

    UniqueUnique

    NOMBRE

    Perez

    Gomez

    SALARIO

    1700

    2500

    ASISTENTEASISTENTE

    JEFE

    Neyra

    Mendez

    ALTER TABLE asistenteDROP CONSTRAINT un_asistente;

    JEFE

    Neyra

    Neyra

    Eliminacin de Tabla

    Ejemplo:

    DROP TABLE Tabla;

    SQL> DROP TABLE origtab ;

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    9/16

    Vista

    Objeto que sirve como una representacin lgica deuna o ms tablas.

    Una vista no contiene datos debido a que todos susdatos son derivados de tablas subyacentes.

    Las vistas cuentan con las siguientes ventajas: Seguridad.- Permiten limitar el acceso a ciertos registros,

    acceso a ciertas columnas, y restringe la capacidad deinsertar datos.

    Conveniencia.- Permite el encapsulamiento de consultascomplejas facilitando la generacin de reportes.

    Consistencia.- Siempre muestran informacin consistente

    y actualizada de manera automtica.

    SALARIO

    2000

    3500

    1700

    1250

    3000

    2500

    2500

    NOMBRE

    Merino

    Rojas

    Perez

    Lopez

    Milla

    Rivas

    Gomez

    CODIGO

    001

    002

    003

    004

    005

    006

    007

    CARGO

    Cajero

    Jefe

    Asistente

    Cajero

    Jefe

    Guardin

    Asistente

    TRABAJADORTRABAJADOR

    NOMBRE

    Perez

    Gomez

    SALARIO

    1700

    2500

    V_ASISTENTEV_ASISTENTECREATE VIEW v_asistenteAS SELECT nombre, salarioFROM trabajadorWHERE cargo = Asistente;

    SALARIO

    2000

    2500

    SALARIO

    2000

    3500

    2000

    1250

    3000

    2500

    2500

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    10/16

    Creacin de Vista

    Ejemplo:

    CREATE [OR REPLACE] VIEW [Usuario.]VistaAS Consulta;

    SQL> CREATE VIEW empvu10

    2 AS SELECT cod_emp, nombre_emp, puesto

    3 FROM empleados

    4 WHERE cod_dept = 10 ;

    Creacin de Vista con Alias paraColumnas

    Ejemplo:

    CREATE [OR REPLACE] VIEW [Usuario.]Vista [( Alias [, Alias]...)]AS Consulta;

    SQL> CREATE VIEW empvu10 (codigo, empleado, cargo)2 AS SELECT cod_emp, nombre_emp, puesto

    3 FROM empleados

    4 WHERE cod_dept = 10 ;

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    11/16

    Clusula WITH CHECK OPTION

    Ejemplo:

    CREATE [OR REPLACE] VIEW [Usuario.]Vista [( Alias [, Alias]...)]AS Consulta[WITH CHECK OPTION];

    SQL> CREATE VIEW empvu20

    2 AS SELECT *

    3 FROM empleados

    4 WHERE cod_dept = 20

    5 WITH CHECK OPTION ;

    SALARIO

    2000

    3500

    1700

    1250

    3000

    2500

    2500

    NOMBRE

    Merino

    Rojas

    Perez

    Lopez

    Milla

    Rivas

    Gomez

    CODIGO

    001

    002

    003

    004

    005

    006

    007

    CARGO

    Cajero

    Jefe

    Asistente

    Cajero

    Jefe

    Guardin

    Asistente

    TRABAJADORTRABAJADOR

    CREATE VIEW v_asistente2AS SELECT nombre, salario, cargo

    FROM trabajadorWHERE cargo = AsistenteWITH CHECK OPTION;

    NOMBRE

    Perez

    Gomez

    SALARIO

    1700

    2500

    V_ASISTENTE2V_ASISTENTE2

    CARGO

    Asistente

    Asistente

    CARGO

    Asistente

    Jefe

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    12/16

    Eliminacin de Vista

    Ejemplo:

    DROP VIEW Vista;

    SQL> DROP VIEW empvu10 ;

    Privilegios de Acceso a Tablas yVistas

    Orientados a garantizar la seguridad de loscontenidos de la base de datos.

    Toda tabla y vista de la base de datos presenta unaserie de privilegios los cuales son otorgados de dos

    (2) maneras: Siendo el propietario del objeto.

    Obteniendo privilegios del propietario del objeto.

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    13/16

    Privilegios

    TABLA

    SELECT

    INSERT

    UPDATE

    DELETE

    ALTER

    INDEX

    REFERENCE

    ALL

    VISTA

    SELECT

    INSERT

    UPDATE

    DELETE

    ALL

    Otorgar Privilegios

    Ejemplo:

    GRANT Privilegio [, Privilegio...] | ALL

    ON Tabla | VistaTO Usuario [, Usuario...] | PUBLIC];

    SQL> GRANT ALL

    2 ON empleados

    3 TO PUBLIC ;

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    14/16

    Clusula WITH GRANT OPTION

    Ejemplo:

    GRANT Privilegio [, Privilegio...] | ALLON Tabla | VistaTO Usuario [, Usuario...] | PUBLIC]WITH GRANT OPTION;

    SQL> GRANT SELECT

    2 ON depart

    3 TO prueba

    4 WITH GRANT OPTION ;

    Revocar Privilegios

    Ejemplo:

    REVOKE Privilegio [, Privilegio...] | ALL

    ON Tabla | VistaFROM Usuario [, Usuario...] | PUBLIC];

    SQL> REVOKE INSERT

    2 ON EMPLEADOS

    3 FROM USUARIO ;

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    15/16

  • 7/22/2019 06 Gestion de Tablas y Vistas.ppt

    16/16

    ERROR: syntaxerrorOFFENDING COMMAND: --nostringval--

    STACK:

    (2-06 Gestin de Tablas y Vistas.ppt )/Title()

    /Subject(D:20050912110211)/ModDate()/Keywords(PDFCreator Version 0.8.0)/Creator(D:20050912110211)/CreationDate()/Author-mark-