Programación de Bases de Datos con SQL
2-2: Limitación de Filas Seleccionadas
Actividades de Práctica
Objetivos
• Aplicar sintaxis SQL para restringir las filas devueltas de una consulta
• Demostrar la aplicación de la sintaxis de la cláusula WHERE
• Explicar el motivo por el que es importante, desde una perspectiva de negocio, poder limitar
fácilmente los datos recuperados de una tabla
• Crear y generar salidas mediante una consulta SQL que contenga cadenas de caracteres y
valores de fecha
Terminología
Identifique el término para cada una de las siguientes definiciones.
WHERE Restringe las filas devueltas por una sentencia de selección
=, <> , >,<,<=,>= Compara una expresión con otro valor o expresión
Inténtelo/Resuélvalo
1. Utilizando la base de datos Global Fast Foods, recupere el nombre, el apellido y la dirección del
cliente que utiliza el identificador 456.
CONSULTA REQUERIDA:
SELECT first_name, last_name, address, id FROM F_CUSTOMER WHERE id=456;
2. Muestre el nombre, la fecha de inicio y la fecha de finalización del regalo “ballpen and highlighter”
del elemento promocional de Global Fast Foods.
CONSULTA REQUERIDA:
SELECT name, start_date, end_date FROM F_PROMOTIONAL_MENUS WHERE
give_away=’ballpen and highlighter’;
3. Escriba una sentencia SQL que produzca la siguiente salida:
Oldest
The 1997 recording in our database is The Celebrants Live in Concert
CONSULTA REQUERIDA:
SELECT ‘The 1997 recording in our database is’ || title AS “Oldest” FROM D_CDS WHERE
year=1997;
4. Se supone que la siguiente consulta debe devolver el título de CD "Carpe Diem", pero no ha
devuelto ninguna fila. Corrija el error en la sentencia y muestre la salida.
SELECT produce, title
FROM d_cds
WHERE title = 'carpe diem' ;
El error yace en que estamos seleccionando el campo “producer” que esta mal escrito también,
además si quitamos el “produce” se mostrara un mensaje como “No data Found” esto se debe a
que en la búsqueda de datos en el campo title mediante WHERE no existe ningún valor escrito
asi ‘carpe diem’, sino con mayúsculas en iniciales ‘Carpe Diem’, corrigiendo esto y siendo la
consulta así:
SELECT title FROM D_CDS WHERE title=’Carpe Diem’;
obtenemos
5. El jefe de DJs on Demand desea un informe de todos los títulos de CD y los años de los CD que
se han producido antes del 2000.
CONSULTA REQUERIDA:
SELECT title, year FROM D_CDS WHERE year<2000;
6. ¿Qué valores se seleccionarán en la siguiente consulta?
SELECT salary
FROM employees
WHERE salary < = 5000;
a. 5000
b. 0 - 4999
c. 2500
d. 5
La respuesta correcta es la alternativa b.
Esto sucede porque en nuestra tabla existen valores menores a 5000, sin embargo la condición nos
permite tambien incluir un valor que sea igual a 5000 e incluirla en nuestra muestra en la consulta
siendo parte del conjunto SALARIO = [0-5000].
En las tres preguntas siguientes, utilice la información de tabla que se muestra a
continuación:
TABLE NAME: students COLUMNS:
studentno NUMBER(6)
fname VARCHAR2(12)
lname VARCHAR(20)
sex CHAR(1)
major VARCHAR2(24)
7. Escriba una sentencia SQL que muestre el número de alumno (studentno), el nombre (fname) y
el apellido (lname) de todos los alumnos que son mujeres (F) de la tabla denominada students.
CONSULTA REQUERIDA:
SELECT studentno, fname, lname FROM students WHERE sex=’F’;
8. Escriba una sentencia SQL que muestre el número de alumno (studentno) de cualquier alumno
con una carrera de educación física en la tabla denominada students. Asigne a la columna
studentno el título Student Number.
CONSULTA REQUERIDA:
SELECT studentno AS “Student Number” FROM students WHERE major=’Educacion Fisica’;
9. Escriba una sentencia SQL que muestre toda la información sobre todos los alumnos masculinos
de la tabla denominada students.
CONSULTA REQUERIDA:
SELECT studentno, fname, lname, major FROM students WHERE sex=’M’;
10. Escriba una sentencia SQL que muestre los títulos y años de todos los CD de DJs on Demand
que no se han producido en el año 2000.
CONSULTA REQUERIDA:
SELECT title, year FROM D_CDS WHERE year<>2000;
Obtenemos
11. Escriba una sentencia SQL que muestre los empleados de Global Fast Foods que han nacido
antes de 1980.
CONSULTA REQUERIDA:
SELECT * FROM f_stuffs WHERE birthdate < TO_DATE(’01-01-1980’, ‘mm-dd-yyyy’);
Obtenemos