SQL Selección de datos (I)

-- sentencias sql para consultar los datos
-- Leer

-- SELECT  campo1,campo2,... | * FROM nombre_tabla [WHERE condicion]
USE sanpatras;
-- Nombre y apellidos de todos los pacientes
SELECT nombre,apellidos FROM paciente;

-- Asterisco es igual a todos los campos
SELECT * FROM paciente;

-- Podemos utilizar el nombre de la base de datos como prefijo
SELECT * FROM sanpatras.paciente;

-- Muestra todos los campos de los pacientes cuyo teléfono es '666'
SELECT * FROM paciente where telefono='666';

-- =, <, <=, >,>=, <>
-- Con el id igual a 1
SELECT * FROM medico where idmedico=1;

-- Con el id mayor que 5
SELECT * FROM medico where idmedico>5;

-- Con el id diferente de 1
SELECT * FROM medico where idmedico<>1;

-- Entre un rango puedo usar comparadores normales o BETWEEN

SELECT * FROM medico where idmedico>=2 and idmedico<=5;

SELECT * FROM medico where idmedico between 2 and 5;

-- Lo mismo para cadenas

SELECT * FROM medico where nombre>='l';

SELECT * FROM medico where nombre between 'l' and 'n';

-- Médicos que se llamen Miguel Y su id sea mayor que 7
SELECT * FROM medico where nombre='Miguel' AND idmedico>7;

-- Médicos que se llamen Miguel O se llamen Laura
SELECT * FROM medico WHERE nombre='Miguel' OR nombre='Laura';

-- Médicos que NO se llamen Miguel
SELECT * FROM medico WHERE NOT nombre='Miguel';

-- Precedencia de operadores: NOT AND OR
-- En la sentencia siguiente primero se evalua el AND y después el OR
-- El resultado no es el esperado
SELECT * FROM medico WHERE nombre='Miguel' OR nombre='Laura' AND especialidad='Neurología';

-- Lo tendríamos que reescribir así:
SELECT * FROM medico WHERE (nombre='Miguel' OR nombre='Laura') AND especialidad='Neurología';

-- Aquí no hacen falta parentesis pero si lo ponemos no pasa nada
SELECT * FROM medico WHERE (idmedico>2 and idmedico<12) OR nombre='Ana'




Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos