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
NULLlas 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 TABLEyDROP TABLE(DDL). - ROLLBACK: Permite deshacer los cambios hasta el último
COMMIT(aplicable aINSERT,UPDATE,DELETE) (DML). - SET AUTOCOMMIT = X: El autoguardado no permite deshacer cambios. Donde
X = 1(ON) yX = 0(OFF).