Ejercicios
description
Transcript of Ejercicios
![Page 1: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/1.jpg)
Ejercicios
DDL-DMLProfesor:Ernesto Vivanco Tapia
![Page 2: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/2.jpg)
Ejercicios Resueltos
![Page 3: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/3.jpg)
Ejercicio Nº 1:Consultas “DDL”
![Page 4: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/4.jpg)
Cree la siguiente tabla
CREATE TABLE PERSONA( RUT VARCHAR(12) NOT NULL, NOMBRE VARCHAR(30), APELLIDO VARCHAR(20), FECHA_NACIMIENTO DATE, PRIMARY KEY (RUT));
DDLCreate…
![Page 5: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/5.jpg)
Cree la siguiente tabla
create table PRUEBA( ID int not null auto_increment, ALUMNO varchar(30), RAMO text, NOTA int, primary key (ID));
DDLCreate…
Auto Incrementable
![Page 6: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/6.jpg)
Cree la siguientes tablas
create table JEFE( RUT varchar(12) not null, NOMBRE varchar(30), primary key (RUT));
DDLCreate…
CREATE TABLE EMPLEADO( RUT VARCHAR(12) NOT NULL, NOMBRE VARCHAR(30), APELLIDO VARCHAR(30), JEFE_RUT VARCHAR(12), PRIMARY KEY (RUT), FOREIGN KEY(JEFE_RUT)
REFERENCES JEFE(RUT));
![Page 7: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/7.jpg)
Cree la siguientes tablas
CREATE TABLE BODEGA( LETRA CHAR
NOT NULL, PISO INT, PRIMARY KEY (LETRA));
DDLCreate…
CREATE TABLE PRODUCTO( N_SERIE INT NOT NULL, NOMBRE VARCHAR(20), DESCRIPCION TEXT, LETRA_BODEGA CHAR, PRIMARY KEY (N_SERIE), FOREIGN KEY
(LETRA_BODEGA) REFERENCES BODEGA(LETRA)
);
![Page 8: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/8.jpg)
Modifique las siguientes tablas
ALTER TABLE PRODUCTOADD CANTIDAD INT;
DDLAlter…
![Page 9: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/9.jpg)
Modifique las siguientes tablas
ALTER TABLE PERSONA ADD DIRECCION VARCHAR(20), ADD SEXO CHAR;
DDLAlter…
![Page 10: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/10.jpg)
Modifique las siguientes tablas
ALTER TABLE PRODUCTO ADD PRIMARY KEY(N_SERIE);
DDLAlter…
![Page 11: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/11.jpg)
Modifique las siguientes tablas
ALTER TABLE PRODUCTO ADD FOREIGN KEY(LETRA_BODEGA) REFERENCES BODEGA(LETRA);
DDLAlter…
![Page 12: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/12.jpg)
Modifique las siguientes tablas
ALTER TABLE PRODUCTO MODIFY DESCRIPCION VARCHAR(20);
DDLAlter…
![Page 13: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/13.jpg)
Modifique las siguientes tablas
ALTER TABLE JEFE MODIFY NOMBRE TEXT, ADD APELLIDOS TEXT, ADD PRIMARY KEY(RUT);
DDLAlter…
![Page 14: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/14.jpg)
Modifique las siguientes tablas
ALTER TABLE GERENTEDROP EDAD;
DDLAlter…
![Page 15: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/15.jpg)
Modifique las siguientes tablas
ALTER TABLE GERENTEDROP PRIMARY KEY;
DDLAlter…
![Page 16: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/16.jpg)
Modifique las siguientes tablas
ALTER TABLE EMPLEADO DROP INDEX FK_EMPLEADOR, ADD FOREIGN KEY(RUT_EMPLEADOR) REFERENCES GERENTE(RUT);
DDLAlter…
NOTA: Para borrar una relación (FK), tenemos que borrar directamente la relación en si (INDEX), no el campos que lo relaciona.
![Page 17: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/17.jpg)
Borre la siguiente tabla
DROP TABLE PRODUCTO;
DDLDrop…
![Page 18: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/18.jpg)
Borre la siguientes tablas
DROP TABLE GERENTE, JEFE;
DDLDrop…
![Page 19: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/19.jpg)
Ejercicio Nº 2: Consultas“Insert, Update,
Delete”
![Page 20: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/20.jpg)
DMLINSERT…
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
1-9 Carlos Victor Carmona Castro 1991-10-21 6651010
Ingrese los siguientes datos.
INSERT INTO Persona VALUES('1-9',
'Carlos Victor', 'Carmona', 'Castro', '1991-10-21', 6651010);
![Page 21: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/21.jpg)
DMLINSERT…
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
2-8 Hector Oscar Rodriguez Reberendo 1990-12-01 7780010
3-7 Betzabe Rut Noemi Carrera 1985-05-30 6004020
Ingrese los siguientes datos.
INSERT INTO PERSONA VALUES('2-8', 'Hector Oscar', 'Rodriguez', 'Reberendo',
'1990-12-01', 7780010), ('3-7', 'Betzabe Rut', 'Noemi', 'Carrera', '1985-05-
30', 6004020);
![Page 22: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/22.jpg)
DMLINSERT…
RUT Ap_Paterno Ap_Materno
4-6 Bustos Burgos
Ingrese los siguientes datos.
INSERT INTO PERSONA(RUT, Ap_Paterno, Ap_Materno)VALUES('4-6', 'Bustos', 'Burgos');
![Page 23: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/23.jpg)
DMLINSERT…
Ingrese los siguientes datos.
INSERT INTO PERSONA(RUT, Nombres, Ap_Paterno, AP_Materno, Fecha_Nacimiento) VALUES('5-5', 'Fernando', 'Garcia', 'Vazquez', '1980-03-19');
INSERT INTO PERSONA(RUT, Nombres, Ap_Paterno, AP_Materno, Fono) VALUES('6-4', 'Maria Eugenia', 'Zaravia', 'Vazquez', 1230090);
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
5-5 Fernando Garcia Vazquez 1980-03-19
6-4 Maria Eugenia Zaravia Vazquez 1230090
![Page 24: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/24.jpg)
DMLINSERT…
Fecha_Nacimiento Ap_Paterno RUT Ap_Materno Fono Nombres
1990-01-24 Castillo 7-3 Castilla 9905050 Adrian
Ingrese los siguientes datos.
INSERT INTO PERSONA(Fecha_Nacimiento, Ap_Paterno, RUT, Ap_Materno, Fono, Nombres) VALUES('1990-01-24', 'Castillo', '7-3', 'Castilla', 9905050, 'Adrian');
NOTA: Cuando aun asi ingresando todos los campos, pero de forma ‘Desordenada’, se tiene que especificar el orden de ingreso.
![Page 25: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/25.jpg)
DMLUPDATE…
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
1-9 Carlos Victor Carmona Castro 1991-10-21 6651010
Actualiza los siguientes datos
UPDATE persona SET Ap_Paterno = 'Carcamo'
Carcamo
![Page 26: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/26.jpg)
DMLUPDATE…
Actualiza los siguientes datos
UPDATE persona SET Fono = 1234567
1234567
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
5-5 Fernando Garcia Vazquez 1980-03-19
4-6 Bustos Burgos
5-5 Fernando Garcia Vazquez 1980-03-19 1234567
4-6 Bustos Burgos 1234567
![Page 27: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/27.jpg)
DMLUPDATE…
Actualiza los siguientes datos
UPDATE PERSONA SET Nombres = 'Bastian' WHERE RUT = '4-6';
Bastian
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
5-5 Fernando Garcia Vazquez 1980-03-19 1234567
4-6 Bustos Burgos 1234567
RUT Nombres Ap…...
4-6 Bastian Bus……
RECORDATORIO: La instrucción UPDATE actualiza TODOS LOS REGISTROS de la tabla, pero con la condición WHERE podemos actualizar el registro especificado (con la PK de la tabla) [‘4-6’]
![Page 28: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/28.jpg)
DMLUPDATE…
Actualiza los siguientes datos
UPDATE PERSONA SET Fecha_Nacimiento = '1995-11-20' WHERE RUT = '4-6';
1992-04-18
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
4-6 Bastian Bustos Burgos (NULL) 1234567
6-4 Maria Eugenia Zaravia Vazquez (NULL) 1230090
1995-11-20
UPDATE PERSONA SET Fecha_Nacimiento = '1992-04-18' WHERE RUT = '6-4';
![Page 29: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/29.jpg)
DMLDELETE…
Elimina los siguientes registros
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
8-8 Z Z Z 2011-09-12 123
DELETE FROM Persona;
RECORDATORIO: La instrucción DELETE (al igual que UPDATE) elimina TODOS LOS REGISTROS de la tabla, pero con la condición WHERE podemos eliminar un registro específico (con la PK de la tabla) [‘8-8’]
![Page 30: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/30.jpg)
DMLDELETE…
Elimina los siguientes registros
DELETE FROM PersonaWHERE RUT = ’9-9’;
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
5-5 Fernando Garcia Vazquez 1980-03-19 1234567
9-9 Fernando Garcia Basques 1980-03-18 1234567
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
5-5 Fernando Garcia Vazquez 1980-03-19 1234567
![Page 31: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/31.jpg)
DMLDELETE…
Elimina todos los registros que en el fono, parten con el numero ‘9’
DELETE FROM PersonaWHERE Fono Like ’9%’;
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
2-8 Hector Oscar Rodriguez Reberendo 1990-12-01 9103454
5-5 Fernando Garcia Vazquez 1980-03-19 1234567
8-2 Andres Felipe Oyanedel Carrera 1991-11-30 9500123
RUT Nombres Ap_Paterno Ap_Materno Fecha_Nacimiento Fono
5-5 Fernando Garcia Vazquez 1980-03-19 1234567
![Page 32: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/32.jpg)
DMLANALISIS…La tabla [PRODUCTOS] han sido modificados en
muchas cosas, analiza y guarda el historial de consultas que llevaron a modificar la tabla
ID Nombre Tipo Cantidad
1 Mouse Entrada 50
2 Teclado Entrada 25
3 Impresora Entrada 75
4 Pantalla Salida 40
5 Parlantes Salida 25
ID Nombre Tipo Cantidad
1 Mouse Entrada 66
2 Teclado Entrada 66
3 Impresora Salida 66
4 Pantalla Salida 40
6 Pendrive Entrada 40
A B
![Page 33: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/33.jpg)
DMLANALISIS…ID Nombre Tipo Cantidad
1 Mouse Entrada 50
2 Teclado Entrada 25
3 Impresora Entrada 75
4 Pantalla Salida 40
5 Parlantes Salida 25
ID Nombre Tipo Cantidad
1 Mouse Entrada 66
2 Teclado Entrada 66
3 Impresora Salida 66
4 Pantalla Salida 40
6 Pendrive Entrada 51
1.- Los ‘Parlantes’ se ELIMINARON
DELETE FROM PRODUCTOSWHERE ID = 5;
![Page 34: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/34.jpg)
DMLANALISIS…ID Nombre Tipo Cantidad
1 Mouse Entrada 50
2 Teclado Entrada 25
3 Impresora Entrada 75
4 Pantalla Salida 40
5 Parlantes Salida 25
ID Nombre Tipo Cantidad
1 Mouse Entrada 66
2 Teclado Entrada 66
3 Impresora Salida 66
4 Pantalla Salida 40
6 Pendrive Entrada 51
2.- ‘Pendrive’ es un NUEVO PRODUCTO
INSERT INTO PRODUCTO VALUES(6, ’Pendrive’, ’Entrada’, 51);
![Page 35: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/35.jpg)
DMLANALISIS…ID Nombre Tipo Cantidad
1 Mouse Entrada 50
2 Teclado Entrada 25
3 Impresora Entrada 75
4 Pantalla Salida 40
5 Parlantes Salida 25
ID Nombre Tipo Cantidad
1 Mouse Entrada 66
2 Teclado Entrada 66
3 Impresora Salida 66
4 Pantalla Salida 40
6 Pendrive Entrada 51
3.- Se actualizo la ‘Cantidad’ de ProductosNOTA: ¿que tienen en común?
La ID de los productos son
todos menores a 4UPDATE PRODUCTOS SET Cantidad = 66 WHERE ID < 4;
![Page 36: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/36.jpg)
DMLANALISIS…ID Nombre Tipo Cantidad
1 Mouse Entrada 50
2 Teclado Entrada 25
3 Impresora Entrada 75
4 Pantalla Salida 40
5 Parlantes Salida 25
ID Nombre Tipo Cantidad
1 Mouse Entrada 66
2 Teclado Entrada 66
3 Impresora Salida 66
4 Pantalla Salida 40
6 Pendrive Entrada 51
4.- Se actualizo el ‘Tipo’ de ProductoNOTA: ¿Se actualizo otro ‘Tipo’?
¡NO!, Entonces tenemos que
borrar este único registro, por PK
UPDATE PRODUCTOS SET Tipo = ’Salida’ WHERE ID = 3;
![Page 37: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/37.jpg)
RESUMENANALISIS
DMLANALISIS…ID Nombre Tipo Cantidad
1 Mouse Entrada 50
2 Teclado Entrada 25
3 Impresora Entrada 75
4 Pantalla Salida 40
5 Parlantes Salida 25
ID Nombre Tipo Cantidad
1 Mouse Entrada 66
2 Teclado Entrada 66
3 Impresora Salida 66
4 Pantalla Salida 40
6 Pendrive Entrada 51
1.- Los ‘Parlantes’ se ELIMINARON
2.- ‘Pendrive’ es un NUEVO PRODUCTO3.- Se ACTUALIZO la ‘Cantidad’ de Productos4.- Se ACTUALIZO el ‘Tipo’ de Producto
![Page 38: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/38.jpg)
Ejercicio Nº 3:Consultas “SELECT”
ModeloDatos
Backup.rar
Backup
![Page 39: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/39.jpg)
1 Tabla 0 CondicionMostrar todos los registros de la tabla [USUARIO].
SELECT * FROM usuario;
![Page 40: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/40.jpg)
1 Tabla 0 CondicionMostrar el Ap. Paterno, el Ap. Materno y su saldo.
SELECT Apellido_Pat, Apellido_Mat, Saldo
FROM usuario;
![Page 41: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/41.jpg)
Mostrar el RUT, y la fecha de nacimiento de una persona.
1 Tabla 0 Condicion
SELECT RUT, Fecha_Nacimiento
FROM usuario;
![Page 42: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/42.jpg)
Muestre el Saldo del usuario con RUT ‘5-5’
1 Tabla 1 condicion
SELECT SaldoFROM usuarioWHERE RUT = '5-5';
![Page 43: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/43.jpg)
Mostrar todos los datos de los usuarios que vivan en la COMUNA ‘Puente Alto’
1 Tabla 1 condicion
SELECT * FROM usuarioWHERE Comuna = 'Puente Alto';
![Page 44: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/44.jpg)
Mostrar el RUT, y la Comuna de los usuarios que tienen de apellido materno ‘Flores’
1 Tabla 1 condicion
SELECT RUT, ComunaFROM usuarioWHERE Apellido_Mat = 'Flores';
![Page 45: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/45.jpg)
Mostrar los Nombres y los Apellidos de los usuarios que NO sean del sexo Femenino (‘F’)
1 Tabla 1 condicion
SELECT Nombres, Apellido_Pat, Apellido_MatFROM usuarioWHERE NOT(sexo = 'F');
![Page 46: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/46.jpg)
Muestre el RUT, el Apellido Paterno y la fecha de nacimientos de las personas que tengan de segundo nombre ‘Carlos’
1 Tabla 1 condicion
SELECT RUT, Apellido_Pat, Fecha_Nacimiento
FROM usuarioWHERE Nombres LIKE '%Carlos';
![Page 47: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/47.jpg)
Mostrar el RUT y Apellido Paterno (con su respectivo saldo) de los usuarios que tienen un saldo MAYOR a $10.000
1 Tabla 1 condicion
SELECT rut, Apellido_Pat, SaldoFROM usuarioWHERE saldo > 10000;
![Page 48: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/48.jpg)
Mostrar todos los datos de los usuarios que tienen un saldo entre $4.000 y $9.000
1 Tabla 2 condiciones
SELECT *FROM usuarioWHERE saldo BETWEEN 4000 AND 9000;
![Page 49: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/49.jpg)
Muestre todos los datos del usuario que vive en ‘Renca’, y que además sea un usuario ‘Femenino’
1 Tabla 2 condiciones
SELECT *FROM usuarioWHERE Comuna = 'Renca'AND sexo = 'F';
![Page 50: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/50.jpg)
Mostrar todos los nombres de los usuarios que NO partan con la letra ‘P’, ni con la letra ‘A’ en el 1er nombre.
1 Tabla 2 condiciones
SELECT NombresFROM usuarioWHERE NOT( Nombres LIKE 'P%')AND NOT( Nombres LIKE 'A%');
![Page 51: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/51.jpg)
Mostrar el RUT y los nombres de los usuarios que viven en la comuna de ‘RENCA’ o en la comuna de ‘Puente Alto’
1 Tabla 2 condiciones
SELECT RUT, NombresFROM usuarioWHERE Comuna = 'Renca'OR Comuna = 'Puente Alto';
![Page 52: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/52.jpg)
¿Cuantos usuarios se encuentran registrados?
1 Tabla 1 funcion
SELECT COUNT(*)FROM usuario;
![Page 53: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/53.jpg)
Muestre el saldo MAXIMO de todos los usuarios
1 Tabla 1 funcionSELECT MAX(Saldo)FROM usuario;
![Page 54: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/54.jpg)
Muestre el saldo MINIMO de todos los usuarios
1 Tabla 1 funcionSELECT MIN(Saldo)FROM usuario;
![Page 55: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/55.jpg)
Muestre la SUMA de los saldos de los usuarios
1 Tabla 1 funcionSELECT SUM(Saldo)FROM usuario;
![Page 56: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/56.jpg)
Muestre el PROMEDIO de los saldos de los usuarios (Redondeado en un NUMERO ENTERO)
1 Tabla 1 funcion
SELECT ROUND(AVG(Saldo))FROM usuario;
Promedio Promedio Redondeado
![Page 57: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/57.jpg)
¿Cuantos usuarios viven en RENCA? (Ocupe sobre-nombre ‘Renquinos’)
1 Tabla 1 funcion
SELECT COUNT(*) AS RenquinosFROM usuarioWHERE Comuna = 'Renca';
1 condicion
Sin alias Con alias
![Page 58: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/58.jpg)
¿Cuánto seria la suma de los Saldos (alias ‘ahorros’) de las personas que viven en la comuna que parte con el nombre ‘Puente’?
1 Tabla 1 funcion
SELECT SUM(Saldo) AS ahorrosFROM usuarioWHERE Comuna LIKE 'Puente%';
1 condicion
![Page 59: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/59.jpg)
¿Cuál es el promedio de los saldos (Redondeado) de los usuarios con apellido materno ‘Flores’?
1 Tabla 1 funcion
SELECT ROUND(AVG(Saldo)) AS promedioFROM usuarioWHERE Apellido_Mat = 'Flores';
1 condicion
Es recomendable que los campos de funciones, le asignamos un ‘sobrenombre’ (alias) para un mejor uso y visibilidad.
![Page 60: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/60.jpg)
1 Tabla 1 Agrupación1 Función ¿Cuantas personas hay por comuna?
SELECT Comuna, COUNT(*) AS cantidadFROM usuarioGROUP BY Comuna;
![Page 61: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/61.jpg)
1 Tabla 1 Agrupación1 Función Muestre la suma de los saldos de cada sexo
SELECT Sexo, SUM(saldo) AS sumaFROM usuarioGROUP BY sexo;
![Page 62: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/62.jpg)
Ordenamiento1 Tabla Muestre todos los datos de los usuarios ordenados desde
el usuario que tiene mas saldo hasta el que tiene menor saldo. SELECT * FROM usuario
ORDER BY Saldo DESC;
![Page 63: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/63.jpg)
Ordenamiento1 Tabla Muestre los nombres y los apellidos de todos los
usuarios ordenados alfabéticamente por ‘Nombre’SELECT nombres, Apellido_Pat, Apellido_MatFROM usuarioORDER BY nombres ASC;
ASC: Ascendente.DESC: Descendente.
![Page 64: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/64.jpg)
Ordenamiento1 Tabla Muestre el RUT de los usuarios desde el usuario mas
joven, hasta el usuario mas viejoSELECT rutFROM usuarioORDER BY Fecha_nacimiento DESC;
![Page 65: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/65.jpg)
Ordenamiento1 Tabla AgrupaciónFunción ¿Cual es el promedio de los saldo por COMUNA (alias
‘Liquido’)? Ordene de menor a mayor.SELECT comuna, AVG(Saldo) AS promedioFROM usuarioGROUP BY ComunaORDER BY promedio ASC;
NOTA: El uso de un alias (promedio) puede ser usado despues para llamar al resultado de la funcion hecha, sin necesidad de pedirla nuevamente
![Page 66: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/66.jpg)
Ordenamiento1 Tabla AgrupaciónFunción Ordenado alfabéticamente, ¿Cuántas personas tienen el
mismo Apellido Materno?SELECT Apellido_Mat, COUNT(*) AS cantidadFROM usuarioGROUP BY Apellido_MatORDER BY Apellido_Mat ASC;
![Page 67: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/67.jpg)
1 Tabla Limites Muestre los 2 mayores Saldos que se encuentran en la
tabla usuario
SELECT SaldoFROM usuarioORDER BY Saldo DESCLIMIT 2;
Ordenamiento
![Page 68: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/68.jpg)
Muestre los Nombres (con su fecha nacimiento) de los primeros 3 usuarios mas jóvenes.
SELECT Nombres, Fecha_NacimientoFROM usuarioORDER BY Fecha_Nacimiento DESCLIMIT 3;
1 Tabla LimitesOrdenamiento
![Page 69: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/69.jpg)
Muestre el Año en que nació cada usuario (Muestre solo RUT)
SELECT RUT, YEAR(Fecha_Nacimiento) AS año
FROM usuario;
1 Tabla Fechas
![Page 70: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/70.jpg)
Muestre el Apellido Paterno del los usuarios, con su Mes y el Día (Por separado) en que nacieron cada uno
SELECT Apellido_Pat, MONTH(Fecha_Nacimiento) AS mes, DAY(Fecha_Nacimiento) AS dia
FROM usuario;
1 Tabla Fechas
![Page 71: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/71.jpg)
Muestre la fecha Actual, junto con la fecha de Nacimiento de cada persona, y su RUT.
SELECT CURRENT_DATE AS ahora, fecha_Nacimiento, RUT
FROM usuario;
1 Tabla Fechas
![Page 72: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/72.jpg)
Mostrando cada RUT, ¿Cuántos AÑOS hay de diferencia entre la fecha actual, y la fecha de nacimiento?
SELECT RUT, (YEAR(CURRENT_DATE) - YEAR(Fecha_Nacimiento)) AS diferenciaFROM usuario;
1 Tabla Campo Combinado
Año Actual 2011
Año Nacimiento ‘1-9’ 1991
RESULTADO 20
![Page 73: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/73.jpg)
Mostrando cada RUT, ¿Cuántos DIAS hay de diferencia entre la fecha actual, y la fecha de nacimiento?
SELECT DATEDIFF (CURRENT_DATE, Fecha_Nacimiento) AS diferencia, RUTFROM usuario;
1 Tabla Campo Combinado
Fecha Actual 2011-09-14
Fecha RUT ‘9-1’ 1990-02-24
Fecha Actual2011 09 14
Nacimiento 9-11990 02 24
2011 – 1990 = 21 años
21 años * 365 = 7665 Dias
09/14 – 02/24 = 202 Dias
7665
202
7867 5
años bisiestos7872
![Page 74: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/74.jpg)
En cada fecha de nacimiento, ¿Cuántas semanas faltaron para que llegaran A FIN DE AÑO (31/Diciembre)?
SELECT RUT, WEEK('2011-12-31') AS fin, WEEK(Fecha_Nacimiento) AS N_Semana,WEEK('2011-12-31') - WEEK(Fecha_Nacimiento) AS diferenciaFROM usuario;
1 Tabla Campo Combinado
Fecha RUT ‘9-1’ 1989-05-01
Fecha FINAL 2011-12-31
Mes 12Dia 31:
NºSemana: 52
Mes: 05Dia: 01Nº Semana18
52 18 34
![Page 75: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/75.jpg)
Muestre la cantidad de personas que nacieron por año
1 Tabla función
SELECT YEAR(Fecha_Nacimiento) AS año, COUNT(*) AS cantidad
FROM usuarioGROUP BY YEAR(Fecha_Nacimiento);
Fechas Agrupación
![Page 76: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/76.jpg)
Muestre el promedio de los sueldos separados por el MES de nacimiento de cada usuario.
SELECT MONTH(Fecha_NAcimiento) AS Mes, ROUND(AVG(Saldo)) AS promedioFROM usuarioGROUP BY Mes;
1 Tabla función Fechas Agrupación
![Page 77: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/77.jpg)
De las personas que nacieron en el año ‘1991’ ¿Cuánto seria la suma de los saldos de ellos?
1 Tabla funcion
SELECT SUM(Saldo) AS sumaFROM usuarioWHERE YEAR(Fecha_Nacimiento) = 1991;
condicion Fechas
![Page 78: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/78.jpg)
¿Cuántas ‘Mujeres’ nacieron el año 1990?
1 Tabla funcion
SELECT COUNT(*) AS mujeresFROM usuarioWHERE Sexo='F'AND YEAR(Fecha_Nacimiento) = 1990;
condicion Fechas
![Page 79: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/79.jpg)
Muestre la suma de los saldos de los usuarios que nacieron el mismo año, mostrándolo con su respectivo año. Solo muestre los 2 primeros saldos mayores. Anule el año ‘1991’.
1 Tabla funcion
SELECT YEAR(Fecha_Nacimiento) AS año, SUM(Saldo) AS suma_año
FROM usuarioWHERE NOT (YEAR(Fecha_Nacimiento) = 1991)GROUP BY añoORDER BY suma_año DESCLIMIT 2;
condicion FechasOrdenamiento Limites Agrupación
![Page 80: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/80.jpg)
Ejercicio Nº 4:Consultas ‘SELECT’ con
“INNER JOIN”
1
1
2
3
4
![Page 81: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/81.jpg)
Modelo Ejercicios [1] INNER JOIN
![Page 82: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/82.jpg)
Datos
Tabla [Bodega]
![Page 83: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/83.jpg)
Datos
Tabla [Producto]
![Page 84: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/84.jpg)
Datos
Tabla [Almacenaje]
![Page 85: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/85.jpg)
Datos
Tabla [Ventas]
![Page 86: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/86.jpg)
Backup
Se recomienda generar el script de la bases de datos, y trabajar junto al gestor de base de datos (ejemplo: SQLYog) para poder así comprobar realmente los comandos, y las tablas resultantes.
Ejercicio N4,1 - Inner Join.rar
![Page 87: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/87.jpg)
2 Tablas Una las tablas ‘ALMACENAJE’ y la tabla ‘BODEGA’.
SELECT *FROM bodega INNER JOIN almacenajeON bodega.letra = almacenaje.bodega_letra;
![Page 88: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/88.jpg)
2 Tablas Muestre todos los datos de los productos, y las letras de
las bodegas en donde están almacenadas cada 1.SELECT producto.ID, producto.nombre, producto.categoria,
producto.precio, almacenaje.Bodega_LetraFROM producto INNER JOIN almacenajeON producto.ID = almacenaje.producto_ID;
![Page 89: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/89.jpg)
2 Tablas Muestre las ventas (n_boleta, cantidad) que se han
hecho junto con sus productos (nombre, categoría)SELECT ventas.n_boleta, ventas.id_producto, producto.nombre, producto.categoria, ventas.cantidadFROM ventas INNER JOIN productoON ventas.id_producto = producto.id;
![Page 90: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/90.jpg)
2 Tablas Muestre todos los productos que se encuentran en la
bodega con la letra ‘B’SELECT p.nombre, p.categoria, p.precio, a.bodega_letra, a.cantidadFROM producto AS p INNER JOIN almacenaje AS aON p.id = a.producto_idWHERE a.bodega_letra = 'B';
Condición
El Alias ‘p’ se usa muchas veces, pero debería haberse declarado por lo menos una
vez en toda la instrucción
![Page 91: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/91.jpg)
2 Tablas Muestre todas las ID de los productos que estén
guardado en una bodega que no se encuentre en el primer piso
SELECT a.producto_id, b.pisoFROM almacenaje AS a INNER JOIN bodega AS bON a.bodega_letra = b.letraWHERE b.piso > 1;
Condición
![Page 92: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/92.jpg)
2 Tablas Muestre todas las ID de los productos (junto con las
letras de las bodegas) que NO se almacenan en una avenida (Avda.)
SELECT a.producto_id, b.letraFROM almacenaje AS a INNER JOIN bodega AS bON a.bodega_letra = b.letraWHERE NOT(b.calle LIKE 'Avda.%');
Condición
![Page 93: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/93.jpg)
2 Tablas ¿Cuántos productos se guardan en RENCA?
SELECT COUNT(*) AS cantidadFROM almacenaje AS a INNER JOIN bodega AS bON a.bodega_letra = b.letraWHERE Comuna = 'Renca';
Condición Función
![Page 94: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/94.jpg)
2 Tablas ¿Cuánto es la suma de los precios de los productos que
se encuentran en la bodega ‘A’ mas la bodega ‘H’?SELECT SUM(precio) AS sumaFROM producto p INNER JOIN almacenaje aON a.producto_id = p.idWHERE (a.bodega_letra = 'A') OR (a.bodega_letra = 'H');
Condición Función
![Page 95: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/95.jpg)
2 Tablas Muestre la suma de la cantidad de productos que se
encuentras por ‘Comuna’?SELECT SUM(a.cantidad) AS suma, b.ComunaFROM almacenaje a INNER JOIN bodega bON a.bodega_letra = b.letraGROUP BY Comuna;
Función Agrupación
![Page 96: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/96.jpg)
2 Tablas ¿ Cuantos TIPOS de productos se almacenan por ‘Piso’ ?
SELECT COUNT(*) AS cantidad, b.pisoFROM almacenaje a INNER JOIN bodega bON a.bodega_letra = b.letraGROUP BY Piso;
Función Agrupación
![Page 97: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/97.jpg)
2 Tablas Sume los precios de los productos que se encuentran en
la bodega ‘A’SELECT SUM(p.precio) AS sumaFROM Almacenaje a INNER JOIN producto pON p.ID = a.Producto_IDWHERE a.Bodega_letra = 'A'GROUP BY Bodega_Letra;
Condición Función Agrupación
![Page 98: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/98.jpg)
2 Tablas Sume todas las ventas de los productos tipo
‘Computación’SELECT SUM(v.cantidad) AS suma, p.categoriaFROM ventas AS v INNER JOIN producto AS pON v.ID_producto = p.IDWHERE p.Categoria = 'Computacion'GROUP BY p.categoria;
Condición Función Agrupación
![Page 99: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/99.jpg)
2 Tablas Muestre los 2 tipos de productos (categoría) menos
vendidos.SELECT SUM(v.cantidad) AS suma, p.categoriaFROM ventas AS v INNER JOIN producto AS pON v.ID_producto = p.IDGROUP BY p.categoriaORDER BY suma ASCLIMIT 2;
Condición Otros…Agrupación
![Page 100: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/100.jpg)
3 Tablas Muestre los nombres de los productos que solo se
guardan en la comuna de ‘puente alto’.SELECT p.Nombre, b.ComunaFROM (Producto p INNER JOIN Almacenaje aON p.ID = a.producto_id ) INNER JOIN Bodega bON a.bodega_letra = b.letraWHERE b.Comuna = 'Puente Alto';
Condición
Cuando se hacen INNER JOIN con mas de 2 tablas, tenemos que unir
primero un par, y el resultado unirla con otra
1 2
![Page 101: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/101.jpg)
3 Tablas El producto ‘Mouse’ ¿En que bodegas están guardados
estos tipos de productos?SELECT b.*, P.NombreFROM (bodega b INNER JOIN Almacenaje aON a.bodega_letra = b.letra ) INNER JOIN Producto pON p.ID = a.producto_idWHERE p.Nombre = 'Mouse';
Condición
![Page 102: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/102.jpg)
3 Tablas En la venta Nº 1014, se vendio cierto producto: ¿Cual(es)
es(son) la(s) bodega(s) en que se almacena ese producto vendido?
SELECT v.n_boleta, v.id_producto, p.nombre, a.bodega_letraFROM (ventas v INNER JOIN producto pON v.id_producto = p.id) INNER JOIN almacenaje aON a.producto_id = p.idWHERE v.n_boleta = '1014';
Condición
![Page 103: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/103.jpg)
Muestre la suma de los precios de los productos agrupados por dirección (calle y numero).
SELECT SUM(p.precio) AS suma, CONCAT(b.calle, ' ',b.numero) AS direccionFROM (bodega b INNER JOIN Almacenaje aON a.bodega_letra = b.letra ) INNER JOIN Producto pON p.ID = a.producto_idGROUP BY direccion;
3 Tablas Función Agrupación
La funcion CONCAT une caracteres.
Ejemplo: CONCAT(“Chao” “Mundo” “Cruel”);Resultado: [ChaoMundoCruel]
![Page 104: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/104.jpg)
3 Tablas De los productos que se guardan en cada bodega,
¿Cuántos productos he vendido de cada una?NOTA: No muestre ni la bodega ‘Z’ ni la bodega ‘Y’SELECT COUNT(*) AS cantidad, a.bodega_letraFROM (ventas v INNER JOIN producto pON v.id_producto = p.id) INNER JOIN almacenaje aON a.producto_id = p.idWHERE NOT(a.bodega_letra = 'Z') AND NOT(a.bodega_letra = 'Y')GROUP BY a.bodega_letra;
Condición Función Agrupación
![Page 105: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/105.jpg)
4 Tablas Muestre la direccion, y el piso de cada producto vendido
SELECT v.n_boleta, b.calle, b.numero, b.pisoFROM ((ventas v INNER JOIN producto pON v.id_producto = p.id) INNER JOIN Almacenaje aON a.producto_id = p.id) INNER JOIN Bodega bON b.letra = a.bodega_letra;
![Page 106: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/106.jpg)
4 Tablas Condición Función Agrupación En el año 2010, ¿cuantos productos de han vendido,
agrupándolos por dirección (Calle + Numero)?SELECT SUM(v.cantidad) AS vendidos, p.nombre, b.calle, b.numeroFROM ((ventas v INNER JOIN producto pON v.id_producto = p.id) INNER JOIN Almacenaje aON a.producto_id = p.id) INNER JOIN Bodega bON b.letra = a.bodega_letraWHERE YEAR(v.fecha_venta) = '2010'GROUP BY b.calle, b.numero;
![Page 107: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/107.jpg)
Modelo Ejercicios [2]INNER JOIN
![Page 108: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/108.jpg)
Datos
Tabla [Cliente]
![Page 109: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/109.jpg)
Datos
Tabla [Vendedor]
![Page 110: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/110.jpg)
Datos
Tabla [Producto]
![Page 111: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/111.jpg)
Datos
Tabla [Venta]
![Page 112: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/112.jpg)
Backup
Ejercicio N4 - Inner Join.rar
Se recomienda generar el script de la bases de datos, y trabajar junto al gestor de base de datos (ejemplo: SQLYog) para poder así comprobar realmente los comandos, y las tablas resultantes.
![Page 113: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/113.jpg)
2 Tablas Muestre el vendedor, junto con los productos (solo ID)
con su cantidad vendida.
SELECT vendedor.nombres, vendedor.apellidos, venta.producto_id, venta.cantidad
FROM vendedor INNER JOIN ventaON vendedor.rut = venta.vendedor_rut;
![Page 114: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/114.jpg)
2 Tablas Muestre el nombre del producto vendido en cada venta.
SELECT v.id, p.nombreFROM venta v INNER JOIN producto pON v.producto_id = p.id;
![Page 115: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/115.jpg)
Muestra las ventas del señor ‘Carrasco’
SELECT vt.id, vt.producto_id, vt.cantidad, vd.apellidos
FROM venta vt INNER JOIN vendedor vdON vt.vendedor_rut = vd.rutWHERE apellidos = 'Carrasco';
2 Tablas Condición
![Page 116: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/116.jpg)
Muestra las compras de ‘Juan Carlos’
SELECT v.id, v.producto_id, v.cantidad, c.nombresFROM venta v INNER JOIN cliente cON v.cliente_rut = c.rutWHERE c.nombres = 'Juan Carlos';
2 Tablas Condición
![Page 117: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/117.jpg)
cuantas compras a hecho el cliente con apellidos ‘Pérez Castro’
SELECT COUNT(*) AS compras, c.Apellidos FROM venta v INNER JOIN cliente c ON v.cliente_rut = c.rut WHERE Apellidos = 'Perez Castro';
2 Tablas Condición Función
![Page 118: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/118.jpg)
¿Cual es el promedio de cantidad de productos comprados de los clientes que tiene celular ENTEL (‘E’)?
SELECT ROUND(AVG(v.cantidad)) AS prom, c.Compania FROM venta v INNER JOIN cliente c ON v.cliente_rut = c.rut WHERE c.compania = 'E';
2 Tablas Condición Función
![Page 119: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/119.jpg)
Ahora muestre el promedio de cantidad de productos comprados de los clientes por cada compañía de celular.
SELECT ROUND(AVG(v.cantidad)) AS promedio, c.Compania
FROM venta v INNER JOIN cliente c ON v.cliente_rut = c.rut GROUP BY C.compania;
2 Tablas Función Agrupación
![Page 120: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/120.jpg)
Muestre la cantidad de ventas que a hecho cada vendedor (Muestre solo Nombre y Apellido)
SELECT vd.nombres, vd.apellidos, COUNT(*) AS ventasFROM venta vt INNER JOIN vendedor vdON vt.vendedor_rut = vd.rutGROUP BY vd.rut;
2 Tablas Función Agrupación
![Page 121: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/121.jpg)
¿Cuantas veces se ha vendido un producto que sirve (descripcion) por lo menos para ‘escuchar’ (similar), y otro producto que sirva para ‘Ingresar Palabras’ (textual)?
SELECT COUNT(*) AS ventas, p.DescripcionFROM producto p INNER JOIN venta vON p.ID = v.producto_idWHERE p.Descripcion LIKE 'Escuchar%'OR p.Descripcion = 'Ingresa Palabras'GROUP BY p.Descripcion;
2 Tablas Condición Función Agrupación
![Page 122: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/122.jpg)
Muestre las 5 primeras ventas con menos ganancia[Ganancia = precio * cantidad]
SELECT v.id, v.vendedor_rut, (v.cantidad * p.precio) AS total
FROM producto p INNER JOIN venta vON p.id = v.producto_idORDER BY total ASCLIMIT 5;
2 TablasOtros usos con…
![Page 123: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/123.jpg)
Muestre la 3ra y 4ta venta con mas ganancia[Ganancia = precio * cantidad]
SELECT v.id, (v.cantidad * p.precio) AS totalFROM producto p INNER JOIN venta v ON p.id = v.producto_idORDER BY total DESC LIMIT 2,2;
2 TablasOtros usos con…
NOTA: cuando se escribe ‘LIMIT X’ hace referencia a ‘x’ cantidad de registros. Pero con ‘LIMIT X, Y’ hace referencia ‘X’ el numero de registro donde empesara, ‘Y’ hace referencia a cuantos registros a partir de ‘X’ mostrara.
![Page 124: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/124.jpg)
Muestre el numero de cada venta, junto al nombre del comprador con el del vendedor.
SELECT vt.id, vd.Nombres AS vendedor, c.nombres AS cliente
FROM (venta vt INNER JOIN cliente c ON
vt.cliente_rut = c.rut) INNER JOIN vendedor vd
ON vd.rut = vt.vendedor_rut;
3 Tablas
![Page 125: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/125.jpg)
¿Cuántos Mouse compro el cliente ‘Felipe Carlos’?
SELECT COUNT(*) AS cantidad, c.NombresFROM (venta vt INNER JOIN cliente c ON vt.cliente_rut = c.rut) INNER JOIN producto pON p.id = vt.producto_idWHERE c.Nombres = 'Felipe Carlos'AND p.nombre = 'Mouse';
3 Tablas Condición Función
![Page 126: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/126.jpg)
Un cliente por su celular, pudo efectuar muchas ventas. El numero del cliente es ‘78787878’. Muestre todos los productos que compro, y cuantos compro.
SELECT v.id, p.nombre AS producto, v.cantidadFROM (producto p INNER JOIN venta vON p.ID = v.producto_id) INNER JOIN cliente c ONc.rut = v.cliente_rutWHERE c.celular = 78787878;
3 Tablas Condición Función
![Page 127: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/127.jpg)
Muestre un informe detallado de la VENTA Nº 15: El comprador, el vendedor, el producto vendido, su precio unitario, la cantidad de productos vendidos, el precio final de la venta. (NOTA: Mostrar los nombres y apellidos CONCADENADOS)
SELECT vt.id,CONCAT (c.nombres, ' ', c.apellidos) AS cliente,CONCAT (vd.nombres, ' ', vd.apellidos) AS vendedor,p.nombre AS producto, p.precio AS precio_unitario,vt.cantidad, (vt.cantidad * p.precio) AS precio_finalFROM ((venta vt INNER JOIN producto pON p.id = vt.producto_id) INNER JOIN cliente c ONc.rut = vt.cliente_rut) INNER JOIN vendedor vd ONvd.rut = vt.vendedor_rutWHERE vt.id = 15;
4 Tablas Condición
![Page 128: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/128.jpg)
Fin de: Ejercicios RESUELTOS
![Page 129: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/129.jpg)
Ejercicios PROPUESTOS
![Page 130: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/130.jpg)
Ejercicio Nº 1:Consultas “DDL”
Analisa los cambios, y modifique las
siguientes tablas
![Page 131: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/131.jpg)
Consultas “DDL”
Tabla PERSONA
RUT Varchar(3)
Nombre Varchar(30)
Apellido Varchar(30)
Tabla PERSONA
RUT Varchar(3)
Nombre Varchar(30)
Apellido Varchar(30)
Fecha_Nacimiento date
Antes Despues
![Page 132: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/132.jpg)
Consultas “DDL”
Antes DespuesTabla USUARIOID Int
Username Varchar(12)
Nombre Varchar(30)
Apellido Varchar(30)
Tabla USUARIOID Int
Nombre Varchar(30)
Apellido Varchar(30)
![Page 133: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/133.jpg)
Consultas “DDL”
Antes DespuesTabla PRODUCTON_Serie int
Nombre Varchar(30)
Descripcion Text
Cantidad Int
Precio Int
Tabla PRODUCTON_Serie int
Nombre Varchar(30)
Cantidad Int
Precio Int
Bod_Letra char
Tabla BODEGALetra Char
Tabla BODEGALetra Char
FK
![Page 134: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/134.jpg)
Consultas “DDL”
Antes DespuesTabla PRODUCTON_Serie int
Nombre Varchar(30)
Cantidad Int
Precio Int
Bod_Letra char
Tabla BODEGALetra Char
FK
Tabla PRODUCTON_Serie int
Nombre Varchar(30)
Cantidad Int
Precio Int
Identificador int
![Page 135: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/135.jpg)
Ejercicio Nº 2:
. ……………………………….
……………………………….
…………… ………………………………
…………………………………..
Consultas“Insert, Update,
Delete”
Analiza la tabla, sufrirá muchos cambios de datos. Fíjate, y
aplicas los comandos necesarios para modificar la tabla
(Use los menos comandos posibles)
![Page 136: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/136.jpg)
Consultas “DML”
Antes
Después
Tabla PERSONA
RUT Nombre Apellido Edad
1 Felipe Carrasco 41
2 Diego Castro 47
3 Sebastian Carrera 60
4 Bart Pedrero 26
5 Marisol Burgos 70
6 Katherine Pallero 68
Tabla PERSONA
RUT Nombre Apellido Edad
1 Felipe Carrasco 99
2 Diego Castro 99
3 Sebastian Carrera 99
4 Bartolomeo Pedrero 26
6 Kathy Pallero 68
9 Lisa Simpsons 13
![Page 137: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/137.jpg)
Consultas “DML”
Antes
Después
Tabla DIRECCION
ID Pais Ciudad Comuna Calle Piso Numero
10001 Chile Santiago Las Condes Libra 4 1004
10002 China Taiwan Cocha Kong Hyo 1 54208
10003 España Santiago Libertador Carrera 2 345
10004 Peru La Paz La poz Estadio 1 6489
10005 China Hong Kong Xalong Kopum 2 567
10006 Mexico Guadalajara Central Vespucio 1 9910
Tabla DIRECCION
ID Pais Ciudad Comuna Calle Piso Numero
10001 Chile Santiago Las Condes Geminis 4 1004
10003 España Santiago Libertador Carrera 2 345
10004 Peru La Paz -Pendiente- Estadio 7 6489
10006 Mexico Guadalajara -Pendiente- Vespucio 7 9910
10010 USA Washington Forever 3 54
10011 USA Poor Alone 2 62
![Page 138: Ejercicios](https://reader036.fdocuments.es/reader036/viewer/2022062501/568166e5550346895ddb1fd5/html5/thumbnails/138.jpg)
Ejercicio Nº 3:Consultas “SELECT”
. ……………………………….
……………………………….
…………… ………………………………
…………………………………..
Jesus te ama
Tien
es u
na e
zper
anza
SQL