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-