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.
distinct Comando que suprime los duplicados
concatenación Enlaza dos columnas para formar una columna de datos de
caracteres
cadena Grupo de datos de caracteres
describe Comando de SQL Plus que muestra la estructura de una tabla
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.
Copyright © 2020 Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser marcas
comerciales de sus respectivos propietarios.
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;
b.
SELECT first_name |" " | last_name AS "DJs on Demand Clients" FROM
d_clients;
c.
SELECT DISTINCT f_order_lines
FROM quantity;
d.
SELECT order number
FROM f_orders;
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
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 ***
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
3
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
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
4
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?
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.
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
5
8. Verdadero/Falso: La siguiente sentencia SELECT se ejecuta correctamente:
SELECT last_name, job_id, salary AS Sal
FROM employees;
verdadero
9. Verdadero/Falso: La siguiente sentencia SELECT se ejecuta correctamente: SELECT *
FROM job_grades;
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
6
10. Hay cuatro errores de código en esta sentencia. ¿Puede identificarlos? SELECT employee_id,
DESCRIBE EMPLOYEES;last_name sal x 12 ANNUAL SALARY FROM employees;
11. En la expresión aritmética salary*12 - 400, ¿qué operación se evalúa en primer lugar?
(Salary*12) por la prioridad de operadores
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
7
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
R. INCISO 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
R. inciso B
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
8
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"
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
9
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.
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
10
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.
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
11