0% encontró este documento útil (0 votos)
28 vistas14 páginas

Practica SQL 2

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas14 páginas

Practica SQL 2

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Nombre: Scarleth Ortiz

Materia: Administración De Base De Datos Fecha: 29/mayo/2025

PRACTICA SQL 2

-COMPARACIONES LOGICAS
-ORDENAMIENTO
-FUNCIONES DE GRUPO
-USO CLAUSULA GROUP BY Y HAVING

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');

R// Se utiliza el operador AND, por lo que se tiene como objetivo cumplir las 2
instrucciones y mostrar un resultado. Se buscará en la base de datos aquellos códigos
mayores de 200 Y que en su descripción este ‘Tropical’, ‘Footboll’ o ‘Carnival,

SELECT code, description

FROM d_themes

WHERE code >200 OR description IN('Tropical',


'Football', 'Carnival');

R// Se utiliza el operador OR, por lo que se tiene como objetivo cumplir una condición o la
otra y mostrar un resultado. Se buscará en la base de datos aquellos códigos mayores de
200 O que en su descripción este ‘Tropical’, ‘Footboll’ o ‘Carnival,
En el código 1 se usa el operador AND que debe cumplir las 2 instrucciones, mientras el
código 2 usa el operador OR que se debe cumplir una de las dos instrucciones.

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,SALARY,STAFF_TYPE
FROM F_STAFFS
WHERE SALARY > 6.50 AND STAFF_TYPE <> 'Order Taker';

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 UPPER(('D%')) AND LAST_NAME LIKE ('%e%')
AND LAST_NAME LIKE('%a%');

