SQL
Para acceder y manipular la información en un sistema de gestión de base de datos (SGBD) se utiliza SQL.
SQL expone 4 tipo de operaciones:
SELECT
para listar registros de las tablas.INSERT
para insertar registros.UPDATE
para actualizar registros.DELETE
para eliminar registros.
SQL no diferencia entre mayúsculas y minúsculas. SELECT
es lo mismo que select
;
Listando registros con SELECT
La sintaxis más simple del SELECT
es la siguiente:
SELECT <columnas> FROM <tabla>;
Si quieres mostrar todas las columnas de la tabla utiliza *
. Por ejemplo:
SELECT * FROM rooms;
SELECT hotel_id, number FROM rooms;
Puedes agregar condiciones con WHERE
:
SELECT * FROM rooms WHERE hotel_id = 3;
Insertando registros con INSERT
La sintaxis para insertar un registro es la siguiente:
INSERT INTO <tabla> (<columnas>) VALUES (<valores>);
Por ejemplo:
INSERT INTO rooms (hotel_id, number, size, price) VALUES (2, 405, 45, 500);
Actualizando registros con UPDATE
La sintaxis para actualizar registros es la siguiente:
UPDATE <tabla> SET <campo1>=<valor1>, <campo2>=<valor2> WHERE <condiciones>;
Por ejemplo:
UPDATE rooms SET number='406' WHERE id = 1;
Eliminando registros con DELETE
La sintaxis para eliminar registros es la siguiente:
DELETE FROM <tabla> WHERE <condiciones>;
Por ejemplo:
DELETE FROM rooms;
DELETE FROM rooms WHERE size > 200;
Opciones del SELECT
Las sentencias SELECT se pueden utilizar para hacer consultas complejas a la Base de Datos.
AND
Se utiliza cuando el WHERE
tiene dos o más condiciones en donde todas se deben cumplir.
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
OR
Se utiliza cuando el WHERE
tiene dos o más condiciones en donde alguna se debe cumpliar:
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
Puedes mezclar AND
y OR
pero debes utilizar paréntesis para agrupar donde sea necesario.
LIMIT
Se utiliza para limitar el número de registros que retorna la consulta.
SELECT column1, column2, ...
FROM table_name
LIMIT 10
OFFSET
Se utiliza para saltar un número determinado de registros. Generalmente se utiliza en conjunto con LIMIT
para paginar:
SELECT column1, column2, ...
FROM table_name
LIMIT 10
OFFSET 50
ORDER BY
Se utiliza para ordenar los resultados de forma ascendente o descendente por uno o más campos de la consulta.
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC;
En vez de ASC
(ascendente) puedes utilizar DESC
(descendente).
GROUP BY
Se utiliza para agrupar registros por uno o más campos.
SELECT column1, column2, ...
FROM table_name
GROUP BY column1, column2, ...
Generalmente se usa en conjunto a alguna de las siguiente funciones: COUNT
, MAX
, MIN
, SUM,
AVG`.
COUNT
Se utiliza para contar los registros de una consulta:
SELECT COUNT(column_name)
FROM table_name;
MIN
Selecciona el menor valor de una columna:
SELECT MIN(column_name)
FROM table_name;
MAX
Selecciona el mayor valor de una columna:
SELECT MAX(column_name)
FROM table_name;
SUM
Se utiliza para sumar los valores de una columna:
SELECT SUM(column_name)
FROM table_name;
AVG
Se utiliza para sacar el promedio de los valores de una columna:
SELECT AVG(column_name)
FROM table_name;
JOINS
Se utilizan para unir información de dos o más tablas.
La sintaxis básica de un JOIN
es la siguiente:
SELECT column1, column2, ...
FROM table1 JOIN table2 ON table1.column1 = table2.column2
Existen diferentes tipos de JOIN
:
JOIN
(oINNER JOIN
): muestra los registros que tienen coincidencias en las dos tablas.LEFT JOIN
: muestra todos los registros de la tabla izquierda, y los que coincidan a la derecha. Este es elJOIN
más común.RIGHT JOIN
: muestra todos los registros de la tabla derecha, y los que coincidan a la izquierda.FULL JOIN
: muestra todos los registros de las dos tablas.
Imágenes tomadas de https://www.w3schools.com/sql/sql_join.asp.