1. CREACION DE TABLAS : VISION GENERAL
El nombre para una tabla debe seguir las reglas estándar usadas para el
nombrado de cualquier objeto de la base de datos ORACLE.
Requerimientos de la sentencia CREATE TABLE
• Nombre de tabla
• Nombre de columna
• Tipo de dato de la columna
Reglas de Nombrado
1 Deben ser de 1-30 caracteres de largo y el primer caracter debe ser alfabetico
2 Debe contener unicamente los caracteres :
• A-Z, a-z, 0-9, _ (underscore / subrayado)
• ($ and # son caracteres válidos, pero no se aconseja su uso)
3 No pueden ser palabras reservadas de ORACLE o de alguno de sus productos
4 No deben tener el nombre de otro objeto dentro del mismo esquema de ORACLE
2. CREANDO TABLAS
TIPO DATO PUEDE CONTENER
VARCHAR2 Cadena de caracteres de largo variable, admite mayúsculas, minúsculas,
(size) núneros y caracteres especiales (+,-,%,$,y asi susecivamente). Su tama-
ño máximo es 4000 caracteres de largo, El tamaño debe ser especificado.
DATE Valores de fecha y hora, entre Enero 1 del 4712 A.C. hasta Diciembre 31
del 9999 D.C.
LONG Próximo a descontinuarse, es similar a un CHAR, puede almacenar hasta
2 gigabytes. Solo una columna LONG puede ser defina por tabla. No
puede utilizarse para establecer JOINS ni para establecer criterios de
consulta. Se recomienda usar columnas LOB (CLOB o BLOB).
NUMBER(p,s) Valores numéricos consistentes de los dígitos 0-9, donde “p” es la presión
hasta 38 posiciones y “s” es la escala o número de dígitos despues del
punto decimal (en un rango de –84 a +127), admite el signo (+ o -) y el
punto decimal. Soporta punto flotante o su equivalente en presición
decimal (el punto decimal y el signo, si existen, no cuentan como dígitos).
[NOT]NULL Especifica que esta columna no puede contener valores nulos.
3. CREANDO TABLAS
(RESTRICCION)
CONSTRAINT UTILIZACION
PRIMARY KEY La única que identifica a cada fila de la tabla.
CHECK Especifica una condición que debe ser verdadera.
FOREIGN KEY
/column_name) Establece e impone una relación entre la columna
involucrada y la columna “Llave primaria” de la tabla
REFERENCES referenciada.
(column_name
[NOT]NULL Especifica que la columna NO puede contener un valor nulo.
UNIQUE Especifica una columna o columnas cuyos valores deben ser
únicos a través de todas las filas de la tabla.
4. CREANDO TABLAS
Una restricción de integridad es un modo declarativo de definir las
reglas de un negocio que afectan a una columna en particular . Las
restricciones de integridad permiten que los diseñadores de aplica-
ciones delimiten el rango de valores aceptados por una tabla.
CREATE TABLE [user.]table_name
({column_name datatype | table_constraint)
[,{column_name datatype | table_constraint}]..)
l2p9e1
Se puede crear una nueva tabla usando la cláusula AS en la sentencia
CREATE TABLE, heredando los atributos de las columnas y los datos
de la tabla existente.
CREATE TABLE table_name [(column1_name,column2_name..)]
AS query
l2p11e1,2,3
5. MODIFICANDO TABLAS
Use la sentencia ALTER TABLE para cambiar la definición de una tabla :
• añadiendo columnas o “constraints”.
• modificando la definición de las columnas (tipos de datos, NOT
NULL, largo, etc.).
ALTER TABLE table_name
ADD ({column_name datatype | table_constraint) l2p12e1
[,{column_name datatype | table_constraint}]..)
ALTER TABLE table_name
MODIFY ({column_name datatype | table_constraint} l2p13e1
[, {column_name datatype | table_constraint}]...)
DROP TABLE table_name l2p13e2
l2p15e1,2,3
6. Una vista no contiene datos. Todos los datos son derivados de
VISTAS la(s) tabla(s) original(es) asociada(s). Represente lógicamente una
o más tablas a través de una Vista.
REVISION
GENERAL Ventajas de las Vistas:
. Seguridad – Restringe el acceso ocultando filas o columnas.
. Conveniencia – Simplifica la programación.
. Perspectiva – La información puede tomar otra faceta.
Tabla PERSONAL
PERS_COD PERS_DATOS PERS_JEFE PERS_FECHA_CONTRATO PERS_BONO DEPA_COD
-------- -------------------- --------- ------------------- --------- --------
101 JORGE ITURRALDE 05-JAN-00 1500 00
102 CAROLINA JOFRE 101 21-JAN-00 1000 00
Vista VPERSONAL
155 SEBASTIAN CAPQUIQUE 153 30-JAN-00 05
PERS_COD PERS_DATOS 104 GERMAN ARAUJO
DEPA_COD 101 20-FEB-00 00
-------- -------------------- FIGUEROA
159 OMAR -------- 150 27-FEB-00 05
101 JORGE ITURRALDE ROBERTO GUZMAN
109 00 107 25-MAY-00 01
102 CAROLINA JOFRE FRANCISCO 00
157 MAYTA 156 28-MAY-00 05
155 SEBASTIAN CAPQUIQUE
111 JAVIER NERI05 107 28-JUN-00 150 01
104 GERMAN ARAUJO ALBERTO ARANCIBIA
152 00 150 25-AUG-00 05
159 OMAR FIGUEROA 05
154 RIGOBERTO CHUQUIMIA 153 28-SEP-00 500 05
109 ROBERTO GUZMAN 01
108 TERESA MOLLINEDO 107 25-NOV-00 200 01
157 FRANCISCO MAYTA 05
111 JAVIER NERI 105 YOVANA FERNADEZ
01 102 26-JAN-01 500 00
153 DANILO FERRUFINO
152 ALBERTO ARANCIBIA 05 150 27-JAN-01 05
156 BERNARDO GUZMAN
154 RIGOBERTO CHUQUIMIA 05 150 27-JAN-01 05
150 ALEJANDRO 01
108 TERESA MOLLINEDO TORRES 102 21-MAR-01 1000 05
105 YOVANA FERNADEZ 00
153 DANILO FERRUFINO 05
156 BERNARDO GUZMAN 05
150 ALEJANDRO TORRES 05
7. CREANDO VISTAS
Se crea una vista de forma similar a la creación de una tabla, utilice la cláusula
AS SELECT.
CREATE VIEW view_name [(alias, [alias]......)
PERSONALVU AS query
l2p19e1,2
VISTA
ATRIBUTOS
PERSONAL DROP VIEW view_name
TABLA
l2p19e3
l2p20e1,2
l2p21e1,2
8. CREANDO VISTAS
Para asegurar que sentencias INSERT o UPDATE realizadas a través de una
vista, no afecten datos que la vista esta inhabilitada para seleccionar, utilizar la
cláusula WITH CHECK OPTION.
CREATE VIEW view_name [(alias, [alias].......)
AS query
[WITH CHECK OPTION [CONSTRAINT constraint]]
PERSINALVU l2p23e1,2
Sintaxis SELECT
VISTA
SELECT...
FROM...
CREATE VIEW EMPVU WHERE TABLA
AS WITH CHECK OPTION
PERSONAL
9. REVISION DEL ACCESO A TABLAS Y VISTAS
Los privilegios en Oracle se dividen en :
• Privilegios de Sistema
Roles El rol DBA por ej. permite a un desarrollador
• Privilegios de Objetos
sobrepasar muchos privilegios estándar que
normalmente requiere para usar los objetos de
SERVER la base de datos.
S System Privileges
DBA ROL
Y • GRANT/REVOKE privilegios
S RESOURCE ROL
• Correr exports/Imports totales de la BD
T CONNECT ROL • Modificar la estructura de la Base de Datos
E
M Algunos roles como RESOURCE y CONNECT son
mantenidos en Oracle 8i por compatibilidad
Table View RESOURCE - CREATE Tablas, Secuencias, Triggers,
Procedimientos, Clusters.
CONNECT - CREATE/ALTER Session,
CREATE Database Links , Sinónimos.
10. REVISION DE PERMISOS PARA EL ACCESO A
TABLAS Y VISTAS
El creador de un objeto tiene control total del acceso al mismo, dentro de
su dominio (esquema).
SERVER
S
Y DBA ROL
S RESOURCE ROL
T
E CONNECT ROL
M
Table View
SELECT SELECT
INSERT INSERT
UPDATE UPDATE
DELETE DELETE
ALTER ALL
INDEX
REFERENCE
ALL
11. REVISION DE PERMISOS PARA EL ACCESO
A TABLAS Y VISTAS
Como DBA o dueño de una tabla, use el comando GRANT
y sus opciones para proveer de varios niveles de acceso a los
objetos de la base de datos
GRANT privilege, privilege....[or ALL]
ON table/view_name
TO user1_name, user2_name....[or PUBLIC]
[WITH GRANT OPTION]
12. VISION GENERAL DE SINONIMOS
Los Sinónimos pueden ser creados por razones de seguridad y
conveniencia.
Niveles de Sinónimos
• PUBLIC - públicos
• PRIVATE - privados
Ventajas de los Sinónimos
• Posibilidad de referenciar la Tabla/vista sin necesidad de especificar
al dueño (o la base de datos)
• Flexibilidad porque permite personalizar utilizando convenciones
de nombrado mas significativos.
CREATE SYNONYM synonym_name
FOR table_name