5. ¿En qué lugares ha celebrado eventos DJs on Demand que no eran casas
particulares?
SELECT LOC_TYPE
FROM D_VENUES
WHERE LOC_TYPE <>('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 * FROM employees
WHERE hire_date >('31/05/1998') AND hire_date
< ('01/06/1999') AND salary < 8000 AND last_name LIKE ‘%en%’;

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 email
FROM employees
WHERE hire_date < ('01/01/1996') AND salary > 9000 AND
commission_pct IS NULL;

9. 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;

SELECT employee_id AS "Number", first_name, last_name


FROM employees
ORDER BY "Number";

10. 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 TITLE,YEAR;
11. 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 ;

12. 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, EMPLOYEE_ID, NUM_APAR
FROM EMPLOYEES
WHERE FISRT_ANIO = 1
ORDER BY apellido, nombre DESC;

13. 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_ID LAST_NAME MANAGER_ID

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 LAST_NAME, MANAGER_ID DESC;
14. 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

15. 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

16. ¿Cuáles de los siguientes elementos son palabras clave SQL?

a. SELECT

b. ALIAS

c. COLUMN

d. FROM

17. ¿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.


18. 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

19. ¿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'

20. ¿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;

21. ¿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

22. ¿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"

23. 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?

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

24. 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%';

25. ¿Qué valores de salario no se devolverán en esta consulta?

SELECT last_name, first_name, salary

FROM employees

WHERE salary BETWEEN 1900 AND 2100;

R// Los salarios menores a 1900 y los salarios mayores a 2100


26. 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;

27. Defina y proporcione un ejemplo de las siguientes funciones de grupo: AVG,


COUNT, MAX, MIN, SUM
SELECT DEPARTMENT_ID CODIGO,
MAX(SALARY) MAX_SALARIO,
MIN(SALARY) MIN_SALARIO,
SUM(SALARY) TOT_SALARIO,
COUNT(EMPLOYEE_ID)TOT_EMPLEADOS,
AVG(SALARY) PROMEDIO
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID
ORDER BY 1

28. Cree una consulta que muestre el costo medio de los eventos de DJs on Demand.
Redondee a dos posiciones decimales.
SELECT ROUND(AVG(cost),2) AS COST_MEDIUM
FROM D_EVENTS;
29. Busque el salario medio de los miembros del personal de Global Fast Foods cuyo
identificador de jefe es 19.
SELECT AVG(salary) AS average_salary
FROM F_STAFFS
WHERE manager_id = 19;

30. Busque la suma de los salarios de los miembros del personal de Global Fast
Foods cuyos identificadores son 12 y 9.
SELECT SUM(salary) AS sum_salary
FROM F_STAFFS
WHERE manager_id IN (12,9);

31. Utilizando la base de datos Oracle, seleccione el salario más bajo, la fecha de
contratación más reciente, el apellido de la persona que está en la parte superior de
la lista alfabética de empleados y el apellido de la persona que está en la parte
inferior de la lista alfabética de empleados. Seleccione solo los empleados de los
departamentos 50 o 60.
SELECT MIN(SALARY) AS SALARY_MIN, MAX(HIRE_DATE) AS
DATE_HIRE,
(SELECT LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (50, 60)
ORDER BY LAST_NAME
FETCH FIRST 1 ROW ONLY) AS LAST_NAME_SUP,
(SELECT LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (50, 60)
ORDER BY LAST_NAME DESC
FETCH FIRST 1 ROW ONLY) AS LAST_NAME_INFE
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (50, 60)
GROUP BY DEPARTMENT_ID;
32. Su nuevo negocio de Internet ha tenido un año próspero. Ha recibido 1.289
pedidos durante este año. Su tabla de pedidos del cliente tiene una columna
denominada total_sales. Si ejecuta la siguiente consulta, ¿cuántas filas devolverá?

SELECT sum(total_sales)

FROM orders;

R// Devolverá una sola fila con una única columna que representa la suma total de todas
las ventas registradas en la columna total_sales de la tabla orders.

33. Se le ha pedido que cree un informe de los salarios medios de todos los
empleados de cada división de la compañía. A algunos empleados de su compañía
se les paga por horas en lugar de un salario. Al ejecutar el informe, las medias que ha
obtenido no han sido las que esperaba: eran mucho más altas de lo que creía. ¿Cuál
puede ser la causa?

La causa más probable es que empleados por hora con salario NULL no fueron excluidos
correctamente del cálculo del promedio, lo que hace que la media se calcule solo con los
salarios más altos y dé un resultado artificialmente elevado.

34. Los empleados de Global Fast Foods tienen las fechas de nacimiento del 1 de
julio de 1980, 19 de marzo de 1979 y 30 de marzo de 1969. Si selecciona
MIN(birthdate), ¿qué fecha se devolverá?
SELECT MIN(birthdate) AS birthdate
FROM employees;

R// Se devolvería la fecha más cerca que seria “30 de marzo de 1969”

35. Cree una consulta que devuelva la media del total de pedidos de todos los
pedidos de Global Fast Foods desde el 1 de enero de 2002 al 21 de diciembre de 2002.
SELECT AVG(order_total) AS total_order
FROM f_orders
WHERE order_date BETWEEN TO_DATE('01/01/2002', 'DD/MM/YYYY') AND
TO_DATE('21/12/2002', 'DD/MM/YYYY');
36. ¿Cuál es la fecha de contratación del último empleado de Oracle contratado?
SELECT MAX(hire_date) AS last_hire_date
FROM employees;

37. En la siguiente cláusula SELECT, ¿qué valor devuelto por la sentencia SELECT será
el más alto?

SELECT SUM(operating_cost), AVG(operating_cost)

R// El valor de la función SUM(operating_cost) será siempre mayor que el de


AVG(operating_cost), ya que la suma representa el total acumulado de los costos
operativos, mientras que el promedio solo refleja un valor representativo por fila.

38. Consulte la tabla D_EVENTS de la base de datos DJs on Demand:

¿Qué código es válido como parte de una consulta SQL?

NO a. FROM event_date

SI b. SELECT SUM(cost)

NO c. SELECT SUM(event_date)

SI d. SELECT AVG(cost) AS "Expense"

NO e. WHERE MIN(id) = 100

NO f. SELECT MAX(AVG(cost))

SI g. SELECT MIN(event_date)

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


R// 410 esta en el rango de 360 y 425
prefix BETWEEN 360 AND 425

Se cumple la condición

• 625:

No se encuentra en el rango de 315 a 620, ni 360 a 425

• 920

No se encuentra en el rango de 315 a 620, ni 315 a 620

• 499

No se encuentra en el rango de 360 a 425.

39. ¿Cuántas canciones se muestran en la tabla D_SONGS de DJs On Demand?


SELECT COUNT(*) AS COUNT_SONGS
FROM D_SONGS;

R// Se muestran 6

40. ¿En cuántos diferentes tipos de ubicación ha tenido lugares DJs on Demand?
SELECT COUNT(DISTINCT(LOC_TYPE)) AS NUMBER_LOC
FROM D_VENUES;

R// En 4 diferentes tipos de ubicación.

41. La tabla d_track_listings de la base de datos DJs on Demand tiene una columna
song_id y una columna cd_number. ¿Cuántos ID de canción tiene la tabla y cuántos
números de CD diferentes tiene la tabla?
SELECT COUNT(SONG_ID) AS SONG_COUNT, COUNT(DISTINCT(CD_NUMBER))
AS CD_DISTINCT
FROM D_TRACK_LISTINGS;
R// Hay 5 canciones en total en la tabla, distribuidas en 4 CDs diferentes.

42. ¿Cuántos clientes de DJs on Demand tienen direcciones de correo electrónico?


SELECT COUNT(EMAIL) AS EMAIL_COUNT
FROM D_CLIENTS;

R// Hay 3 clientes son correo electrónico

43. Algunos partners de DJs on Demand no disponen de cantidades autorizadas de


gastos (auth_expense_amt). ¿Cuántos partners tienen este privilegio?
SELECT COUNT(AUTH_EXPENSE_AMT) AS PARTNER_AUTH
FROM D_PARTNERS;

R// Solo hay UN partner autorizado

44. ¿Qué valores se devuelven cuando se emite la sentencia siguiente?

ID type shoe_color

456 oxford brown

463 sandal tan

262 heel black

433 slipper tan

SELECT COUNT(shoe_color), COUNT(DISTINCT shoe_color)

FROM shoes;

R// Hay dos columnas 4 en shoe_color porque cuenta con todos los valores y 3 en
DISTINCT shoe_color, ya que no aparecerán los valores repetidos (tan)

45. Cree una consulta que convierta cualquier valor nulo de la columna
auth_expense_amt en la tabla D_PARTNERS de DJs On Demand en 100000 y busque la
media de los valores de esta columna. Redondee el resultado a dos posiciones
decimales.
SELECT ROUND(AVG(NVL(AUTH_EXPENSE_AMT,100000)),2) AS RESPUESTA
FROM D_PARTNERS;
46. Indique qué afirmaciones son Verdaderas sobre la siguiente sentencia SQL:

SELECT AVG(NVL(selling_bonus, 0.10))

FROM bonuses;

a. Los tipos de dato de los valores de la cláusula NVL pueden ser cualquier tipo de dato,
excepto datos de fecha.

b. Si la columna selling_bonus tiene un valor nulo, se sustituirá 0.10.

c. No habrá ningún valor nulo en la columna selling_bonus cuando se calcule la media.

d. Esta sentencia provocará un error. No puede haber dos funciones en la sentencia


SELECT.

47. ¿Cuál de las siguientes afirmaciones es VERDADERA sobre esta consulta?

SELECT DISTINCT colors, sizes

FROM items;

a. Cada color aparecerá solo una vez en el juego de resultados.

b. Cada tamaño aparecerá solo una vez en el juego de resultados.

c. Las combinaciones únicas de color y tamaño aparecerán solo una vez en el juego de
resultados.

d. Cada combinación de tamaño y color aparecerá más de una vez en el juego de


resultados.

También podría gustarte