CHEATING BASES DE DATOS
proyectopcd8 de Marzo de 2014
4.504 Palabras (19 Páginas)207 Visitas
TIPOS DE DATOS
Tipo Dato Descripción
VARCHAR2(size [BYTE | CHAR]) Cadena de caracteres de longitud variable que tiene como tamaño
máximo el valor de size en BYTE o CHAR. El tamaño máximo es de
4000 bytes o caracteres, y la mínima es de 1 byte o un carácter. Se
debe especificar el tamaño de para VARCHAR2.
NVARCHAR2(size) Cadena de caracteres Unicode de longitud variable con size como
máximo tamaño de longitud. El número de bytes que pueden ser hasta
dos veces el tamaño de codificación AL16UTF16 y tres veces el
tamaño de la codificación UTF8. El tamaño máximo está determinado
por la definición del juego de caracteres nacional, con un límite
máximo de 4000 bytes. Se debe especificar el size de NVARCHAR2.
NUMBER [ (p [, s]) ] Número con p precisión (parte entera) y s escala (parte decimal). La
precisión p puede variar de 1 a 38. La s escala puede variar desde -84
hasta 127. Tanto la precisión y la escala se encuentran en dígitos
decimales. Un valor numérico requiere 1 a 22 bytes.
FLOAT [(p)] Un subtipo del tipo de datos NUMBER con precisión p. Un valor de
coma flotante se representa internamente como un NUMBER. La
precisión p puede variar desde 1 hasta 126 dígitos binarios. Un valor
flotante requiere 1 a 22 bytes.
LONG Tipo de datos de caracteres de longitud variable de hasta 2 gigabytes,
o 231 -1 bytes. Permanece para compatibilidad con versiones
anteriores de Oracle.
DATE Intervalo de fechas válidas del 1 de enero de 4712 antes de Cristo a el
31 de diciembre de 9999. El formato por defecto se determina
explícitamente por el parámetro NLS_DATE_FORMAT o implícitamente
por el parámetro NLS_TERRITORY. El tamaño es de 7 bytes. Este tipo
de datos contiene los campos de fecha y hora AÑO, MES, día, hora,
minuto y segundo. No tiene fracciones de segundo o de una zona
horaria.
BINARY_FLOAT Número en coma flotante de 32 bits. Este tipo de datos requiere 4
bytes.
BINARY_DOUBLE Número en coma flotante de 64 bits. Este tipo de datos se requieren
de 8 bytes.
TIMESTAMP
[(fractional_seconds_precision)]
Año, mes y día como valores de la fecha, así como la hora, minutos y
segundos como valores de tiempo, donde
fractional_seconds_precision es el número de dígitos en la parte
fraccionaria del segundo del campo datetime. Los valores aceptados
de fractional_seconds_precision son del 0 al 9. El valor por defecto es
6. El formato por defecto se determina explícitamente por el
parámetro NLS_TIMESTAMP_FORMAT o implícitamente por el
parámetro NLS_TERRITORY. El tamaño es de 7 o 11 bytes,
dependiendo de la precisión. Este tipo de datos contiene los campos
datetime AÑO, MES, DIA, HORA, MINUTO y SEGUNDO. Contiene las
fracciones de segundo, pero no tiene una zona horaria.
TIMESTAMP
[(fractional_seconds_precision)]
WITH TIME ZONE
Todos los valores de TIMESTAMP, así como el valor de tiempo de
desplazamiento de la zona, donde fractional_seconds_precision es el
número de dígitos en la parte fraccionaria del segundo del campo
datetime. Los valores aceptados son del 0 al 9. El valor por defecto es
6. El formato por defecto se determina explícitamente por el
parámetro NLS_TIMESTAMP_FORMAT o implícitamente por el
parámetro NLS_TERRITORY. El tamaño se fija en 13 bytes. Este tipo
de datos contiene los campos datetime AÑO, MES, DIA, HORA,
MINUTO, SEGUNDO, TIMEZONE_HOUR y TIMEZONE_MINUTE. Cuenta
con las fracciones de segundo y una zona horaria explícita.
TIMESTAMP [(fractional_seconds)]
WITH LOCAL TIME ZONE
Todos los valores de TIMESTAMP WITH TIME ZONE, con las siguientes
excepciones:
* Los datos se normalizan con la zona horaria de base de datos
cuando se almacenan en la base de datos.
* Cuando se recuperan los datos, los usuarios ven los datos en la zona
de tiempo de la sesión.
El formato por defecto se determina explícitamente por el parámetro
NLS_TIMESTAMP_FORMAT o implícitamente por el parámetro
NLS_TERRITORY. El tamaño es de 7 o 11 bytes, dependiendo de la
precisión.
INTERVAL YEAR
[(year_precision)] TO MONTH
Almacena un período de tiempo en años y meses, donde
year_precision es el número de dígitos en el campo datetime AÑO. Los
valores aceptados son del 0 al 9. El valor predeterminado es 2. El
tamaño se fija en 5 bytes.
INTERVAL DAY [(day_precision)]
TO SECOND
[(fractional_seconds)]
Almacena un período de tiempo en días, horas, minutos y segundos,
donde
* day_precision es el número máximo de dígitos en el campo datetime
DÍA. Los valores aceptados son del 0 al 9. El valor predeterminado es
2.
* fractional_seconds_precision es el número de dígitos en la parte
fraccionaria del campo SEGUNDO. Los valores aceptados son del 0 al
9. El valor por defecto es 6.
El tamaño se fija en 11 bytes.
RAW(size) Datos binarios sin formato de longitud size. El tamaño máximo es de
2000 bytes. Se debe especificar el tamaño de un valor RAW.
LONG RAW Datos binarios de tipo RAW de longitud variable hasta 2 gigabytes.
ROWID Cadena en base 64 que representa la dirección única de una fila en la
tabla. Este tipo de datos es principalmente para los valores devueltos
por la pseudo columna ROWID.
UROWID [(size)] Cadena en base 64 que representa la dirección lógica de una fila de
una tabla de índice organizado. El tamaño opcional es el tamaño de
una columna de tipo UROWID de Oracle. El tamaño máximo y por
defecto es de 4000 bytes.
CHAR [(size [BYTE | CHAR])] Cadena de caracteres de longitud fija de size bytes de tamaño o size
de caracteres. El tamaño máximo es de 2000 bytes o caracteres, el
tamaño predeterminado y mínimo es de 1 byte.
NCHAR[(size)] Cadena de caracteres de longitud fija de size caracteres de tamaño de
largo. El número de bytes pueden ser hasta dos veces el tamaño de
codificación AL16UTF16 y tres veces el tamaño de la codificación
UTF8. El tamaño máximo está determinado por la definición del juego
de caracteres nacional, con un límite máximo de 2000 bytes. El
tamaño predeterminado y mínimo es de un carácter.
CLOB Un objeto de tipo LOB que contiene caracteres de un byte o multibyte.
Son compatibles tanto de ancho fijo y conjuntos de ancho variable de
caracteres, con el carácter de base de datos establecida. El tamaño
máximo es (4 gigabytes - 1) * (tamaño del bloque de la base de
datos).
NCLOB Un objeto de tipo LOB que contiene caracteres Unicode. Son
compatible tanto de ancho fijo y conjuntos de ancho variable de
caracteres, con el conjunto base de datos de carácter nacional. El
tamaño máximo es (4 gigabytes - 1) * (tamaño del bloque de la base
de datos). Guarda los datos nacionales sobre el conjunto de
caracteres.
BLOB Un objeto de tipo LOB binario. El tamaño máximo es (4 gigabytes - 1)
* (tamaño del bloque de la base de datos).
BFILE Contiene un localizador a un archivo binario almacenado fuera de la
base de datos. Permite flujo de bytes de E/S para el acceso a LOB
externos que residen en el servidor de base de datos. El tamaño
máximo es de 4 gigabytes.
Disparadores
CREATE [OR REPLACE] TRIGGER nombre
momento acontecimiento ON tabla
[[REFERENCING (old AS alias_old|new AS alias_new)
FOR EACH ROW
[WHEN condicion]]
bloque_PL/SQL;
Sintaxis:
CREATE OR REPLACE TRIGGER nombredisparador
momento-- BEFORE, AFTER O INSTEAD OF
evento-- INSERT, UPDATE O DELETE
of CAMPOS-- solo para update
on NOMBRETABLA
NIVEL--puede ser a nivel de sentencia (statement) o de fila (for each row)
when CONDICION--opcional
begin
CUERPO DEL DISPARADOR--sentencias
END nombredisparador;
Se dispara automáticamente después de la modificación del salario de la tabla empleado y pase un
comentario a la tabla auditar.
Create or replace trigger auditar_salario
after update of salario
on empleado
for each row
begin
insert into auditar values
('se ha modificado el salario' || :old.num_empleado);
end;
Un trigger que nos guarda los datos de un usuario al hacer login en la base de datos:
create or replace trigger control
after logon
on database
begin
insert into control_conexion (usuario, momento, evento)
values {ORA_LOGIN_USER, SYSTIMESTAMP, ORA_SYSEVENT);
end;
Comprueba las veces que se ha actualizado la tabla.
CREATE OR REPLACE TRIGGER TR_ACTUALIZAR_PRODUCTOS
BEFORE UPDATE ON PRODUCTS
FOR EACH ROW
BEGIN
INSERT INTO PRUEBA VALUES <USER, SYSDATE>;
END TR_ACTUALIZAR_PRODUCTOS;
Un agente debe pertenecer a una familia o una oficina pero no puede pertenecer a una familia y a una
oficina a la vez.
CREATE OR REPLACE TRIGGER integridad_agentes
BEFORE INSERT
...