PRESENTACION
PARTICIPANTES
GRUPO #1
BRIAN GABRIEL #28
LAURA GARCIA #18
LUIS DANIEL #2
KARLA DE LA ROSA #12
GUILLERMO AQUINO #1
CRISTAL JAMIL #5
Programación de Bases de Datos con SQL
3.1: Comparaciones Lógicas y Reglas de Precedencia
Actividades de Práctica
Objetivos
Evaluar las comparaciones lógicas para restringir las filas devueltas en función de dos o más
condiciones
Aplicar las reglas de prioridad para determinar el orden en el que se evalúan y calculan las
expresiones
Terminología
Identifique el término para cada una de las siguientes definiciones.
NOT Invierte el valor de la condición
AND Ambas condiciones deben ser verdaderas para que se
pueda seleccionar un registro.
Reglas de prioridad Reglas que determinan el orden en el que se evalúan y
calculan las expresiones
OR Cualquier condición puede ser verdadera para que se
pueda seleccionar un registro
Inténtelo/Resuélvalo
1. Ejecute las dos consultas siguientes. ¿Por qué producen dos resultados diferentes estas
sentencias casi idénticas? Indique cuál es la diferencia y explique la causa.
SELECT code, description
FROM d_themes
WHERE code >200 AND description IN('Tropical', 'Football', 'Carnival');
SELECT code, description
FROM d_themes
WHERE code >200 OR description IN('Tropical', 'Football', 'Carnival');
En la primera consulta la condición "AND" indica que, además de mostrar las filas
donde el código sea mayor a 200 va a mostrar las descripciones de dichas filas.
En la segunda consulta la condición "OR" indica que, o se muestran las filas donde el
código sea mayor a 200 o solo se muestran las descripciones de dichas filas.
2. Muestre los apellidos de todos los empleados de Global Fast Foods que tienen una “e” y una “i”
en sus apellidos.
SELECT last_name
FROM employees
WHERE last_name LIKE '%e%' AND last_name LIKE '%i%'
3. Necesito saber quiénes son los empleados de Global Fast Foods que ganan más
de 6,50 $/hora cuyo cargo no sea tomador de pedidos.
SELECT first_name, last_name
FROM f_staffs
WHERE salary > 6.5 AND staff_type != 'Order Taker'
Los empleados son: Bob Miller y Monique Tuttle
4. Utilizando la tabla employees, escriba una consulta para mostrar todos los empleados cuyos
apellidos empiezan por “D” y tienen una “a” y una “e” en cualquier lugar en
su apellido.
SELECT last_name
FROM employees
WHERE last_name LIKE 'D%'
AND last_name LIKE '%a%'
AND last_name LIKE '%e%'
5. ¿En qué lugares ha celebrado eventos DJs on Demand que no eran casas particulares?
SELECT loc_type
FROM d_venues
WHERE loc_type NOT IN'Private Home'
6. ¿Qué lista de operadores tiene el orden correcto de mayor a menor prioridad?
a. AND, NOT, OR
b. NOT, OR, AND
c. NOT, AND, OR
Para las preguntas 7 y 8, escriba las sentencias SQL que producirán la salida deseada.
7. ¿Quién soy?
Fui contratado por Oracle después de mayo de 1998, pero antes de junio de 1999.
Mi salario es inferior a 8000 $ al mes y tengo una “en” en mi apellido.
SELECT first_name, last_name
FROM employees
WHERE (hire_date BETWEEN '01-jun-1998'
AND '31-may-1999' AND last_name
LIKE '%en%') AND salary < 8000
Diana Lorentz
8. ¿Cuál es mi dirección de correo electrónico?
Debido a que he estado trabajando para Oracle desde el inicio de 1996, gano más de 9000 $ al
mes. Como gano un sueldo tan alto, no recibo comisión.
SELECT first_name, last_name, email,
hire_date, commission_PCT
FROM employees
WHERE hire_date > '01-jan-1996'
AND salary > 9000
AND commission_pct IS NULL
MHARTSTE
Programación de Bases de Datos con SQL
3-2: Ordenamiento de Filas
Actividades de Práctica
Objetivos
Crear una consulta para ordenar un juego de resultados en orden ascendente o descendente
Establecer el orden en el que se evalúan y calculan las expresiones en función de las reglas
de prioridad
Crear una consulta para ordenar un juego de resultados con un alias de columna
Crear una consulta para ordenar un juego de resultados para una o varias columnas
Terminología
Identifique el término para cada una de las siguientes definiciones.
ORDER BY Ordena las filas en orden ascendente (orden por defecto); A-Z
DESC Ordena las filas en orden descendente: Z-A
Orden de ejecución Organiza por clase, tipo o tamaño
Inténtelo/Resuélvalo
1. En el siguiente ejemplo, asigne a la columna employee_id el alias “Number”. Complete la
sentencia SQL para ordenar el juego de resultados por el alias de columna.
SELECT employee_id, first_name,
last_name FROM employees;
2. Cree una consulta que devuelva todos los títulos de CD de DJs on Demand ordenados por año
con los títulos en orden alfabético por año.
SELECT title
FROM d_cds
ORDER BY year, title;
SELECT employee_id AS "Number",
first_name, last_name
FROM employees
ORDER BY "Number";
3. Ordene las canciones de DJs on Demand por título en orden descendente. Utilice el alias "Our
Collection" para el título de la canción.
SELECT title AS "Our Collection"
FROM d_cds
ORDER BY title DESC;
4. Escriba una sentencia SQL mediante la cláusula ORDER BY que permita recuperar
la información necesaria. No ejecute la consulta.
Cree una lista de alumnos que estén en su primer año de estudios. Incluya el nombre, apellido,
número de ID de alumno y número de plaza de aparcamiento. Ordene los resultados por orden
alfabético por el apellido del alumno y, después, por el nombre.
Si hay más de un alumno con el mismo apellido, ordene los nombres de Z a A. Todos los demás
resultados deben estar en orden alfabético (de A a Z).
SELECT first_name, last_name, student_id, parking_number
FROM students
WHERE year = 1
ORDER BY first_name DESC, last_name;
5. Escriba una sentencia SQL utilizando la tabla employees y la cláusula ORDER BY que
permita recuperar la información de la tabla siguiente. Devuelva solo los empleados que
tengan employee_id<125.
DEPARTMENT_I LAST_NAME MANAGER_I
D D
90 Kochhar 100
90 King (nulo)
90 De Haan 100
60 Lorentz 103
60 Hunold 102
60 Ernst 103
50 Mourgos 100
SELECT department_id , last_name, manager_id
FROM employees
WHERE employee_id < 125
ORDER BY department_id DESC , last_name DESC;
.
Actividades de Ampliación
1. La limitación de los valores con la cláusula WHERE es un ejemplo de:
a. Proyección
b. Ordenamiento
c. Unión
d. Agrupamiento
e. Selección
2. Desea ordenar su colección de CD por título y, a continuación, por artista. Esto se puede
realizar mediante:
a. WHERE
b. SELECT
c. ORDER BY
d. DISTINCT
3. ¿Cuáles de los siguientes elementos son palabras clave SQL?
a. SELECT
b. ALIAS
c. COLUMN
d. FROM
Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios
2
4. ¿Cuáles de las siguientes afirmaciones son ciertas?
a. La multiplicación y la división tienen prioridad sobre la suma.
b. Los operadores de la misma prioridad se evalúan de izquierda a derecha.
c. Los paréntesis se pueden utilizar para sustituir las reglas de prioridad.
d. Ninguna de las anteriores afirmaciones es verdadera.
5. Se ha escrito la siguiente consulta:
SELECT DISTINCT last_name
FROM students
a. Para seleccionar todos los alumnos pendientes
b. Para seleccionar los apellidos que son duplicados
c. Para seleccionar los apellidos sin duplicados
d. Para seleccionar todos los apellidos
6. ¿Qué cláusula SELECT se ha utilizado para crear la siguiente cadena?
Abby Rogers is an order taker for Global Fast Foods
a. SELECT first_name ||' ' ||last_name ||' is an ' staff_type ' for Global Fast Foods'
b. SELECT Abby Rogers is an ||staff_type||' for Global Fast Foods'
c. SELECT first_name,last_name '||staff_type||' for Global Fast Foods'
d. SELECT first_name ||' ' ||last_name ||' is an '||staff_type||' for Global Fast Foods'
7. ¿Cuáles de las siguientes cláusulas SELECT devolverán las cabeceras de columna en
mayúsculas?
a. SELECT id, last_name, address, city, state, zip, phone_number;
b. SELECT ID, LAST_NAME, ADDRESS, CITY, STATE, ZIP, PHONE_NUMBER;
c. SELECT Id, Last_name, Address, City, State, Zip, Phone_number;
d. SELECT id AS ID, last_name AS NAME, address AS ADDRESS, city AS CITY, state AS
STATE, zip AS ZIP, phone_number AS PHONE_NUMBER;
8. ¿Qué instrucción SELECT siempre devolverá los apellidos en orden alfabético?
a. SELECT last_name AS ORDER BY FROM employees
b. SELECT last_name FROM employees ORDER BY last_name
c. SELECT last_name FROM employees
d. SELECT ASC last_name FROM employees
9. ¿Qué cláusula SELECT devolverá una cabecera de columna para employee_id denominada
“New Employees”?
a. SELECT last_name AS "New Employees"
b. SELECT employee_id AS New Employees
c. SELECT employee AS "New Employees"
d. SELECT employee_id AS "New Employees"
10. Examine la siguiente consulta:
SELECT last_name, job_id, salary
FROM employees
WHERE job_id = 'SA_REP' OR job_id = 'AD_PRES' AND salary >15000;
¿Qué resultados no se pueden haber devuelto de esta consulta?
Ninguna
a. Joe Everyone, sales representative, salary 15000
b. Jane Hendricks, sales manager, salary 15500
c. Arnie Smithers, administration president, 20000
d. Jordan Lim, sales representative, salary 14000
11. Termine esta consulta de modo que devuelva todos los empleados cuyos apellidos empiezan por
“St”.
SELECT last_name FROM employees
SELECT last_name
FROM employees
WHERE last_name LIKE 'St%';
12. ¿Qué valores de salario no se devolverán en esta consulta?
Salario abajo de 1900 y arriba de 2100
SELECT last_name, first_name, salary
FROM employees
WHERE salary BETWEEN 1900 AND 2100;
13. Corrija cada cláusula WHERE:
a. WHERE department_id NOT IN 101,102,103;
WHERE department_id NOT IN (101,102,103);
b. WHERE last_name = King
WHERE last_name = ‘King’
c. WHERE start date LIKE "05-May-1998"
WHERE start_date = ’05-May-1998’
d. WHERE salary IS BETWEEN 5000 AND 7000
WHERE salary BETWEEN 5000 AND 7000
e. WHERE id =! 10
WHERE id != 10
14. SELECT prefix
FROM phone
WHERE prefix BETWEEN 360 AND 425
OR prefix IN (206,253,625)
AND prefix BETWEEN 315 AND 620;
¿Cuál de los siguientes valores se podría devolver?
625, 902, 410, 499
Programación de Bases de Datos con SQL
3-3: Introducción a las Funciones
Actividades de Práctica
Objetivos
Identificar las aplicaciones adecuadas de funciones de fila única en las sentencias
de consulta
Clasificar una función como función de una sola fila o de varias filas
Diferenciar entre funciones de una sola fila y funciones de varias filas y los resultados
devueltos por cada una
Inténtelo/Resuélvalo
1. Para cada tarea, elija si será más adecuada una función de una sola fila o de varias filas:
a. Mostrar todas las direcciones de correo electrónico en letras mayúsculas.
De una sola fila
b. Determinar el salario medio de los empleados del departamento de ventas.
De varias filas
c. Mostrar las fechas de contratación con el mes completo (1 de septiembre de 2004)
De una sola fila
d. Averiguar qué empleados de cada departamento tienen mayor antigüedad
(la primera fecha de contratación)
De varias filas
e. Mostrar los salarios de los empleados redondeados en las centenas.
De una sola fila
f. Sustituir los valores nulos por ceros al mostrar las comisiones de los empleados.
De una sola fila
2. Las funciones de varias filas más comunes son: AVG, COUNT, MAX, MIN y SUM. Proporcione su
propia definición de cada una de estas funciones.
AVG: busca el valor medio de un grupo de filas.
MAX: busca el valor más alto en un grupo de filas.
MIN: busca el valor más bajo en un grupo de filas.
COUNT: Calcula el número de registros devueltos por una consulta.
SUM: Devuelve la suma del conjunto de valores contenido en un campo especifico de una
consulta.
3. Pruebe sus definiciones sustituyendo cada una de las funciones de varias filas en esta consulta.
SELECT FUNCTION(salary)
FROM employees
Escriba cada consulta y sus resultados.
SELECT MAX(salary)
FROM employees
24000
SELECT MIN(salary)
FROM employees
2500
SELECT AVG(salary)
FROM employees
8775
SELECT COUNT(salary)
FROM employees
20
SELECT SUM(salary)
FROM employees
175500