Please enable JavaScript.
Coggle requires JavaScript to display documents.
Bloque 3. Tema 4 - Coggle Diagram
Bloque 3. Tema 4
Lenguaje de manipulación de datos DML
INSERT
INSERT INTO <nombre_tabla> [(<columnas>)] {VALUES ({<v1>|DEFAULT|NULL, .., {<vn>|DEFAULT|NULL}) | <consulta>};
DELETE
DELETE FROM <nombre_tabla>
[WHERE <condiciones>];
UPDATE
UPDATE <nombre_tabla>
SET <nombre_columna> ={<expresión>|DEFAULT|NULL}
[, <nombre_columna> = {<expresión>|DEFAULT|NULL} …] [WHERE <condiciones>];
Operadores
WHERE/HAVING
De comparación
>, <, >=, <=, =, !=
Logicos
AND, OR, NOT
SELECT
SELECT <nombre_columna_seleccionada> [ [AS] <col_renombrada>] [, nombre_columna_seleccionada> [ [AS] <col_renombrada>]…] FROM <tabla> [ [AS] <tabla_renombrada>]
[WHERE <condiciones>]
Predicados
LIKE/ NOT LIKE
IN
BETWEEN valor AND valor
IS NULL
Operador CASE
Elección entre múltiples valores --> CASE expresion WHEN val1 THEN ret1 WHEN val2 THEN ret2 … ELSE retn END
DISTINCT
Para que no aparezcan filas repetidas, después del SELECT
ALL
Si queremos que salga todo incluido filas repetidas, si no especificamos nada después del SELECT sera ALL
Funciones de agregacióm
MAX
MIN
SUM
AVG
COUNT
GROUP BY / HAVING
Group by hace grupos de filas segun la columna que le indique
HAVING son condiciones a nivel de grupo ( Solo podemos utilizar funciones de agregación )
Subconsultas
Es una consulta incluida dentro de una clausula WHERE (o HAVING) de otra consulta
Predicados Aplicables
Cuantificadores(ANY,ALL) :Se usa para comprobar si alguno o todos de los valores de la consulta satisface la comparación con la consulta interna definida
Existencial (EXIST): Indica la existencia o no de un conjunto , se utiliza para comprobar si la consulta interna devuelve algún resultado
ORDER BY
Por defecto ordena ASC pero podemos ponerle DESC, ordena según el atributo o los atributos que le pongamos
Consultas con mas de una tabla
NATURAL JOIN
Es un JOIN pero coge las columnas automáticamente y luego elimina las columnas repetidad
INNER JOIN
= que JOIN pero le cambiamos el nombre
JOIN
Permite crear una tabla a partir de dos tablas, tienen que coincidir valores de las columnas relacionadas * SI es sobre la misma tabla se le llama SELF JOIN
para igualar los atributos podemos usar
ON -> atrib con nombre diferente
USING -> atrib con el mismo nombre
Combinaciones externas OUTER JOIN
RIGHT JOIN
Lo que este a la derecha los que este relacionado y lo que no
FULL JOIN
Coge todo lo que este a la izq a la der este relacionado o no
LEFT JOIN
Lo que este a la izquierda los que este relacionado y lo que no
Producto cartesiano
CROOS JOIN
Une las filas de la izquierda a las de la derecha
UNION / INTERSECT / EXCEPT
INTERSECCIÓN
Devuelve las filas que esten en ambas consultas a la vez, si ponemos ALL devuelve las repetidas también
DIFERENCIA
Devuelve las filas que esten en la primera tabla y no en la segunda, si ponemos ALL devuelve las repetidas también
UNIÓN
Devuelve las filas de una consulta y de la otra sin repetidos, si ponemos ALL devuelve las repetidas también
1 consulta X 2 consulta
Lenguaje de definición de datos DDL
Esquema
Creación
-- CREATE SCHEMA nombre AUTHORIZATION usuario;
Eliminación
-- DROP SCHEMA nombre RESTRICT | CASCADE;
Tablas
Restricciones
Columna
REFERENCES
CONSTRAINT
UNIQUE
NOT NULL
PRIMARY KEY
Tabla
UNIQUE
PRIMARY KEY
FOREIGN KEY
CONSTRAIT
Aserciones
Creación
-- CREATE ASSERTION <nombre_asercion> CHECK (<condiciones>);
Eliminación
-- DROP ASSERTION <nombre_asercion>;
Creación
-- CREATE TABLE nombre (
definicion de columna 1
, ... , restricciones de tabla)
Definición de columna:
nombreColumna tipoDato porDefecto restricciones
Modificación
-- ALTER TABLE nombre
ADD COLUMN
ALTER COLUMN
DROP COLUMN
{ADD <def_restriccion> | DROP CONSTRAINT <nombre_restriccion> {RESTRICT|CASCADE} }
Eliminación
-- DROP TABLE <nombre_tabla> {RESTRICT|CASCADE};
Vista
Creación
-- CREATE VIEW <nombre_vista> [lista_columnas] AS (consulta)
[WITH CHECK OPTION];
Eliminación
-- DROP VIEW <nombre_vista> {RESTRICT|CASCADE};
Dominio
Creación
-- CREATE DOMAIN <nombre_dominio> [AS] <tipo_datos>
[<def_defecto>] [<restricciones_dominio>];
restricciones_dominio --> CONSTRAINT [<nombre_restriccion>] CHECK (<condiciones>)
Modificación
-- ALTER DOMAIN <nombre_dominio> {<acción_modificar_dominio>|
<acción_modificar_restriccion_dominio>}
-acción_modificar_domino := SET { <def_defecto|DROP DEFAULT} accion_modificar_restriccion_dominio := {ADD restriccion_dominio| DROP CONSTRAIT nombre_restriccion}
Eliminación
-- DROP DOMAIN <nombre_dominio> {RESTRICT|CASCADE}
Indice
Creación
-- CREATE INDEX
UNIQUE
<nombre_indice> ON <tabla> (<columna1>, ... )
Eliminación
-- DROP INDEX <nombre_indice>
TRUNCATE
TRUNCATE TABLE <nombre_tabla>
Para eliminar datos de una tabla, elimina la tabla y la crea de nuevo
Lenguajes de control de datos
Transacciones
COMMINT, los cambios que se han hecho en la BD permanecen para siempre
ROLLBACK, Deshace todos los cambios y vuelve al estado anterior
SAVEPOINT, define un punto de recuperación en una transacción para poder revertirla hasta dicho punto mediante ROLLBACK
Autorizaciones
GRANT <privilegios> ON <objeto> TO <usuarios> [WITH GRANT OPTION];
Privilegios= ALL PRVILIGES,USAGE,SELECT,INSERT,UPDATE, DELETE
Objeto= DOMAIN,TABLE,VIEW
WITH GRANT OPTION= Permite dar permisos a otros usuarios
Revocaciones
REVOKE [GRANT OPTION FOR] <privilegios> ON <objeto> FROM <usuarios>;
GRANT OPTION FOR= Retirar el derecho a autorizar permisos a otros usuarios
Procedimientos almacenado
MySQL
CREATE FUNCTION nombrefun (parametros) RETURN tipo BEGIN cuerpo; RETURN valor; END
podemos
CALL nombreproc
DROP PROCEDURE nombreproc
ALTER PROCEDURE nombreproc
ORACLE
CREATE FUNCTION nombre ( parametro tipo, ...) RETURN tipodedato IS variables locales BEGIN sentencia RETURN valor; END ;
podemos
EXEC nombreproc
EXECUTE nompro
DROP PROCEDURE nombreproc
ALTER PROCEDURE nombreproc
SQL Server
CREATE PROCEDURE nesquma.nprocedimiento
atributo
tipo AS SELECT....
podemos
EXEC nombreproc
EXECUTE nompro
DROP PROCEDURE nombreproc
ALTER PROCEDURE nombreproc
Eventos y disparadores
Trigger: Procedimiento almacenado que se ejecuta automáticamente cuando se cumple una condición, se ejecuta cuando sucede un INSERT,UPDATE,DELETE
Estructura: CREATE [OR REPLACE] TRIGGER nombre [temporalidad del evento] OR
[granularidad del evento]
Granularidad: hace referencia a los dos tipos de triggers vistos: a nivel de fila o de
sentencia.
A nivel de sentencia
(FOR EACH STATEMENT):
se ejecuta una única vez, por lo que afecta
a toda la tabla.
A nivel de fila
(FOR EACH ROW)
: se ejecuta por cada una de las filas de la tabla afectadas.
Temporalidad: el disparador se ejecuta antes (BEFORE) o después
(AFTER) del evento que causa la activación del trigger, puede ocurrir que el disparador ejecuta su acción en sustitución de la sentencia correspondiente (INSTEAD OF)
Condición: condición a satisfacer para que se dispare, solo se aplica cuando el disparador es a nivel de fila, usamos OLD para el valor antiguo y NEW para valor nuevo
Acción: Tareas que realiza el trigger
BEGIN cuerpo del trigger
END;
Estándares de conectividad: ODBC y JDBC
ODBC
ES una API estándar de Microsoft que permite a las aplicaciones acceder a la datos indepedientemente del SGBD
Estos drivers esta recogidos en CLI (Call Level Interfece)
Para cada SGBD hay un driver especifico
JDBC
Tipo 1:Puente JDBC-ODBC
Tipo 2: API nativa
Tipo 3: Middleware
Tipo 4: Java puro