Sintaxis SQL y Manipulación de Bases de Datos Relacionales

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en con un tamaño de 4,04 KB

Acciones Referenciales en Claves Ajenas

  • CASCADE: Al modificar una fila referenciada, modifica las claves ajenas (foreign keys).
  • SET NULL: Al modificar una fila referenciada, establece en NULL las claves ajenas.
  • SET DEFAULT: Al modificar una fila referenciada, establece un valor por defecto en la clave ajena.

Sentencias de Definición y Modificación de Estructura (DDL)

Eliminar una Tabla

DROP TABLE nombre_tabla (elimina la tabla).

Añadir Restricciones (Constraints)

ALTER TABLE tablanueva
ADD CONSTRAINT pk_tablanueva PRIMARY KEY (columna que modifica);

ALTER TABLE tablanueva
ADD CONSTRAINT fk_tablanueva_tabla_que_existe FOREIGN KEY (columna que modifica)
REFERENCES tabla_que_existe (columna que modifica);

Creación de Vistas (Views)

CREATE VIEW nombre_vista (nombre_columna1, nombre_columna2)
AS
SELECT (las mismas columnas que en el CREATE VIEW, a no ser que no cambien los nombres)
FROM nombre_tabla
WHERE... ETC...;

Sentencias de Manipulación de Datos (DML)

Modificar una Fila

UPDATE nombre_tabla
SET nombre_columna = nuevo_valor
WHERE condicion;

Eliminar una Fila

DELETE
FROM nombre_tabla
WHERE condicion;

Creación de Tabla a partir de una Consulta

CREATE TABLE nombre_tabla_crear
SELECT columnas
FROM nombre_tabla
WHERE
GROUP BY
ETC.

Consultas Avanzadas y Casos Prácticos

Actualización de Tabla a partir de una Consulta

Deseamos elevar en 500€ el salario de todos los empleados cuyo departamento no esté en Madrid:

UPDATE empleados
SET salario = salario + 500
WHERE dep_no NOT IN (SELECT dep_no
                     FROM departamentos
                     WHERE localidad NOT LIKE 'Madrid');

Consultas Multitabla

SELECT e.emp_no, e.dep_no, d.dnombre
FROM empleados e RIGHT JOIN departamentos d
ON e.dep_no = d.dep_no;

Estructura General de una Consulta SELECT

SELECT
FROM
ON
WHERE
GROUP BY
HAVING
ORDER BY

Reglas de Sintaxis y Funciones Útiles

  • Con JOIN (consumir en FROM) -> se utiliza ON.
  • Con GROUP BY -> se utiliza HAVING para filtrar grupos.
  • Uso de IN si hay más de un elemento: (1, 2, 3).

Ejemplo: La suma del salario más la comisión; si en la comisión hay un valor NULL, que tome el valor 0 por ejemplo:

SELECT salario + IFNULL(comision, 0) AS 'con plus'

Control de Transacciones (TCL)

  • COMMIT: Guarda los cambios realizados con CREATE TABLE, ALTER TABLE y DROP TABLE (DDL).
  • ROLLBACK: Permite deshacer los cambios hasta el último COMMIT (aplicable a INSERT, UPDATE, DELETE) (DML).
  • SET AUTOCOMMIT = X: El autoguardado no permite deshacer cambios. Donde X = 1 (ON) y X = 0 (OFF).

Entradas relacionadas: