Preview:
1. DDL (Lenguaje para crear y modificar la estructura)
¿Qué hace?
Construye y cambia las "casas" donde guardamos datos: tablas, bases de datos, índices.

Ejemplos:
Crear una base de datos:

sql
CREATE DATABASE mi_tienda;
Crear una tabla con columnas y llaves primarias:

sql
CREATE TABLE empleados (
  id SERIAL PRIMARY KEY,
  nombre VARCHAR(100),
  salario NUMERIC(10,2),
  departamento VARCHAR(50)
);
Modificar una tabla para agregar una columna:

sql
ALTER TABLE empleados ADD COLUMN fecha_ingreso DATE;
Eliminar una tabla:

sql
DROP TABLE empleados;
Vaciar toda la información de una tabla pero mantenerla:

sql
TRUNCATE TABLE empleados;
2. DML (Lenguaje para manipular datos)
¿Qué hace?
Pone, cambia o borra información dentro de las tablas.

Ejemplos:
Agregar un dato (insertar):

sql
INSERT INTO empleados (nombre, salario, departamento) VALUES ('Ana', 3000, 'Ventas');
Modificar un dato:

sql
UPDATE empleados SET salario = 3200 WHERE nombre = 'Ana';
Borrar un dato:

sql
DELETE FROM empleados WHERE nombre = 'Ana';
3. DQL (Lenguaje para consultar datos)
¿Qué hace?
Hace preguntas para ver qué datos hay dentro.

Ejemplos:
Traer todos los datos:

sql
SELECT * FROM empleados;
Traer solo el nombre y salario de empleados de ventas:

sql
SELECT nombre, salario FROM empleados WHERE departamento = 'Ventas';
Ordenar empleados por salario de más alto a bajo:

sql
SELECT nombre, salario FROM empleados ORDER BY salario DESC;
4. TCL (Lenguaje para controlar transacciones)
¿Qué hace?
Controla guardar o deshacer varios cambios juntos para que no se pierdan datos.

Ejemplos:
Empezar la transacción manual:

sql
BEGIN;
Guardar cambios:

sql
COMMIT;
Deshacer cambios:

sql
ROLLBACK;
5. DCL (Lenguaje para controlar permisos)
¿Qué hace?
Decide quién puede ver o cambiar cosas.

Ejemplos:
Dar permiso para usar una tabla:

sql
GRANT SELECT ON empleados TO usuario;
Quitar permiso:

sql
REVOKE SELECT ON empleados FROM usuario;
Sobre relaciones entre tablas
Se definen en DDL con claves primarias y foráneas para unir tablas, por ejemplo:

sql
CREATE TABLE departamentos (
  id SERIAL PRIMARY KEY,
  nombre VARCHAR(50)
);

CREATE TABLE empleados (
  id SERIAL PRIMARY KEY,
  nombre VARCHAR(100),
  departamento_id INT,
  CONSTRAINT fk_departamento FOREIGN KEY (departamento_id) REFERENCES departamentos(id)
);
Para manipular datos que respetan esa relación usamos DML.

Para consultar usando esas relaciones usamos DQL (con JOIN).

Para asegurar cambios correctos usamos TCL.

Para manejar permisos sobre estas relaciones usamos DCL.

downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter