Professional Documents
Culture Documents
Datos
Oracle Baseball League
Profesor: M.C.C Derick Axel Lagunes Ramírez
Grupo: 2°D
Script DDL
CREATE TABLE inventory_list (
id VARCHAR2(11) NOT NULL,
cost NUMBER(7,2) NOT NULL,
units NUMBER(4) NOT NULL,
CONSTRAINT inventory_list_pk PRIMARY KEY ( id )
);
);
ALTER TABLE sales_representatives ADD CONSTRAINT sales_rep_sales_rep_fk FOREIGN KEY ( supervisor_id ) REFERENCES sales_representatives ( id );
R: Se crearon 10 tablas
R: Se crearon 6 columnas
3. ¿Qué instrucción se utiliza para aplicar la restricción que especifica que la columna
de categoría de la tabla de ítems debe tener un valor?
R: NOT NULL.
R: Es “customer_address_customer_fk”
5. ¿Cuáles son los valores más bajos y más altos que se pueden almacenar en la
columna de tasa de comisión para la tabla de representantes de ventas?
R: Son 0 y 99
6. ¿Cuáles son los valores más bajos y más altos que se pueden almacenar en la
columna de precio para la tabla de historial de precios?
7. ¿Cuáles son las 3 columnas que conforman la clave primaria para la tabla de
historial de precios?
a) Agrega una restricción de valor defecto que va a utilizar la fecha del día de hoy para
asignarle un valor a la columna odr_date de la tabla orders.
Código SQL:
c) Agrega una restricción check para que no se pueda agregar un current_balance menor a 0.
Código SQL:
a) Pega aquí una captura del resultado del comando DESCRIBE para la tabla CUSTOMERS.
Código SQL:
c) Pega aquí una captura del resultado del comando DESCRIBE para la tabla CUSTOMERS
para verificar la nueva columna.
Elimina columnas:
a) Pega aquí una captura del resultado del comando DESCRIBE para la tabla CUSTOMERS.
Código SQL:
c) Pega aquí una captura del resultado del comando DESCRIBE para la tabla CUSTOMERS
para verificar la eliminación de la columna.
Paso 3 (DML):
EJECUTAR EL SIGUIENTE SCRIPT
INSERT INTO items (itm_number, name, description, category, color, "Size", ilt_id )
VALUES('im01101044', 'gloves', 'catcher mitt', 'clothing', 'brown', 'm', 'il010230124');
INSERT INTO items (itm_number, name, description, category, color, "Size", ilt_id )
VALUES('im01101045', 'under shirt', 'top worn under the game top', 'clothing', 'white', 's', 'il010230125');
INSERT INTO items (itm_number, name, description, category, color, "Size", ilt_id )
VALUES('im01101046', 'socks', 'team socks with emblem', 'clothing', 'range', 'l', 'il010230126');
INSERT INTO items (itm_number, name, description, category, color, "Size", ilt_id )
VALUES('im01101047', 'game top', 'team shirt with emblem', 'clothing', 'range', 'm', 'il010230127');
INSERT INTO sales_representatives (id, email, first_name, last_name, phone_number, commission_rate, supervisor_id)
VALUES('sr01', 'chray@obl.com', 'Charles', 'Raymond', '0134598761', 10, 'sr01');
INSERT INTO sales_representatives (id, email, first_name, last_name, phone_number, commission_rate, supervisor_id)
VALUES('sr02', 'vwright@obl.com', 'Victoria', 'Wright', '0134598762', 5, 'sr01');
INSERT INTO sales_representatives (id, email, first_name, last_name, phone_number, commission_rate, supervisor_id)
VALUES('sr03', 'bspeed@obl.com', 'Barry', 'Speed', '0134598763', 5, 'sr01');
INSERT INTO customers (ctr_number, email, first_name, last_name, phone_number, current_balance, sre_id, tem_id, loyalty_card_number)
VALUES('c00001', 'bob.thornberry@heatmail.com', 'Robert', 'Thornberry', '01234567898', 150.00, 'sr01', 't001', null);
INSERT INTO customers (ctr_number, email, first_name, last_name, phone_number, current_balance, loyalty_card_number)
VALUES('c00012', 'Jjones@freemail.com', 'Jennifer', 'Jones', '01505214598', 0.00, 'lc1015');
INSERT INTO customers (ctr_number, email, first_name, last_name, phone_number, current_balance, sre_id, tem_id)
VALUES('c00101', 'unknown@here.com', 'John', 'Doe', '03216547808', 987.50, 'sr01', 't002');
INSERT INTO customers (ctr_number, email, first_name, last_name, phone_number, current_balance, loyalty_card_number)
VALUES('c00103', 'MurciaA@globaltech.com', 'Andrew', 'Murcia', '07715246890', 85.00, 'lc2341');
INSERT INTO customers (ctr_number, email, first_name, last_name, phone_number, current_balance, sre_id, tem_id)
VALUES('c01986', 'margal87@delphiview.com', 'Maria', 'Galant', '01442736589', 125.65
, 'sr03', 't003');
NOTA: Los siguientes ejercicios ya los habíamos dejado de tarea alguna vez, algunos no
los realizaron correctamente, léanlos atentamente y resuélvanlos en equipo.
Paso 4 (DML):
a) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
teams.
Código SQL:
c) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
teams donde se observe la nueva fila insertada.
d) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
customers.
e) Agrega un nuevo cliente con los siguientes datos: ctr_number = c02001, email
= brianrog@hootech.com, First_name = Brian, Last_name = Rogers,
Phone_number = 01654564898, Current_balance = -5,
Loyalty_card_number = lc4587
Código SQL:
f) Vas a observar que ocurre un error de violación de una restricción CHECK, y esto evita la
inserción del nuevo cliente. Cambia la inserción para que el
current_balance sea 50 y vuelve a correr la sentencia (esta vez debe insertar correctamente los
datos).
Código SQL:
g) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
customers donde se observe la nueva fila insertada.
Nota: Para el siguiente ejercicio debes entender como funciona una tabla que guarda el histórico de
datos en una base de datos. Donde gracias a los datos de las fechas, podemos saber por ejemplo cuando
un producto tuvo un precio diferente. Por ejemplo, si hay un registro de fecha de inicio del 5 de abril
con $200 pero también hay un registro del 8 de abril con $250 entonces significa que ese producto
tiene el precio de la fecha más próxima a hoy y también sabemos que antes del 8 de abril costaba $200.
h) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
price_history.
i) OBL va a actualizar el precio del item "premium bat", debes escribir una sentencia que
actualice los valores de end_date y end_time en el registro del precio viejo (el que ahorita
está pero va a acambiar). Para lograr esto necesitaras una condicional que use el ítem_number
y que identifique que la fecha de fin (end_date) este vacia, osea en null. Esto asegura que
vas a actualizar el ultimo precio disponible.
Código SQL:
j) Ahora inserta el nuevo precio del "premium bat", recuerda que esto significa insertar una
nueva fila en Price_history, usa SYSDATE() para insertar la fecha actual y ponle un
precio de 99.99
Código SQL:
k) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
price_history donde se observe la modificación al precio anterior y el nuevo precio del bat.
l) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
customers_addresses.
m) 'Bob Thornberry' le llamo a la empresa de OBL y le dijo que ya no podra recibir paquetes en la
dirección: '83 Barrhill Drive'. Escribe una sentencia SQL que quite esa dirección de la base
de datos (recuerda que los clientes pueden tener multiples direcciones asi que no borres todas
las del señor Thornberry, solo la que nos pidió remover)
Código SQL:
n) Pega aquí una captura de pantalla de una selección de toda la información de la tabla
customers_addresses donde se observe que ya no existe la dirección '83 Barrhill Drive'.
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
Paso 5 (DQL):
a) Selecciona toda la información de la tabla customers.
Código SQL:
Código SQL:
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
d) Muestra el número de cliente, el nombre, el apellido, el correo y el número de
teléfono de la tabla customers.
Código SQL:
Código SQL:
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
g) Para cada cliente, el campo de current_balance corresponde al dinero que le deben a la
tienda de OBL, escribe una sentencia que retorne el nombre, el apellido, el current balance y
una columna llamada ‘monthly_payment’ donde se muestre cuanto pagarían los clientes a
12 mensualidades (current_balance/12).
Código SQL:
h) OBL va a otorgar tarjetas de regalo de $5 (5.00) que pueden ser usadas para reducir su
deuda ‘current_balance’, Escribe una sentencia que muestre el nombre apellido, número de
cliente, current_balance y una columna donde se muestre su current_balance menos el valor
de la tarjeta de regalo.
Código SQL:
i) Del ejercicio g anterior, se requiere poner alias a las columnas para visualizarlas mejor. Muestra
la misma sentencia, pero de tal forma que las columnas se muestren como: “Primer Nombre”,
“Apellido”, “Deuda” y “Pagos Mensuales” (respetando mayúsculas y minúsculas).
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
j) Usando el número de cliente único en una cláusula WHERE muestra todas las columnas
para la cliente Maria Galant.
Código SQL:
k) Muestra el nombre, el apellido y el número de cliente para todos los clientes que tienen
un current_balance mayor a 100.
Código SQL:
l) Muestra el id de la orden, fecha y tiempo de todas las ordenes que se pidieron antes del
28 de mayo de 2019.
Código SQL:
m) Muestra el id del inventario, el costo y el número de unidades para todos los ítems que
tienen un costo de entre 3000 y 15000.
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
n) Muestra el id de inventario, el costo y el número de unidades de todos los ítems que tengan
50,100,150 o 200 unidades en stock.
Código SQL:
Código SQL:
p) Muestra el número de ítem y el nombre de todos los ítems que tienen un nombre que
empieza con ‘g’.
Código SQL:
q) Muestra el número de ítem y el nombre de todos los ítems cuyo nombre contiene una ‘o’.
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
r) Muestra el nombre de los equipos que NO tienen descuentos
Código SQL:
Código SQL:
t) Escribe una consulta que muestre el número de cliente, la línea de dirección 1 y el código
postal para los clientes que viven en la zona de starford en Liverpool.
Código SQL:
u) Escribe una sentencia para mostrar el numero de cliente, la línea de dirección 1 y el código
postal de los clientes que viven ya sea en starford o Liverpool.
Código SQL:
v) Escribe una consulta que muestre el número de cliente, la línea de dirección 1 y el código
postal para los clientes que NO viven en Liverpool.
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
w) Muestra el nombre del equipo y el número de jugadores ordenando la información
alfabéticamente por el nombre del equipo.
Código SQL:
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
y) Muestra toda la información de los representantes de ventas y sus direcciones usando un
natural join.
Código SQL:
z) Adapta la sentencia anterior para mostrar el id, nombre, apellido, línea de dirección 1, línea
de dirección 2, ciudad, email y número de teléfono de los representantes de ventas (manteniendo
el join natural).
Código SQL:
aa) Muestra toda la información de los ítems y su historial de precio uniendo sus respectivas tablas
con un inner join.
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
bb) Utiliza una cláusula ON para unir la tabla de clientes y la tabla de representantes de ventas de
modo que muestre el número de cliente, el primer nombre del cliente, el apellido del cliente, el
número de teléfono del cliente, el correo electrónico del cliente, el ID del representante de
ventas, el primer nombre del representante de ventas, el apellido del representante de ventas y el
correo electrónico del representante de ventas. Necesitará utilizar un alias de tabla en su
respuesta ya que ambas tablas tienen columnas con el mismo nombre.
Código SQL:
cc) Usando el enunciado anterior (bb), agrega otro join que perita mostrar el nombre del equipo que
representa al cliente.
Código SQL:
dd) Usando el enunciado anterior (cc), agrega una condición a la sentencia que muestre solo los
resultados para el cliente con el numero ‘c00001’.
Código SQL:
ATENCIÓN: Para estos ejercicios Pon el código SQL y una captura de la tabla
resultante.
ee) Escribe una consulta SQL que muestre el nombre y el costo que tenía el ítem con el número
‘im01101045’ el 12 de diciembre de 2016.
Código SQL:
ff) Escribe una consulta que muestre quién es el supervisor de cada uno de los representantes de
ventas. La información debe mostrarse en dos columnas, la primera columna será el nombre
y apellido del representante de ventas y la segunda será el nombre y apellido del supervisor.
Los alias de columna deben ser Rep y Supervisor.
Código SQL:
gg) Escribe una consulta que muestre toda la información de los clientes y sus equipos incluyendo
la información de los equipos que no tienen relación con la tabla clientes.
Código SQL:
hh) Muestra el producto cartesiano de cliente con representantes de ventas.
Código SQL: