Comandos básicos en MySQL (I)


Me encuentro actualmente estudiando para los exámenes finales del primer semestre del módulo de grado superior de Programación de Aplicaciones Web. He pensado en hacer un resumen de las órdenes básicas fundamentales y su sintaxis en MySQL con sus correspondientes ejemplos. En esta primera parte, los ejemplos que utilizo están sacados de los ejercicios del examen de la unidad 3 y están usando una tabla de un sistema sanitario.

SELECT nos muestra los registros de una tabla. Este ejemplo nos muestra toda la tabla “doctor”.

SELECT *
FROM doctor

Podemos usar AS para definir el nombre de la columna en que se incluyen los datos.
Podemos usar WHERE y AND para filtrar resultados hacia donde nos interese.

SELECT hospital.hospital_cod AS "Codi" , nom AS "Nom"
FROM hospital, doctor
WHERE  hospital.hospital_cod LIKE doctor.hospital_cod
AND especialitat = 'Cardiologia';

Podemos ordenar los resultados. En el ejemplo, en orden alfabético ascendente.
(NOTA: el ASC no es necesario ponerlo, se presupone por defecte. En orden descendente sería DESC)

SELECT * FROM malalt
WHERE sexe LIKE "D"
ORDER BY cognom ASC;

Podemos sumar valores con sum() y agrupar con GROUP BY.

SELECT funcio, sum(salari)
FROM plantilla
WHERE funcio LIKE "Infermer" OR funcio = "Infermera"
AND hospital_cod LIKE 22
GROUP BY funcio;

Si queremos mostrar todos los valores que empiezan por 28, podemos usar el símbolo “%“.
Es uno de los muchos operadores que tiene MySQL.

SELECT * FROM malalt
WHERE NSS LIKE "28%";

Podemos usar multiples SELECTS para sacar valores de otras tablas.

SELECT * FROM doctor
WHERE especialitat LIKE 
(SELECT especialitat 
FROM doctor 
WHERE cognom LIKE "Nico P.");

Y para acabar una muestra de una operación SELECT usando JOIN. En este caso me permite hacer una consulta que incluye tres tablas.
Para saber un poco más de sus tipos, este enlace.

SELECT cognom, hospital.nom
FROM malalt
INNER JOIN ingressos
ON malalt.inscripcio LIKE ingressos.inscripcio
INNER JOIN hospital
ON ingressos.hospital_cod LIKE hospital.hospital_cod
WHERE hospital.nom LIKE "Provincial";