-- LIKE e IN -- Like sirve para buscar patrones sencillos en cadenas -- LIKE es 'como' busca algo como el patrón que te indico -- Ejemplo: Todos los médicos cuyo nombre empieza por M -- Busca todos los nombres que tienen una M y después cualquier cantidad de letras -- El % es como un 'comodín' que encaja con cualquier número de letras -- Incluso con 0 SELECT * FROM medico where nombre like 'm%'; -- Ejemplos típicos de % -- Cadena que empieza por una letra o cadena SELECT * FROM medico where nombre like 'm%'; SELECT * FROM medico where nombre like 'ma%'; -- Cadena que acabe por una letra o cadena SELECT * FROM medico where apellidos like '%z'; SELECT * FROM medico where apellidos like '%nez'; -- Cadena que empiece por una letra o cadena y acabe con otra SELECT * FROM medico where apellidos like 'p%z'; SELECT * FROM medico where apellidos like 'pe%ez'; -- Cadena que contenga otra cadena SELECT * FROM medico where apellidos like '%gue%'; -- Otras combinaciones SELECT * FROM medico where apellidos like 'p%z s%z'; -- El guión bajo (_) encaja con un carácter -- Busco todos los nombres que empiecen por 'ju' tengan cualquier letra y acaben en 'n' SELECT * FROM medico where nombre like 'ju_n'; -- Todos los códigos que empiezan por M0 y acaban en 3 SELECT * FROM medico where codigo like 'M0_3'; -- En otras bases de datos permiten los corchetes [AEIOU] -- Ejemplo: Like '[aeiou]%' -- ¿Qué medicos tienen pérez en el apellido? select * from medico where apellidos like '%perez%'; -- ¿Qué medicos su teléfono acaba en 7? select * from medico where telefono like '%7'; -- IN sirve para comproba si una cadena está en una serie de valores -- Por ejemplo si está en una lista de nombres: SELECT * FROM medico WHERE nombre in ('María','Ana'); SELECT * FROM medico WHERE especialidad in ('Cardiología','Neurología','Dermatología'); -- Si lo que quiero es los que no están en esa lista uso NOT IN SELECT * FROM medico WHERE especialidad NOT IN ('Cardiología','Neurología','Dermatología'); -- Todo se puede combinar y es frecuente que así sea -- Porque necesitamos obtener información de la base de datos -- Del tipo que médicos han operado a más pacientes -- Qué ingresos son de determinadas fechas y especialidades, etc... -- Dime todos los médicos que no trabajen en cirugía -- Cuyo apellido acabe en z o en s -- Y su teléfono acabe en 7 o en 8 SELECT * FROM medico WHERE especialidad NOT LIKE '%cirugía%' AND (apellidos LIKE '%z' OR apellidos LIKE '%s') AND (telefono LIKE '%7' OR telefono LIKE '%8');