Beruflich Dokumente
Kultur Dokumente
FACULTAD DE INGENIERÍA
PROGRAMA: ASIGNATURA:
GUÍA No.2
TECNOLOGÍA EN SISTEMAS BASE DATOS 1
SELECT tabla única: CLÁUSULAS DISTINCT Y WHERE
OBJETIVOS
a) Test de comparación
Este tipo de test calcula y compara los valores de dos expresiones por cada fila de datos, a través
de los operadores de comparación ( =, < >, <, <=, >, >= ) y devuelve aquellas filas donde el
resultado sea verdadero - TRUE. Las expresiones pueden ser un nombre de columna, una
constante o expresiones aritméticas.
Cuando SQL compara los valores de dos expresiones en el test de comparación, se pueden
producir tres resultados:
Si la comparación es cierta, el test produce un resultado TRUE.
Si la comparación es falsa, el test produce un resultado FALSE.
Si alguna de las dos expresiones produce un valor NULL, la comparación genera un resultado
NULL.
Ejemplo:
1. Seleccione para cada uno de los pacientes con direccion REFUGIO su identificación, nombres
y apellidos.
SELECT identificación, nombres, apellidos FROM Pacientes
WHERE direccion = ‘REFUGIO’;
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.2 (01.Ag.08) Ing. Sandra Lucía Guañarita Fernández
2. Seleccionar los mismos datos del numeral anterior para el paciente con identificacion 11.
SELECT identificación, nombres, apellidos FROM Pacientes
WHERE identificacion = 11;
3. Seleccionar los mismos datos del numeral anterior para el paciente con fecha de nacimiento abril
28 de 1988.
SELECT identificación, nombres, apellidos FROM Pacientes
WHERE fecha_nacim = ‘27/04/88’;
4. Seleccionar los mismos datos del numeral anterior para el paciente con fecha de nacimiento
diferente a abril 28 de 1988.
SELECT identificación, nombres, apellidos FROM Pacientes
WHERE fecha_nacim <> ‘27/04/88’;
b) Test de Rango
El test de rango comprueba si un valor de dato se encuentra entre dos valores especificados,
incluyendo los dos puntos extremos. Implica el uso de tres expresiones SQL, donde la primera
expresión define el valor a comprobar y las otras expresiones definen los extremos superior e
inferior del rango a comprobar. Los tipos de datos de las tres expresiones deben ser comparables.
La expresión de test especificada en el test BETWEEN puede ser cualquier expresión SQL válida,
pero en la práctica generalmente es un nombre de columna.
En el caso de BETWEEN devuelve como resultado los datos que se encuentran en el rango
especificado por los extremos (incluyendo los extremos). Cuando el test es NOT BETWEEN
devuelve como resultado los datos que no se encuentran en el rango especificado o sean
diferentes a cualquiera de los extremos.
Ejemplo:
2
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.2 (01.Ag.08) Ing. Sandra Lucía Guañarita Fernández
(1) Seleccione identificación, nombres y apellidos de los pacientes cuya identificación está
comprendida entre 9 y 11.
SELECT identificación, nombres, apellidos FROM Pacientes
WHERE identificacion BETWEEN 9 AND 11;
(2) Seleccione identificación, nombres y apellidos de los pacientes cuya identificación no está
comprendida entre 9 y 11.
SELECT identificación, nombres, apellidos FROM Pacientes
WHERE identificacion NOT BETWEEN 9 AND 11;
Todos los elementos en la lista de valores deben tener el mismo tipo de datos, y ese tipo debe
ser comparable al tipo de dato de la expresión de test.
El test IN puede expresarse mediante test de comparación, utilizando dos test de comparación
unidos mediante el operador lógico or.
Ejemplo:
(1) Seleccione identificación, nombres y apellidos de los pacientes cuya identificación sea 9,11 ó 13
SELECT identificacion, nombres, apellidos FROM Pacientes
WHERE identificacion IN (9,11,13);
(2) Seleccione identificación, nombres y apellidos de los pacientes cuya identificación no sea 9,11 ó
13
SELECT identificacion, nombres, apellidos FROM Pacientes
WHERE identificacion NOT IN (9,11,13);
(3) Seleccione la información de la tabla consultorios para aquellos cuyo nro_consultorio sea 1, 2 ó
8.
SELECT * FROM Consultorios
WHERE nro_consultorio IN (1,2,8);
3
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.2 (01.Ag.08) Ing. Sandra Lucía Guañarita Fernández
(4) Seleccione la información de la tabla consultorios para aquellos cuyo nro_consultorio no sea 1,
2 ó 8.
SELECT * FROM Consultorios
WHERE nro_consultorio NOT IN (1,2,8);
El patrón es una cadena que puede incluir uno o más caracteres comodines, los cuales se
interpretan de una manera especial. El carácter comodín signo de porcentaje (%) corresponde
a cualquier secuencia de cero o más caracteres, el carácter comodín subrayado (_)
corresponde a cualquier carácter simple. Los caracteres comodines pueden aparecer en
cualquier lugar de la cadena patrón, y pueden haber varios caracteres comodines dentro de una
misma cadena.
Se puede localizar cadenas que no se ajusten a un patrón utilizando el formato not like del test de
correspondencia de patron. El test like debe aplicarse a una columna con un tipo de datos cadena.
Si el valor del dato en la columna es NULL, el test LIKE devuelve un resultado NULL.
Ejemplo:
(1) Seleccione para cada uno de los médicos con apellidos iniciados en P los siguientes datos:
nombres, apellidos, teléfono.
SELECT nombres, apellidos, teléfono
FROM Medicos
WHERE apellidos LIKE ‘P%’;
(2) ) Seleccione para cada uno de los médicos con apellidos no iniciados en P los siguientes datos:
nombres, apellidos, teléfono.
SELECT nombres, apellidos, teléfono
FROM Medicos
WHERE apellidos NOT LIKE ‘P%’;
4
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.2 (01.Ag.08) Ing. Sandra Lucía Guañarita Fernández
(3) Seleccione para cada uno de los médicos con apellidos iniciados en ‘P’ y terminados en ‘a’ los
siguientes datos: nombres, apellidos, teléfono.
SELEC nombres, apellidos, teléfono
FROM Medicos
WHERE apellidos LIKE ‘P%a’;
A diferencia de las demás condiciones de búsqueda, el test de valor nulo no puede producir un
resultado NULL; será siempre TRUE o FALSE.
En un test de comparación la palabra NULL no puede ser utilizada como una cadena ya que no es
realmente un valor; es un indicador de que el valor es desconocido.
Ejemplo:
(1) Seleccione para cada uno de los médicos con apellidos no nulos los siguientes datos: nombres,
apellidos, teléfono.
SELECT nombres, apellidos, teléfono
FROM Medicos
WHERE apellidos IS NOT NULL;
(2) Seleccione para cada uno de los médicos con teléfono celular nulo los siguientes datos:
nombres, apellidos, teléfono.
SELEC nombres, apellidos, teléfono
FROM Medicos
WHERE telef_celular IS NULL;
La palabra OR se utiliza para combinar las condiciones de búsqueda cuando una o la otra
(o ambas) pueden ser ciertas, mientras la palabra AND se utiliza para combinar dos
condiciones de búsqueda que deban ser ciertas simultáneamente. Igualmente se puede
utilizar la palabra clave NOT para seleccionar filas en donde la condición de búsqueda es
falsa.
5
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.2 (01.Ag.08) Ing. Sandra Lucía Guañarita Fernández
Ejemplos:
(1) Seleccione identificación, nombres y apellidos de los pacientes cuya identificación sea 9,10 ó 11
SELECT identificacion, nombres, apellidos FROM Pacientes
WHERE identificacion = 9 OR identificacion = 10 OR identificacion = 11;
(2) Seleccione identificación, nombres y apellidos de los pacientes cuya identificación está
comprendida entre 9 y 11.
SELECT identificación, nombres, apellidos FROM Pacientes
WHERE identificacion identificacion >= 9 AND identificacion <= 11;
(3) Seleccione nombres, apellidos y teléfono de los médicos cuya identificación sea 11 y número de
consultorio 1.
(4) Seleccione identificación, nombres y apellidos de los médicos cuya identificación sea mayor o
igual a 1 y menor o igual a 10 o cuyo apellido inicie en P.
6
Institución Universitaria Antonio José Camacho Facultad de Ingeniería: Tecnología en Sistemas
Base de Datos 1 – Práctica. Guía No.2 (01.Ag.08) Ing. Sandra Lucía Guañarita Fernández