SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
-- 1) Crear una tabla llamada "usuarios" , que tenga una columna nombre y otra columna , clave. -- ALuego ver la tabla creada y luego borrarla. create table usuarios ( nombre varchar(30), clave varchar(10) ); show table; drop table if exist usuarios; -- 2) Insertar en la tabla anterios un usuario cualquiera, y luego seleccionar todos los elementos de la tabla. insert into usuarios (nombre, clave) values ('MarioPerez','Marito'); /* 3 Crear una tabla llamada libreria que contenga los siguientes campos: -titulo, cadena de caracteres de 40 de longitud, -autor, cadena de caracteres de 30 de longitud, -editorial, caracteres de 15 de longitud, -precio, valor numérico con decimales y -cantidad, valor numérico entero. Ingresar 3 registros y luego observar si quedaron inscriptos. */ /* 4 Trabaje con la tabla "libros". 1- Elimine la tabla si existe. (drop table- if exists), 2- Cree la tabla "libros". Debe tener la siguiente estructura: */ create table libros ( titulo varchar(20), autor varchar(30), editorial varchar(15) ); -- 3- Visualice la estructura de la tabla "libros". -- 4- Ingrese los siguientes registros: insert into libros (titulo , autor, editorial) values ( 'El aleph','Borges','Planeta'),( 'Martin Fierro','Jose Hernandez','Emece'),( 'Aprenda PHP','Mario Molina','Emece'),( 'Cervantes','Borges','Paidos'); -- 5- Muestre todos los registros. (select). select * from libros; -- 6- Seleccione los registros cuyo autor sea 'Borges'. select * from libros where autor ='Borges' -- 7- Seleccione los registros cuya editorial sea 'Emece'. Select * from libros where editorial = 'Emece' -- 8- Seleccione los libros cuyo titulo sea 'Martin Fierro'. select * from libros where titulo='Martin Fierro' -- 9- Elimine la tabla "libros". Drop table libros -- 6- Ingrese los siguientes registros: Mores,Alberto,Colon 123,4234567, Torres,Juan,Avellaneda 135,4458787, Lopez,Mariana,Urquiza 333,4545454, Lopez,Fernando,Urquiza 333,4545454. Suarez,Mariana,Sarmiento 643,4445544. Lopez,Ana,Sucre 309,4252587. -- 5- Seleccione todos los registros de la tabla. -- 6- Seleccione los amigos cuyo apellido sea 'Lopez'. -- 7- Seleccione los registros cuyo nombre NO sea 'Mariana'. -- 8- Seleccione los registros cuyo domicilio sea 'Colon 123'. -- 9- Muestre los datos de quienes tengan el teléfono '4545454'. 7) Trabaje con la tabla "libros" en la cual almacena la información de sus libros una librería. 1- Elimine la tabla. 2- Créela con los siguientes campos: titulo (cadena de 20 caracteres de longitud), autor (cadena de 30), editorial (cadena de 15) y precio (float). 3- Visualice la estructura de la tabla "libros". 4- Ingrese los siguientes registros: El aleph,Borges,Planeta,15.00; Martin Fierro,Jose Hernandez,Emece,25.50; Aprenda PHP,Mario Molina,Emece,26.80; Cervantes y el quijote,Borges,Paidos,45.50; Matematica estas ahi, Paenza, Paidos,50.00; 5- Muestre todos los registros. 6- Elimine los registros cuyo autor sea igual a 'Paenza'. (1 registro eliminado) 7- Nuevamente, elimine los registros cuyo autor sea igual a 'Paenza'. (ningún registro afectado) 8- Borre los registros cuyo precio sea menor a 20.(<20). 9- Borre los registros que cuyo precio sea mayor o igual a 40 pesos. (>=). 10- Elimine todos los registros de la tabla. (delete) (update) 6) Trabaje con la tabla "libros" de una librería. 1- Elimine la tabla. 2- Créela con los siguientes campos: titulo (cadena de 20 caracteres de longitud), autor (cadena de 30), editorial (cadena de 15) y precio (float). 3- Visualice la estructura de la tabla "libros". 4- Ingrese los siguientes registros: El aleph,Borges,Planeta,15.00; Martin Fierro,Jose Hernandez,Emece,25.50; Aprenda PHP,Mario Molina,Emece,25.00; Cervantes y el quijote,Borges,Paidos,25; Matematica estas ahi, Paenza, Paidos,40.80; 5- Muestre todos los registros. 6- Modifique los registros cuyo autor sea igual a "Paenza", por "Adrian Paenza". (1 registro afectado) 7- Nuevamente, modifique los registros cuyo autor sea igual a "Paenza", por "Adrian Paenza". (ningún registro afectado). 8- Actualice el precio del libro de "Mario Molina" a 27 pesos: 9- Actualice el valor del campo "editorial" por "Emece S.A.", para todos los registros cuya editorial sea igual a "Emece". Clave primaria. 7Trabaje con la tabla "libros" de una librería. 1- Elimine la tabla si existe. 2- Créela con los siguientes campos y clave: codigo (integer), titulo (cadena de 20 caracteres de longitud), autor (cadena de 30), editorial (cadena de 15), codigo será clave primaria: create table libros( codigo integer, titulo varchar(20), autor varchar(30), editorial varchar(15), primary key(codigo) ); 3- Visualice la estructura de la tabla "libros", compruebe la clave primaria. 4- Ingrese los siguientes registros: 1,El aleph,Borges,Planeta; 2,Martin Fierro,Jose Hernandez,Emece; 3,Aprenda PHP,Mario Molina,Emece; 4,Cervantes y el quijote,Borges,Paidos; 5,Matematica estas ahi, Paenza, Paidos; 5- Seleccione todos los registros. 6- Ingrese un registro con código no repetido y nombre de autor repetido. 7- Ingrese un registro con código no repetido y título y editorial repetidos. 8- Intente ingresar un registro que repita el campo clave (aparece mensaje de error por clave repetida). Campo entero con autoincremento. 8Una farmacia guarda información referente a sus medicamentos en una tabla llamada "medicamentos". 1- Elimine la tabla,si existe: drop table if exists medicamentos; 2- Cree la tabla con la siguiente estructura: create table medicamentos( codigo integer auto_increment, nombre varchar(20), laboratorio varchar(20), precio float, cantidad integer, primary key (codigo) ); 3- Visualice la estructura de la tabla "medicamentos" (describe). 4- Ingrese los siguientes registros (insert into): insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Sertal','Roche',5.2,100); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Buscapina','Roche',4.10,200); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxidal 500','Bayer',15.60,100); 5- Verifique que el campo "código" generó los valores de modo automático: select codigo,nombre,laboratorio,precio,cantidad from medicamentos; 6- Intente ingresar un registro con un valor de clave primaria repetido. 7- Ingrese un registro con un valor de clave primaria no repetido salteando la secuencia: insert into medicamentos (codigo,nombre, laboratorio,precio,cantidad) values(12,'Paracetamol 500','Bago',1.90,200); 8- Ingrese el siguiente registro: insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Bayaspirina','Bayer',2.10,150); Note que sigue la secuencia. truncate 9Una farmacia guarda información referente a sus medicamentos en una tabla llamada "medicamentos". 1- Elimine la tabla, si existe: drop table if exists medicamentos; 2- Cree la tabla con la siguiente estructura: create table medicamentos( codigo integer auto_increment, nombre varchar(20), laboratorio varchar(20), precio float, cantidad integer, primary key (codigo) ); 3- Ingrese los siguientes registros: insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Sertal','Roche',5.2,100); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Buscapina','Roche',4.10,200); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxidal 500','Bayer',15.60,100); 4- Elimine todos los registros con "delete": delete from medicamentos; 5- Ingrese 2 registros: insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Sertal','Roche',5.2,100); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxidal 500','Bayer',15.60,100); 6- Vea los registros para verificar que continuó la secuencia al generar el valor para "codigo": select * from medicamentos; 7- Vacíe la tabla: truncate table medicamentos; 8- Ingrese el siguiente registro: insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Buscapina','Roche',4.10,200); 9- Vea los registros para verificar que al cargar el código reinició la secuencia en 1. Valores null. 10Retome la tabla llamada "medicamentos" que almacena la información de los productos que se venden en una farmacia. 1- Elimine la tabla, si existe. 2- Cree la tabla con la siguiente estructura: create table medicamentos( codigo integer auto_increment, nombre varchar(20) not null, laboratorio varchar(20), precio float, cantidad integer not null, primary key (codigo) ); 3- Visualice la estructura de la tabla "medicamentos". 4- Ingrese los siguientes registros: insert into medicamentos (nombre,laboratorio,precio,cantidad) values('Sertal gotas','Roche',5.2,100); insert into medicamentos (nombre,laboratorio,precio,cantidad) values('Sertal compuesto','Roche',7.1,150); insert into medicamentos (nombre,laboratorio,precio,cantidad) values('Buscapina','Roche',null,200); insert into medicamentos (nombre,laboratorio,precio,cantidad) values('Amoxidal 500','Bayer',15.60,0); insert into medicamentos (nombre,laboratorio,precio,cantidad) values('Amoxidal jarabe','Bayer',25,120); insert into medicamentos (nombre,laboratorio,precio,cantidad) values('Amoxinil',null,25,120); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Bayaspirina','',0,150); 5- Verifique que el campo "codigo" generó los valores de modo automático (select). 6- Recupere los registros que contengan valor "null" en el campo "laboratorio", luego los que tengan una cadena vacía en el mismo campo. Note que el resultado es diferente: select * from medicamentos where laboratorio is null; select * from medicamentos where laboratorio=''; 7- Recupere los registros que contengan valor "null" en el campo "precio", luego los que tengan el valor 0 en el mismo campo. Note que el resultado es diferente: select * from medicamentos where precio is null; select * from medicamentos where precio=0; 8- Intente ingresar el siguiente registro con valor "null" para el campo "nombre": insert into medicamentos (nombre, laboratorio,precio,cantidad) values(null,'Bayer',10.20,100); Aparece un mensaje de error. 8- Intente ingresar el siguiente registro con valor "null" para el campo "cantidad": insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Benadryl comprimidos','Bayer',10.20,null); Aparece un mensaje de error. 9- Ingrese el siguiente registro con valor "null" para el campo correspondiente al código: insert into medicamentos (codigo,nombre, laboratorio,precio,cantidad) values(null,'Benadryl comprimidos','Bayer',10.20,null); No muestra un mensaje de error. Si recuperamos todos los registros, verá que almacenó el siguiente valor de la secuencia de autoincremento. 10- Recupere los registros cuyo precio sea distinto de 0, luego los que sean distintos de "null": select * from medicamentos where precio<>0; select * from medicamentos where precio is not null; Note que la salida de la primera sentencia no muestra los registros con valor 0 y tampoco los que tienen valor nulo; el resultado de la segunda sentencia muestra los registros con valor para el campo precio (incluso el valor 0). Esto es porque los valores "null" no pueden compararse con operadores relacionales. order by  11Trabaje con la tabla llamada "medicamentos" que almacena la información de los productos que vende una farmacia. 1- Elimine la tabla, si existe. 2- Cree la tabla con la siguiente estructura: create table medicamentos( codigo int unsigned auto_increment, nombre varchar(20), laboratorio varchar(20), precio decimal(5,2), cantidad int unsigned, primary key(codigo) ); 3- Visualice la estructura de la tabla "medicamentos". 4- Ingrese los siguientes registros (insert into): insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Sertal','Roche',5.2,100); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Buscapina','Roche',4.10,200); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxidal 500','Bayer',15.60,100); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Paracetamol 500','Bago',1.90,200); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Bayaspirina','Bayer',2.10,150); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxidal jarabe','Bayer',5.10,250); 5- Ordene los registros por precio, de mayor a menor. 6- Ordene los medicamentos por número del campo "cantidad". 7- Ordene los registros por "laboratorio" (descendente) y cantidad (ascendente). (and - or - not) Trabaje con la tabla llamada "medicamentos" de una farmacia. 1- Elimine la tabla, si existe. 2- Cree la tabla con la siguiente estructura: create table medicamentos( codigo int unsigned auto_increment, nombre varchar(20), laboratorio varchar(20), precio decimal(5,2), cantidad int unsigned, primary key(codigo) ); 3- Visualice la estructura de la tabla "medicamentos". 4- Ingrese los siguientes registros (insert into): insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Sertal','Roche',5.2,100); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Buscapina','Roche',4.10,200); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxidal 500','Bayer',15.60,100); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Paracetamol 500','Bago',1.90,200); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Bayaspirina','Bayer',2.10,150); insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxidal jarabe','Bayer',5.10,250); 5 Recupere los códigos y nombres de los medicamentos cuyo laboratorio sea 'Roche' y cuyo precio sea menor a 5: select codigo,nombre from medicamentos where laboratorio='Roche' and precio<5; Quedó seleccionado 1 registro, es el único que cumple con ambas condiciones. 6- Recupere los medicamentos cuyo laboratorio sea 'Roche' o cuyo precio sea menor a 5: select * from medicamentos where laboratorio='Roche' or precio<5; Note que la salida es diferente, hemos cambiado el operador de la sentencia anterior. Ahora se recuperaron todos los registros cuyo laboratorio es igual a 'Roche' y todos los registros cuyo precio es menor a 5. Aquellos registros que no cumplieron con la condición 1 (no son de "Roche") ni con la condicion2 (no cuestan menos de 5) no aparecen. 7- Muestre todos los registros que no sean de "Bayer" usando el operador "not". 8- Muestre todos los medicamentos cuyo laboratorio NO sea "Bayer" y cuya cantidad sea=100: select * from medicamentos where not laboratorio='Bayer' and cantidad=100; 9- Muestre todos los medicamentos cuyo laboratorio sea "Bayer" y cuya cantidad NO sea=100: select * from medicamentos where laboratorio='Bayer' and not cantidad=100; Analice estas 2 últimas sentencias. El operador "not" afecta a la condición a la cual antecede, no a las siguientes. Los resultados de estas 2 sentencias son diferentes. 10- Elimine todos los registros cuyo laboratorio sea igual a "Bayer" y su precio sea mayor a 10: delete from medicamentos where laboratorio='Bayer' and precio>10; Sólo 1 registro debe ser eliminado, el que cumple con ambas condiciones. 11- Cambie la cantidad por 200, a todos los medicamentos de "Roche" cuyo precio sea mayor a 5: update medicamentos set cantidad=200 where laboratorio='Roche' and precio>5; Un solo registro fue actualizado porque sólo uno cumplió con las condiciones especificadas. 12- Borre los medicamentos cuyo laboratorio sea "Bayer" o cuyo precio sea menor a 3. Antes veamos cuáles cumplen con la condición, los registros 5 y 6 son de "Bayer, cumplen con la primera condición, los registros 4 y 5 cumplen con la segunda condición, es decir, se borrarán 3 registros: el 4 porque cumple con la segunda condición, el 5 porque cumple con ambas y el 6 porque cumple con la primera. Tipeamos: delete from medicamentos where laboratorio='Bayer' or precio<3; (like y not like) Trabaje con la tabla llamada "medicamentos" de una farmacia. 1- Elimine la tabla, si existe: drop table if exists medicamentos; 2- Cree la tabla con la siguiente estructura: create table medicamentos( codigo int unsigned auto_increment, nombre varchar(20) not null, laboratorio varchar(20), precio decimal(6,2) unsigned, cantidad int unsigned, primary key(codigo) ); 3- Visualice la estructura de la tabla "medicamentos". 4- Ingrese los siguientes registros: insert into medicamentos (nombre, laboratorio,precio) values('Sertal gotas','Roche',5.2); insert into medicamentos (nombre, laboratorio,precio) values('Buscapina','Roche',4.10); insert into medicamentos (nombre, laboratorio,precio) values('Amoxidal 500','Bayer',15.60); insert into medicamentos (nombre, laboratorio,precio) values('Paracetamol 500','Bago',1.90); insert into medicamentos (nombre, laboratorio,precio) values('Bayaspirina','Bayer',2.10); insert into medicamentos (nombre, laboratorio,precio) values('Amoxidal jarabe','Bayer',5.10); insert into medicamentos (nombre, laboratorio,precio) values('Sertal compuesto','Bayer',5.10); insert into medicamentos (nombre, laboratorio,precio) values('Paracetamol 1000','Bago',2.90); insert into medicamentos (nombre, laboratorio,precio) values('Amoxinil','Roche',17.80); 5- Recupere los medicamentos cuyo nombre comiencen con "Amox": select codigo,nombre,laboratorio,precio from medicamentos where nombre like 'Amox%'; Quedaron 3 registros seleccionados. 6- Recupere los medicamentos "Paracetamol" cuyo precio sea menor a 2: select codigo,nombre,laboratorio,precio from medicamentos where nombre like 'Paracetamol%' and precio<2; 7- Busque todos los medicamentos cuyo precio tenga .10 centavos: select codigo,nombre,laboratorio,precio from medicamentos where precio like '%.1%'; 8- Muestre todos los medicamentos que no contengan la cadena "compuesto": select codigo,nombre,laboratorio,precio from medicamentos where nombre not like'%compuesto%'; 9- Elimine todos los registros cuyo laboratorio contenga la letra "y": delete from medicamentos where laboratorio like '%y%'; 10- Cambie el precio por 5, al "Paracetamol" cuyo precio es mayor a 2: update medicamentos set precio=5 where nombre like 'Paracetamol%' and precio>2; Una academia de informática dicta distintos cursos y almacena en una tabla llamada "inscripciones" la siguiente información: nombre del curso, documento del alumno, fecha en que se inscribe el alumno, monto del pago (algunos dejan una seña, otros pagan el curso completo). 1- Elimine la tabla si existe. 2- cree la tabla: create table inscripciones( nombre varchar(30), documento char(8), fechainscripto date, pago decimal(5,2) unsigned not null ); 3- Ingrese algunos registros: insert into inscripciones values('PHP básico', '22333444','2006-08-10',50); insert into inscripciones values('PHP básico', '23333444','2006-08-10',50); insert into inscripciones values('PHP básico', '24333444','2006-08-11',30); insert into inscripciones values('PHP experto', '25333444','2006-08-11',0); insert into inscripciones values('PHP experto', '26333444','2006-08-12',200); insert into inscripciones values('JavaScript básico', '22333444','2006-08-10',100); insert into inscripciones values('Operador de PC', '27333444','2006-08-12',10); insert into inscripciones values('Operador de PC', '28333444','2006-08-13',50); insert into inscripciones values('Operador de PC', '29333444','2006-08-14',40); insert into inscripciones values('Operador de PC', '30333444','2006-08-14',0); insert into inscripciones values('Diseño web', '29333444','2006-08-14',200); insert into inscripciones values('Diseño web', '30333444','2006-08-14',0); 4- calcule la cantidad de inscriptos para el curso de "Operador de PC": select count(*) from inscripciones where nombre='Operador de PC'; 5- Calcule la suma recaudada por los pagos de los cursos el día "2006-08-10": select sum(pago) from inscripciones where fechainscripto='2006-08-10'; 6- Calcule el promedio de los pagos de los inscriptos: select avg(pago) from inscripciones; 7- Muestre el máximo y el mínimo valor de pago, sin considerar quienes no pagan: select max(pago),min(pago) from inscripciones where pago>0; 8- Vea en cuántos cursos se inscribió el alumno con documento "22333444" y cuánto abonó en total: select count(*) as 'cantidad', sum(pago) as 'Abono' from inscripciones where documento='22333444'; (count - max - min - sum - avg) Una empresa registra los datos de sus empleados en una tabla llamada "empleados". 1- Elimine la tabla "empleados" si existe: drop table if exists empleados; 2- Cree la tabla: create table empleados( documento char(8) not null, nombre varchar(30) not null, sexo char(1), domicilio varchar(30), fechaingreso date, fechanacimiento date, sueldobasico decimal(5,2) unsigned, primary key(documento) ); 3- Ingrese algunos registros: insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('22333111','Juan Perez','m','Colon 123','1990-02-01','1970-05-10',550); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('25444444','Susana Morales','f','Avellaneda 345','1995-04-01','1975-11-06',650); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('20111222','Hector Pereyra','m','Caseros 987','1995-04-01','1965-03-25',510); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('30000222','Luis Luque','m','Urquiza 456','1980-09-01','1980-03-29',700); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('20555444','Maria Laura Torres','f','San Martin 1122','2000-05-15','1965-12-22',700); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('30000234','Alberto Soto','m','Peru 232','2003-08-15','1989-10-10',420); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('20125478','Ana Gomez','f','Sarmiento 975','2004-06-14','1976-09-21',350); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('24154269','Ofelia Garcia','f','Triunvirato 628','2004-09-23','1974-05-12',390); insert into empleados (documento,nombre,sexo,domicilio,fechaingreso,fechanacimiento,sueldoBasico) values ('30154269','Oscar Mendez','m','Colon 1245','2004-06-23','1984-05-14',300); 4- Es política de la empresa festejar cada fin de mes, los cumpleaños de todos los empleados que cumplen ese mes. Si los empleados son de sexo femenino, se les regala un ramo de rosas, si son de sexo masculino, una corbata. La secretaria de la Gerencia necesita saber cuántos ramos de rosas y cuántas corbatas debe comprar para el mes de mayo: select sexo,count(sexo) from empleados where month(fechanacimiento)=5 group by sexo; 5- Se necesita conocer la cantidad de empleados agrupados por año de ingreso a la empresa: select year(fechaingreso),count(*) from empleados group by year(fechaingreso); group by) En una página web se solicitan los siguientes datos para guardar información de sus visitas. 1- Elimine la tabla "visitas", si existe. 2- Créela con la siguiente estructura: create table visitas ( numero int unsigned auto_increment, nombre varchar(30) not null, mail varchar(50), pais varchar (20), fecha date, primary key(numero) ); 3- Ingrese algunos registros: insert into visitas (nombre,mail,fecha) values ('Ana Maria Lopez','AnaMaria@hotmail.com','2006-10-10'); insert into visitas (nombre,mail,fecha) values ('Gustavo Gonzalez','GustavoGGonzalez@hotmail.com','2006-10-10'); insert into visitas (nombre,mail,fecha) values ('Juancito','JuanJosePerez@hotmail.com','2006-10-11'); insert into visitas (nombre,mail,fecha) values ('Fabiola Martinez','MartinezFabiola@hotmail.com','2006-10-12'); insert into visitas (nombre,mail,fecha) values ('Fabiola Martinez','MartinezFabiola@hotmail.com','2006-09-12'); insert into visitas (nombre,mail,fecha) values ('Juancito','JuanJosePerez@hotmail.com','2006-09-12'); insert into visitas (nombre,mail,fecha) values ('Juancito','JuanJosePerez@hotmail.com','2006-09-15'); insert into visitas (nombre,mail,fecha) values ('Juancito','JuanJosePerez@hotmail.com','2006-09-15'); 4- Obtenga los distintos nombres de quienes visitaron la página: select distinct nombre from visitas; 5- Muestre la cantidad de veces que cada persona ingresó a la página: select nombre, count(fecha) from visitas group by nombre; 6- Muestre la cantidad de veces que cada persona ingresó a la página en distintas fechas: select nombre, count(distinct fecha) from visitas group by nombre; (distinct) 1- Elimine la tabla si existe: drop table if exists alumnos; 2- Cree la tabla: create table alumnos( legajo int(10) unsigned auto_increment, nombre varchar(30), documento char(8), domicilio varchar(30), primary key(legajo), unique i_documento (documento) ); 3- Ingrese algunos registros: insert into alumnos values('1353','Juan Lopez','22333444','Colon 123'); insert into alumnos values('2345','Ana Acosta','24000555','Caseros 456'); insert into alumnos values('2356','Jose Torres','26888777','Sucre 312'); insert into alumnos values('3567','Luis Perez','28020020','Rivadavia 234'); 4- Intente ingresar un registro con clave primaria repetida (legajo "3567"): insert into alumnos values('3567','Marcos Pereyra','30000333','Guemes 134'); aparece un mensaje de error. 5- Ingrese el registro anterior reemplazando el existente: replace into alumnos values('3567','Marcos Pereyra','30000333','Guemes 134'); 6- Intente ingresar un alumno con documento repetido: insert into alumnos values('4567','Susana Juarez','30000333','Avellaneda 33'); 7- Reemplace el registro: replace into alumnos values('4567','Susana Juarez','30000333','Avellaneda 33'); note que el alumno con documento "30000333" se eliminó y se reemplazó por el nuevo registro. 8- Elimine el índice único: drop index i_documento on alumnos; 9- Ingrese con "replace" el siguiente registro con documento existente: replace into alumnos values('4888','Gustavo Garcia','30000333','San Martin 846'); un registro afectado, no hubo eliminación solamente inserción. 10- Muestre todos los registros: select * from alumnos; (replace) Trabaje con la tabla "peliculas" . 1- Elimine la tabla, si existe. 2- Cree la tabla con la siguiente estructura: create table peliculas( codigo int unsigned, nombre varchar(20) not null, actor varchar(20), director varchar(25), duracion tinyint ); 3- Modifique el campo "duracion" por tinyint unsigned. alter table peliculas modify duracion tinyint unsigned; 4- Modifique el campo "nombre" para poder almacenar una longitud de 40 caracteres y que no permita valores nulos: alter table peliculas modify nombre varchar(40) not null; 5- Modifique el campo "actor" para que no permita valores nulos: alter table peliculas modify actor varchar(20) not null; 6- Intente definir "auto_increment" el campo "codigo" (mensaje de error): alter table peliculas modify codigo int unsigned auto_increment; (alter table - modify) Una empresa tiene almacenados los datos de sus clientes en una tabla llamada "clientes" y los datos de sus empleados en otra tabla denominada "empleados". 1- Elimine ambas tablas si existen. 2- Cree las tablas dándoles el nombre equivocado, es decir, de el nombre "clientes" a la tabla que contiene los datos de los empleados y el nombre "empleados" a la tabla con la informaciómn de los clientes: create table clientes( documento char(8) not null, nombre varchar(30), domicilio varchar(30), fechaingreso date, sueldo decimal(6,2) unsigned ); create table empleados( documento char(8) not null, nombre varchar(30), domicilio varchar(30), ciudad varchar(30), provincia varchar(30) ); 3- Vea la estructura de ambas tablas: describe clientes; describe empleados; 4- Intercambie los nombres de las dos tablas: rename table clientes to auxiliar, empleados to clientes, auxiliar to empleados; 5- Verifique el cambio de nombre: describe clientes; describe empleados; 6- Vea si existe la tabla "auxiliar": show tables; (alter table - rename - rename table) Un profesor guarda los promedios de sus alumnos de un curso en una tabla llamada "alumnos". 1- Elimine la tabla si existe. 2- cree la tabla: create table alumnos( legajo char(5) not null, nombre varchar(30), promedio decimal(4,2) ); 3- Ingrese los siguientes registros: insert into alumnos values(3456,'Perez Luis',8.5); insert into alumnos values(3556,'Garcia Ana',7.0); insert into alumnos values(3656,'Ludueña Juan',9.6); insert into alumnos values(2756,'Moreno Gabriela',4.8); insert into alumnos values(4856,'Morales Hugo',3.2); 4- Si el alumno tiene un promedio superior o igual a 4, muestre un mensaje "aprobado" en caso contrario "reprobado": select legajo,promedio, if (promedio>=4,'aprobado','reprobado') from alumnos; 5- Es política del profesor entregar una medalla a quienes tengan un promedio igual o superior a 9. Muestre los nombres y promedios de los alumnos y un mensaje "medalla" a quienes cumplan con ese requisito: select nombre,promedio, if (promedio>=9,'medalla','') from alumnos; (if) Elimine las tablas si existen. 2- Cree las tablas: create table socios( documento char(8) not null, nombre varchar(30), domicilio varchar(30), primary key(documento) ); create table inscriptos( documento char(8) not null, deporte varchar(15) not null, año year, matricula char(1), /*si esta paga ='s' sino 'n'*/ primary key(documento,deporte,año) ); 3- Ingrese algunos registros para ambas tablas: insert into socios values('22333444','Juan Perez','Colon 234'); insert into socios values('23333444','Maria Lopez','Sarmiento 465'); insert into socios values('24333444','Antonio Juarez','Caseros 980'); insert into inscriptos values ('22333444','natacion','2005','s'); insert into inscriptos values ('22333444','natacion','2006','n'); insert into inscriptos values ('23333444','natacion','2005','s'); insert into inscriptos values ('23333444','tenis','2006','s'); insert into inscriptos values ('23333444','natacion','2006','s'); insert into inscriptos values ('24333444','tenis','2006','n'); insert into inscriptos values ('24333444','basquet','2006','n'); 4- Muestre el nombre del socio y todos los campos de la tabla "inscriptos": select s.nombre,i.* from socios as s join inscriptos as i on .documento=i.documento; 5- Omita la referencia a las tablas en la condición "on" para verificar que la sentencia no se ejecuta porque el nombre del campo "documento" es ambiguo (ambas tablas lo tienen): select s.nombre,i.* from socios as s join inscriptos as i on documento=documento; 6- Muestre el nombre de los socios y los deportes en los cuales están inscriptos este año: select s.nombre,i.deporte from socios as s join inscriptos as i on s.documento=i.documento where año=2006; 7- Muestre el nombre y todas las inscripciones del socio con número de documento='23333444': select s.nombre,i.* from socios as s join inscriptos as i on s.documento=i.documento where s.documento='23333444'; (join) Una empresa tiene registrados sus clientes en una tabla llamada "clientes", también tiene una tabla "provincias" donde registra los nombres de las provincias. 1- Elimine la tabla "clientes" y "provincias", si existen: drop table if exists clientes, provincias; 2- Créelas con las siguientes estructuras: create table clientes ( codigo int unsigned auto_increment, nombre varchar(30) not null, domicilio varchar(30), ciudad varchar(20), codigoprovincia tinyint unsigned, telefono varchar(11), primary key(codigo) ); create table provincias( codigo tinyint unsigned auto_increment, nombre varchar(20), primary key (codigo) ); En este ejemplo, el campo "codigoprovincia" de "clientes" es una clave foránea, se emplea para enlazar la tabla "clientes" con "provincias". 3- Ingrese algunos registros para ambas tablas: insert into provincias(codigo,nombre) values(1,'Cordoba'); insert into provincias(codigo,nombre) values(2,'Santa Fe'); insert into provincias(codigo,nombre) values(30,'Misiones'); insert into provincias(codigo,nombre) values(13,'Salta'); insert into provincias(codigo,nombre) values(15,'Buenos Aires'); insert into provincias(codigo,nombre) values(20,'Neuquen'); insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Lopez Marcos', 'Colon 111', 'Córdoba',1,'null'); insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Perez Ana', 'San Martin 222', 'Cruz del Eje',1,'4578585'); insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445'); insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null); insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Ramos Betina', 'San Martin 999', 'Bahia Blanca',15,'4223366'); insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Lopez Lucas', 'San Martin 1010', 'Posadas',30,'0457858745'); 4- Enlace las tablas: select c.nombre,c.ciudad,p.nombre from clientes as c left join provincias as p on c.codigoprovincia=p.codigo; 5- Modifique el campo "codigoprovincia" a "char(1)": alter table clientes modify codigoprovincia char(1); 6- Vea cómo afectó el cambio a la tabla "clientes": select * from clientes;El cliente de "Bahia Blanca" con código de provincia "15" ("Buenos Aires") ahora tiene "1" ("Cordoba") y el cliente con código de provincia "30" ("Misiones") ahora almacena "3" (valor inexistente en "provincias"). 7- Realice un "left join" buscando coincidencia de códigos en la tabla "provincias": select c.nombre,c.ciudad,p.nombre from clientes as c left join provincias as p on .codigoprovincia=p.codigo;El resultado es erróneo. 8- Intente modificar la clave primaria en "provincias" para que se corresponda con codigoprovincia" de "clientes": alter table provincias modify codigo char(1);No lo permite porque si la modifica los valores para el campo clave quedan repetidos. Clave foránea. Un club dicta clases de distintos deportes. En una tabla llamada "socios" guarda los datos de sus socios y en una tabla denominada "inscriptos" almacena la información necesaria para las inscripciones de los socios a los distintos deportes. 1- Elimine las tablas si existen. 2- Cree las tablas: create table socios( documento char(8) not null, nombre varchar(30), domicilio varchar(30), primary key(documento) ); create table inscriptos( documento char(8) not null, deporte varchar(15) not null, año year, matricula char(1), /*si esta paga ='s' sino 'n'*/ primary key(documento,deporte,año) ); 3- Ingrese algunos registros para ambas tablas: insert into socios values('22333444','Juan Perez','Colon 234'); insert into socios values('23333444','Maria Lopez','Sarmiento 465'); insert into socios values('24333444','Antonio Juarez','Caseros 980'); insert into socios values('25333444','Ana Juarez','Sucre 134'); insert into socios values('26333444','Sofia Herrero','Avellaneda 1234'); insert into inscriptos values ('22333444','natacion','2015','s'); insert into inscriptos values ('22333444','natacion','2016','n'); insert into inscriptos values ('23333444','natacion','2015','s'); insert into inscriptos values ('23333444','tenis','2016','s'); insert into inscriptos values ('23333444','natacion','2016','s'); insert into inscriptos values ('25333444','tenis','2016','n'); insert into inscriptos values ('25333444','basquet','2016','n'); 4- Muestre el nombre del socio, deporte y año realizando un join: select .nombre,i.deporte,i.año from socios as s left join inscriptos as i on .documento=i.documento; 5- Muestre los nombres de los socios que no se han inscripto nunca en un deporte: select s.nombre from socios as s left join inscriptos as i on .documento=i.documento where i.documento is null; 6- Omita la referencia a las tablas en la condición "on" para verificar que la sentencia no se ejecuta porque el nombre del campo "documento" es ambiguo (ambas tablas lo tienen): select s.nombre from socios as s left join inscriptos as i on documento=documento; (left join) Un club dicta clases de distintos deportes a sus socios. Guarda la información de sus socios en una tabla llamada "socios", los datos de los deportes en "deportes" y las inscipciones en "inscriptos". 1- Elimine las 3 tablas, si existen. 2- Cree las tablas: create table socios( documento char(8) not null, nombre varchar(30) not null, primary key(documento) ); create table deportes( codigo tinyint unsigned auto_increment, nombre varchar(30), primary key(codigo) ); create table inscriptos( documento char(8) not null, codigodeporte tinyint unsigned, año year not null, cuota char(1), /*'s' o 'n', si esta paga o no*/ primary key(documento,codigodeporte,año) ); 3- Ingrese los siguientes registros: insert into socios values('22333444','Juan Perez'); insert into socios values('23333444','Ana Garcia'); insert into socios values('24333444','Hector Fuentes'); insert into socios values('25333444','Marta Molina'); insert into deportes (nombre) values('tenis'); insert into deportes (nombre) values('natacion'); insert into deportes (nombre) values('basquet'); insert into deportes (nombre) values('voley'); insert into inscriptos values('22333444',1,'2015','s'); insert into inscriptos values('22333444',1,'2016','s'); insert into inscriptos values('22333444',2,'2015','s'); insert into inscriptos values('24333444',1,'2015','s'); insert into inscriptos values('24333444',2,'2016','s'); insert into inscriptos values('25333444',1,'2015','s'); insert into inscriptos values('25333444',1,'2016','s'); insert into inscriptos values('25333444',3,'2016','s'); 4- El club desea saber cuántos socios se han inscripto en cada deporte cada año, considerando sólo los deportes que tienen inscripciones: select d.nombre,i.año,count(*) from deportes as d join inscriptos as i on d.codigo=i.codigodeporte join socios as s on i.documento=s.documento group by d.nombre,i.año; 5- El club quiere almacenar esa información en una tabla. Elimine la tabla "inscriptospordeporteporaño" si existe. 6- Cree la tabla utilizando la sentencia del punto 4: create table nscriptospordeporteporaño select d.nombre,i.año,count(*) from deportes as d join inscriptos as i on d.codigo=i.codigodeporte join socios as s on .documento=s.documento group by d.nombre,i.año; 7- Muestre todos los registros de la nueva tabla. 8- El club desea saber cuántas veces se ha inscripto un socio en algún deporte: select s.nombre,count(i.documento) from socios as s left join inscriptos as i on s.documento=i.documento left join deportes as d on i.codigodeporte=d.codigo group by s.nombre; 9- Elimine la tabla "sociosdeporte" si existe. 10- Guarde la información del punto 8 en una tabla, creándola a partir de esa consulta: create table sociosdeporte select s.nombre,count(i.documento) as inscripciones from socios as s left join inscriptos as i on s.documento=i.documento left join deportes as d on i.codigodeporte=d.codigo group by s.nombre; (create - insert - join)(Encriptar) Eliminamos la tabla "clientes" si existe: drop table if exists clientes; Creamos la tabla: create table clientes( nombre varchar(50), mail varchar(70), tarjetacredito blob, primary key (nombre)); Definimos el campo 'tarjetacredito' de tipo blob para almacenar en número de la tarjeta de crédito del cliente encriptado. Luego si alguien no autorizado accede a los datos de la tabla 'clientes' no podrá conocer en número de la tarjeta de crédito de los clientes.Ingresamos algunos registros en la tabla 'clientes' teniendo en cuenta de encriptar el número de tarjeta de crédito: insert into clientes values ('Marcos Luis','marcosluis@gmail.com',aes_encrypt('5390700823285988','xyz123')); insert into clientes values ('Ganzalez Ana','gonzalesa@gmail.com',aes_encrypt('4567230823285445','xyz123')); insert into clientes values ('Lopez German','lopezg@yahoo.com',aes_encrypt('7840704453285443','xyz123')); Si imprimimos al campo tarjetacredito podemos comprobar que se encuentra cifrado: select tarjetacredito from clientes; Para ver el número de la tarjeta de crédito debemos conocer la clave de encriptación: select cast(aes_decrypt(tarjetacredito, 'xyz123') as char) from clientes;  Encriptación de datos (aes_encrypt - aes_decrypt)
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear