Presentación
Diseño y Desarrollo de Bases de Datos
Sección 2
Participantes
Grupo #1
Brian Gabriel #28
Laura García #18
Luis Daniel #2
Karla de la Rosa #12
Guillermo Aquino #1
Cristal Jamil #5
Programación de Bases de Datos con SQL
2-1: Trabajar con Columnas, Caracteres y
Filas Actividades de Práctica
Objetivos
• Aplicar el operador de concatenación para enlazar columnas a otras columnas,
expresiones aritméticas o valores constantes para crear una expresión de caracteres
• Utilizar los alias de columna para cambiar el nombre de las columnas en el resultado de
la consulta
• Introducir valores literales de tipo de carácter, número o fecha en una sentencia SELECT
• Definir y utilizar DISTINCT para eliminar las filas duplicadas
• Mostrar la estructura de una tabla mediante DESCRIBE o DESC
• Editar, ejecutar y guardar las sentencias SQL en Oracle Application Express
Terminología
Identifique el término para cada una de las siguientes definiciones.
Comando que suprime los duplicados
DISTINCT
Enlaza dos columnas para formar una columna de
datos de caracteres
Operador de concatenación ||
Grupo de datos de caracteres
Valores literales
Comando de SQL Plus que muestra la estructura de una tabla
DESCRIBE (DESC)
Inténtelo/Resuélvalo
1. Al jefe de Global Fast Foods le gustaría enviar cupones para la próxima oferta. Desea enviar un
cupón a cada domicilio. Cree una sentencia SELECT que devuelva el apellido del cliente y una
dirección de correo postal.
SELECT last_name AS Client,
email AS Email_adress FROM
d_clients;
2. Cada una de las sentencias siguientes tiene errores. Corrija los errores y ejecute la consulta
en Oracle Application Express.
a.
SELECT first name
FROM f_staffs;
SELECT first_name FROM f_staffs;
b.
SELECT first_name |" " | last_name AS "DJs on Demand Clients"
FROM d_clients;
SELECT first_name; last_name AS "DJ en clientes de Demans" FROM d_clients;
c.
SELECT DISTINCT f_order_lines
FROM quantity;
SELECT DISTINCT quantity FROM f_order_lines;
d.
SELECT order number
FROM F_ORDER;
Nos aparece que la tabla no existe, por lo que no supimos a qué tabla se refería.
3. Sue, Bob y Monique han sido los empleados del mes. Mediante la tabla f_staffs, cree una
sentencia SELECT para mostrar los resultados como aparecen en la tabla Super Star.
Super Star
*** Sue *** Sue ***
*** Bob *** Bob ***
*** Monique *** Monique ***
SELECT ' *** ' || first_name || ' *** ' || first_name || ' *** ' AS "Super estrella" FROM f_staffs;
4. ¿Cuál de las siguientes afirmaciones es VERDADERA sobre la siguiente
consulta? SELECT first_name, DISTINCT birthdate
FROM f_staffs;
a. Solo se devolverán dos filas.
b. Se devolverán cuatro filas.
c. Solo se devolverán Fred 05-Jan-1988 y Lizzie 10-Nov-1987.
d. No se devolverá ninguna fila.
5. Global Fast Foods ha decidido conceder un aumento del 5% a todos los miembros de la
plantilla. Prepare un informe que presente la salida como se muestra en la tabla.
EMPLOYEE LAST NAME CURRENT SALARY SALARY WITH 5% RAISE
SELECT last_name AS "employee last name", salary AS "current salary", salary*1.05 AS
"salary with 5% raise" FROM employees;
6. Cree una consulta que devuelva la estructura de la tabla EMPLOYEES de la base de datos
Oracle. ¿Qué columnas se marcan como “valores nulos”? ¿Qué significa esto?
SELECT * FROM employees;
7. Los propietarios de DJs on Demand desean obtener un informe de todos los elementos de su tabla
D_CDs con las siguientes cabeceras de columna: Inventory Item, CD Title, Music Producer
y Year Purchased. Prepare este informe.
SELECT cd_number AS "Inventory Item", title AS "CD Title", producer AS "Music Producer",
year AS "Year Purchased" FROM d_cds;
8. Verdadero/Falso: La siguiente sentencia SELECT se ejecuta
correctamente: SELECT last_name, job_id, salary AS Sal
FROM employees;
9. Verdadero/Falso: La siguiente sentencia SELECT se ejecuta correctamente:
SELECT *
FROM job_grades;
10. Hay cuatro errores de código en esta sentencia. ¿Puede identificarlos?
SELECT employee_id, last_name
sal x 12 ANNUAL SALARY
FROM employees;
SELECT employee_id, last_name, salary*12 AS "ANNUAL SALARY" FROM employees;
11. En la expresión aritmética salary*12 - 400, ¿qué operación se evalúa en primer lugar?
Primero se realiza la multiplicación y después se realiza la resta.
12. ¿Cuál de las siguientes opciones se puede utilizar en la sentencia SELECT para devolver todas
las columnas de datos de la tabla f_staffs de Global Fast Foods?
a. nombres de columna
b. *
c. DISTINCT id
d. a y b
13. ¿Qué capacidad se utiliza al usar SQL para seleccionar columnas en una tabla?
a. selección
b. proyección
c. partición
d. unión
14. SELECT last_name AS "Employee". La cabecera de columna aparecerá en el resultado de
la consulta como:
a. EMPLOYEE
b. employee
c. Employee
d. "Employee:
15. ¿Cuál de las siguientes expresiones producirá el valor más alto?
a. SELECT salary*6 + 100
b. SELECT salary* (6 + 100)
c. SELECT 6(salary+ 100)
d. SELECT salary+6*100
16. ¿Cuál de las sentencias siguientes devolverá una lista de los empleados con el
siguiente formato?
Mr./Ms. Steven King is an employee of our company.
a. SELECT "Mr./Ms."||first_name||' '||last_name 'is an employee of our company.'
AS "Employees"
FROM employees;
b. SELECT 'Mr./Ms. 'first_name, last_name ||' '||'is an employee of our
company.' FROM employees;
c. SELECT 'Mr./Ms. '||first_name||' '||last_name ||' '||'is an employee of our
company.' AS "Employees"
FROM employees;
d. SELECT Mr./Ms. ||first_name||' '||last_name ||' '||"is an employee of our company."
AS "Employees"
FROM employees
17. ¿Qué afirmación es verdadera acerca de las sentencias SQL?
a. Las sentencias SQL son sensibles a mayúsculas/minúsculas.
b. Las cláusulas SQL no se deben escribir en líneas separadas.
c. Las palabras clave no se pueden abreviar o dividir entre líneas.
d. Las palabras clave SQL se introducen normalmente en minúsculas; las palabras restantes
en mayúsculas.
18. ¿Qué consultas devolverán tres columnas cada una con cabeceras de columna en
MAYÚSCULAS?
a. SELECT "Department_id", "Last_name",
"First_name" FROM employees;
b. SELECT DEPARTMENT_ID, LAST_NAME,
FIRST_NAME FROM employees;
c. SELECT department_id, last_name, first_name AS UPPER
CASE FROM employees
d. SELECT department_id, last_name,
first_name FROM employees;
19. ¿Cuál de las siguientes sentencias puede fallar?
a. SELCT * FROM employees;
b. Select * FROM employees;
c. SELECT * FROM EMPLOYEES;
d. SelecT* FROM employees;
20. Haga clic en el enlace History en la parte inferior de la ventana SQL Commands. Desplácese o
utilice las flechas en la parte inferior de la página para buscar la sentencia que ha escrito para
resolver el problema 3 anterior. (Sobre la cabecera de columna SuperStar). Haga clic en la
sentencia para volver a cargarla en la ventana de comandos. Vuelva a ejecutar el comando
para asegurarse de que es el que funciona correctamente. Una vez que se ha asegurado de
que funciona, haga clic en el botón SAVE situado en la esquina superior derecha de la ventana
SQL Commands e introduzca un nombre para la sentencia guardada. Utilice sus propias
iniciales y “_superstar.sql”, de manera que si sus iniciales son CT, el nombre de archivo será
CT_superstar.sql.
Desconéctese de OAE y vuelva a conectarse inmediatamente. Regrese a la ventana SQL
Commands, haga clic en el enlace Saved SQL en la parte inferior de la página y cargue su
sentencia SQL guardada en la ventana Edit. Esto se realiza haciendo clic en el nombre del script.
Edite la sentencia para que muestre + en lugar de *. Ejecute su sentencia corregida y guárdela
como iniciales_superplus.sql.
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.
Restringe las filas devueltas por una sentencia de selección
Clausula where
Compara una expresión con otro valor o expresión
Operadores de comparació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.
SELECT first_name, last_name, address FROM f_customers 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.
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
SELECT 'The' || year || 'recording in our database is' || title AS "Oldest" FROM D_CDS WHERE year =
(SELECT MIN (year) FROM D_CDS);
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’;
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.
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
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.
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.
SELECT studentnoAS Student Number,
FROM students
WHERE major = ‘educación física’;
9.Escriba una sentencia SQL que muestre toda la información sobre todos los alumnos masculinos
de la tabla denominada students.
SELECT * 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.
SELECT title, year
FROM d_cds
WHERE year != 2000;
11. Escriba una sentencia SQL que muestre los empleados de Global Fast Foods que han nacido
antes de 1980.
SELECT *
FROM f_staffs
WHERE birthdate < '01/jan/1980';
Programación de Bases de Datos con SQL 2-3: Operadores de
Comparación Actividades de Práctica
Objetivos
• Aplicar el operador de comparación adecuado para devolver un resultado deseado
• Demostrar un uso adecuado de las condiciones BETWEEN, IN y LIKE para devolver un
resultado deseado
• Distinguir entre cero y el valor de NULL como no disponible, sin asignar, desconocido o
no aplicable.
• Explicar el uso de las condiciones de comparación y NULL
Terminología
Identifique el término para cada una de las siguientes definiciones.
ESCAPE Esta opción indica que los caracteres de escape se deben
interpretar literalmente
IS NULL / IS NOT NULL Pruebas de condición de los valores nulos
Between AND Muestra las filas según un rango de valores
WHERE BETWEEN AND Que incluye los límites especificados y el área entre ellos; los
números 1-10, ambos inclusive
LIKE Selecciona las filas que coinciden con un patrón de caracteres
IN Prueba los valores de una lista especificada de valores
Inténtelo/Resuélvalo
1. Muestre el nombre, el apellido y el salario de todos los miembros del personal cuyo salario se
encuentra entre 5,00 $ y 10,00 $ por hora.
SELECT first_name, last_name, salary FROM f_staffs WHERE salary BETWEEN 5 AND 10;
2. Muestre el tipo de ubicación y los comentarios de todos los lugares de DJs on Demand que
son Private Home.
SELECT address, comments, loc_type FROM d_venues WHERE loc_type IN ('Private Home');
3. Utilizando solo los operadores menor que, igual que o mayor que, vuelva a escribir la
siguiente consulta:
SELECT first_name, last_name
FROM f_staffs
WHERE salary BETWEEN 20.00 and 60.00;
RESPUESTA= SELECT first_name, last_name FROM f_staffs WHERE salary >= 20.00 AND
salary <= 60.00
4. Cree una lista de todos los títulos de CD de DJs on Demand que tienen “a” como segunda
letra del título.
SELECT title FROM D_CDS WHERE title LIKE '_a%';
5. ¿Quiénes son los partners de DJs on Demand que no reciben un importe autorizado de
gastos?
SELECT first_name, last_name FROM d_partners WHERE auth_expense_amt IS NULL;
6. Seleccione todos los empleados de la base de datos Oracle cuyos apellidos terminan en “s”.
Cambie la cabecera de la columna para que muestre Possible Candidates.
SELECT * FROM employees WHERE last_name LIKE '%s';
7. ¿Qué sentencias son válidas?
a. WHERE quantity <> NULL;
b. WHERE quantity = NULL;
c. WHERE quantity IS NULL;
d. WHERE quantity != NULL;
Respuesta: C
8. Escriba una sentencia SQL que muestre una lista de las canciones del inventario de DJs on
Demand con el código de tipo 77, 12 o 1.
SELECT *FROM d songs WHERE type code = 77 ORD type code = 12 OR type code =1;