Академический Документы
Профессиональный Документы
Культура Документы
LENGUAJE DDL
Creación de una tabla:
CREATE TABLE nombre_tabla
( nombre_atributo tipo_de_dato(tamaño) NOT NULL,
nombre_atributo tipo_de_dato(tamaño),
…
CONSTRAINT nombre_atributo_uk UNIQUE,
CONSTRAINT nombre_atributo_ck
CHECK (nombre_atributo BETWEEN a AND b),
CONTRAINT nombre_atributo_pk PRIMARY KEY;
CONTRAINT nombre_atributo_fk FOREIGN KEY (nombre_tabla_procedenciafk)
... );
Para la eliminación/actualización de una clave externa:
FOREIGN KEY (nombre_fk) REFERENCES nombre_tabla (atributos_forman_fk)
[ON DELETE {CASCADE , SET NULL , SET DEFAULT}]
FOREIGN KEY (nombre_fk) REFERENCES nombre_tabla (atributos_forman_fk)
[ON UPDATE {CASCADE , SET NULL , SET DEFAULT}]
CASCADE Si se borra la clave referenciada, se borran las tuplas que la referencian. Si
se actualiza la clave referenciada, se actualizan las tuplas que la
referencian.
SET NULL Si se borra/actualiza la clave referenciada, se ponen a NULL los valores que
la referencian (fk).
SET DEFAULT Si se borra/actualiza la clave referenciada, se ponen los valores que la
referencian a su valor por defecto
En la creación de la tabla debemos introducir los atributos de las tablas así como su tipo y su tamaño y además
las restricciones. Las restricciones son condiciones que tienen que cumplir los valores de las columnas de la
tabla.
Una restricción sólo puede ser creada o borrada, no actualizada.
Una restricción puede ser modificada:
ALTER TABLE nombre_tabla
ADD[CONSTRAINT nombre_clave] tipo_restriccion (nombre_atributo)
REFERENCES nombre_tabla (nombre_atributo*);
Una restricción puede ser borrada para un fk:
ALTER TABLE nombre_tabla
DROP CONSTRAINT nombre_clave;
Una restricción de pk puede ser borrada:
ALTER TABLE nombre_tabla
DROP PRIMARY KEY CASCADE;
De esta manera se elimina la clave primaria y todas las claves externas de esta presentes en otras tablas
(CASCADE).
Para asegurarnos que hemos creado la tabla correctamente ejecutamos la sentencia DESCRIBE que nos
devolverá la descripción de la tabla:
DESCRIBE nombre_tabla;
Tipos de datos:
- VARCHAR2 (size) para cadena de caracteres de longitud variable
- CHAR (size) para cadena de caracteres de longitud fija
- NUMBER(p,s) representa a los números donde p número de dígitos para la parte decimal y s número
de dígitos para la parte entera
- DATE fecha
- LONG cadena de caracteres de longitud variable
Tipos de restricciones:
- NOT NULL el atributo no puede tener como valor null. Un valor nulo no es lo mismo que un 0 o un
espacio en blanco.
- UNIQUE Key no se permiten valores repetidos en la columna
- PRIMARY Key restricción de clave primaria
- FOREIGN Key restricción de clave externa
- CHECK define una condición que debe cumplir los valores de la columna
Existen una gran cantidad de tipos de datos , los presentes son los más utilizados.
Modificación de una tabla:
ALTER TABLE nombre_tabla
ADD/MODIFY ( nombre_atributo tipo_de_dato(tamaño), ...);
Borrar una tabla:
Si pretendemos solo eliminar los datos que están almacenados en la tabla:
DELETE nombre_tabla;
Si lo que queremos es eliminar la existencia de la tabla:
DROP TABLE nombre_tabla CASCADE CONSTRAINT;
Una vez borrado algo , ya no se puede volver a recuperar.
LENGUAJE DML
Añadir tuplas a una tabla:
* Indicamos los atributos a modificar e introducimos los valores de los atributos correspondientes en el orden
descrito en la primera línea de la sentencia. Los atributos no introducidos se valorarán con NULL.
INSERT INTO nombre_tabla [(nombre_atributo1, nombre_atributo2, ...)]
VALUES (valor_atributo1, valor_atributo2 ...);
*No indicamos los atributos porque vamos a modificar todos los valores de los atributos de la tabla.El orden de
la colocación de los valores debe regirse por el orden de los atributos en la declaración de la tabla:
INSERT INTO nombre_tabla
VALUES (valor_atributo1, valor_atributo 2, …)
Los valores tipo carácter y fecha deben ir entre comillas simples.
Modificar tuplas de una tabla:
UPDATE nombre_tabla
SET (nombre_atributo= nuevo_valor , nombre_atributo= nuevo_valor , ...)
[ WHERE condición para actualizar cada una de las tuplas] ;
Si no aparece la cláusula WHERE se modificara el valor del atributo en todas las tuplas de la tabla
correspondiente.
Eliminar tuplas de una tabla:
DELETE [FROM] nombre_tabla
[WHERE condicion para eliminar una tupla];
Como en el caso anterior si no aparece la cláusula WHERE se borraran todas las tuplas de la tabla
correspondiente. En caso de tener la cláusula solo se borrará aquellas que cumplen la condición.
No puedes borrar una fila que contenga una clave primaria que sea usada por una clave externa de otra tabla.
Si alguna de estas operaciones viola alguna restricción, la sentencia no se ejecuta.
Para modificar/borrar filas de una tabla basándose en valores de otra tabla se usan subconsultas.
CONSULTAS EN SQL
Obtener una tabla con una serie de atributos en cuyo caso podemos darle un alias (al igual que el nombre de la
tabla)indicando la tabla de donde procede, el * significa seleccionar todas los atributos de la tabla.
SELECT [DISTINCT] {*, nombre_atributo [alias] , ...}
FROM nombre_tabla [alias];
La cláusula DISTINCT eliminar todos los resultados duplicados, por defecto aparecen las filas duplicadas. Es un
filtrado en columna.
Obtener una tabla con una serie de atributos y cuyas tuplas cumplen una/s ciertas condiciones:
SELECT [DISTINCT] {*, nombre_atributo [alias] , ...}
FROM nombre_tabla
WHERE condición/es;
Este caso es un filtrado en fila o tupla. La condición de la cláusula WHERE puede dividirse en clases según su
gramática:
- Operaciones aritméticas (<,>,=, <=,>=, <> (distinto))
Las expresiones aritméticas que contienen un valor nulo se evalúan como nulas introduciendolas en el
resultado de la consulta. La sentencia:
NVL (nombre_atributo, valor_nuevo);
asigna el nuevo valor al atributo si el valor de la columna es nulo.
- Operadores de comparación:
BETWEEN … AND ... Entre dos valores , estos incluidos