Vous êtes sur la page 1sur 23

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet

EJERCICIO01
CREARUNATABLA(createtablesp_tablessp_columnsdroptable)

Primer problema:
Necesita almacenar los datos de sus amigos en una tabla. Los datos que guardar sern: apellido, nombre, domicilio y telfono. 1- Elimine la tabla "agenda" si existe: if object_id('agenda') is not null drop table agenda; 2- Intente crear una tabla llamada "/agenda": create table /agenda( apellido varchar(30), nombre varchar(20), domicilio varchar(30), telefono varchar(11) ); aparece un mensaje de error porque usamos un caracter invlido ("/") para el nombre. 3- Cree una tabla llamada "agenda", debe tener los siguientes campos: apellido, varchar(30); nombre, varchar(20); domicilio, varchar (30) y telefono, varchar(11): create table agenda( apellido varchar(30), nombre varchar(20), domicilio varchar(30), telefono varchar(11) ); 4- Intente crearla nuevamente. Aparece mensaje de error. 5- Visualice las tablas existentes (sp_tables @table_owner='dbo'). 6- Visualice la estructura de la tabla "agenda" (sp_columns). 7- Elimine la tabla. 8- Intente eliminar la tabla, sin controlar si existe. Debe aparecer un mensaje de error.

Segundo problema: Necesita almacenar informacin referente a los libros de su biblioteca personal. Los datos que guardar sern: ttulo del libro, nombre del autor y nombre de la editorial. 1- Elimine la tabla "libros", si existe: if object_id('libros') is not null drop table libros; 2- Verifique que la tabla "libros" no existe en la base de datos activa (sp_tables @table_owner='dbo'). 3- Cree una tabla llamada "libros". Debe definirse con los siguientes campos: titulo, varchar(20); autor, varchar(30) y editorial, varchar(15). 4- Intente crearla nuevamente. Aparece mensaje de error. 5- Visualice las tablas existentes. 6- Visualice la estructura de la tabla "libros". 7- Elimine la tabla. 8- Intente eliminar la tabla nuevamente.

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet

EJERCICIO 02
INSERTARYRECUPERARREGISTROSDEUNATABLA(INSERTINTOSELECT)

Primer problema:
Trabaje con la tabla "agenda" que almacena informacin de sus amigos. 1- Elimine la tabla "agenda", si existe: if object_id('agenda') is not null drop table agenda; 2- Cree una tabla llamada "agenda". Debe tener los siguientes campos: apellido (cadena de 30), nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11): 3- Visualice las tablas existentes para verificar la creacin de "agenda" (sp_tables @table_owner='dbo'). 4- Visualice la estructura de la tabla "agenda" (sp_columns). 5- Ingrese los siguientes registros: insert into agenda (apellido, nombre, domicilio, telefono) values ('Moreno','Alberto','Colon 123','4234567'); insert into agenda (apellido,nombre, domicilio, telefono) values ('Torres','Juan','Avellaneda 135','4458787'); 6- Seleccione todos los registros de la tabla: select * from agenda; 7- Elimine la tabla "agenda": drop table agenda; 8- Intente eliminar la tabla nuevamente (aparece un mensaje de error): drop table agenda;

Segundo problema:
Trabaje con la tabla "libros" que almacena los datos de los libros de su propia biblioteca. 1- Elimine la tabla "libros", si existe: if object_id('libros') is not null drop table libros; 2- Cree una tabla llamada "libros". Debe definirse con los siguientes campos: titulo (cadena de 20), autor (cadena de 30) y editorial (cadena de 15). 3- Visualice las tablas existentes (sp_tables @table_owner='dbo'). 4- Visualice la estructura de la tabla "libros" (sp_columns). 5- Ingrese los siguientes registros: insert into libros (titulo,autor,editorial) values ('El aleph','Borges','Planeta'); insert into libros (titulo,autor,editorial) values ('Martin Fierro','Jose Hernandez','Emece'); insert into libros (titulo,autor,editorial) values ('Aprenda PHP','Mario Molina','Emece'); 6- Muestre todos los registros (select).

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 03 Tipos de datos bsicos Primer problema: Un videoclub que alquila pelculas en video almacena la informacin de sus pelculas en una tabla llamada "peliculas"; para cada pelcula necesita los siguientes datos: -nombre, cadena de caracteres de 20 de longitud, -actor, cadena de caracteres de 20 de longitud, -duracin, valor numrico entero. -cantidad de copias: valor entero. 1- Elimine la tabla, si existe: if object_id('peliculas')is not null drop table peliculas; 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo: create table peliculas( nombre varchar(20), actor varchar(20), duracion integer, cantidad integer ); 3- Vea la estructura de la tabla: 4- Ingrese los siguientes registros: insert into peliculas (nombre, actor, duracion, cantidad) values ('Mision imposible','Tom Cruise',128,3); insert into peliculas (nombre, actor, duracion, cantidad) values ('Mision imposible 2','Tom Cruise',130,2); insert into peliculas (nombre, actor, duracion, cantidad) values ('Mujer bonita','Julia Roberts',118,3); insert into peliculas (nombre, actor, duracion, cantidad) values ('Elsa y Fred','China Zorrilla',110,2); 5- Muestre todos los registros.

Segundo problema: Una empresa almacena los datos de sus empleados en una tabla "empleados" que guarda los siguientes datos: nombre, documento, sexo, domicilio, sueldobasico. 1- Elimine la tabla, si existe: if object_id('empleados') is not null drop table empleados; 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo: create table empleados( nombre varchar(20), documento varchar(8), sexo varchar(1), domicilio varchar(30), sueldobasico float ); 3- Vea la estructura de la tabla: 4- Ingrese algunos registros: insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Juan Perez','22333444','m','Sarmiento 123',500); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Ana Acosta','24555666','f','Colon 134',650); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Bartolome Barrios','27888999','m','Urquiza 479',800); 5- Seleccione todos los registros.

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 04 Recuperar algunos campos (select) Primer problema: Un videoclub que alquila pelculas en video almacena la informacin de sus pelculas en alquiler en una tabla llamada "peliculas". 1- Elimine la tabla, si existe: if object_id('peliculas') is not null drop table peliculas; 2- Cree la tabla: create table peliculas( titulo varchar(20), actor varchar(20), duracion integer, cantidad integer ); 3- Vea la estructura de la tabla (sp_columns). 4- Ingrese alos siguientes registros: insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible','Tom Cruise',180,3); insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible 2','Tom Cruise',190,2); insert into peliculas (titulo, actor, duracion, cantidad) values ('Mujer bonita','Julia Roberts',118,3); insert into peliculas (titulo, actor, duracion, cantidad) values ('Elsa y Fred','China Zorrilla',110,2); 5- Realice un "select" mostrando solamente el ttulo y actor de todas las pelculas 6- Muestre el ttulo y duracin de todas las peliculas 7- Muestre el ttulo y la cantidad de copias

Segundo problema: Una empresa almacena los datos de sus empleados en una tabla llamada "empleados". 1- Elimine la tabla, si existe: if object_id('empleados') is not null drop table empleados; 2- Cree la tabla: create table empleados( nombre varchar(20), documento varchar(8), sexo varchar(1), domicilio varchar(30), sueldobasico float ); 3- Vea la estructura de la tabla: sp_columns empleados; 4- Ingrese algunos registros: insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Juan Juarez','22333444','m','Sarmiento 123',500); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Ana Acosta','27888999','f','Colon 134',700); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Carlos Caseres','31222333','m','Urquiza 479',850); 5- Muestre todos los datos de los empleados 6- Muestre el nombre, documento y domicilio de los empleados 7- Realice un "select" mostrando el documento, sexo y sueldo bsico de todos los empleados

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 05 Recuperar algunos registros (where) Primer problema: Trabaje con la tabla "agenda" en la que registra los datos de sus amigos. 1- Elimine "agenda", si existe: if object_id('agenda') is not null drop table agenda; 2- Cree la tabla, con los siguientes campos: apellido (cadena de 30), nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11). 3- Visualice la estructura de la tabla "agenda". 4- Ingrese los siguientes registros: Acosta, Ana, Colon 123, 4234567; Bustamante, Betina, Avellaneda 135, 4458787; Lopez, Hector, Salta 545, 4887788; Lopez, Luis, Urquiza 333, 4545454; Lopez, Marisa, Urquiza 333, 4545454. 5- Seleccione todos los registros de la tabla 6- Seleccione el registro cuyo nombre sea "Marisa" (1 registro) 7- Seleccione los nombres y domicilios de quienes tengan apellido igual a "Lopez" (3 registros) 8- Muestre el nombre de quienes tengan el telfono "4545454" (2 registros)

Segundo problema: Trabaje con la tabla "libros" de una librera que guarda informacin referente a sus libros disponibles para la venta. 1- Elimine la tabla si existe. 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: El aleph,Borges,Emece; Martin Fierro,Jose Hernandez,Emece; Martin Fierro,Jose Hernandez,Planeta; Aprenda PHP,Mario Molina,Siglo XXI; 5- Seleccione los registros cuyo autor sea "Borges" (1 registro) 6- Seleccione los ttulos de los libros cuya editorial sea "Emece" (2 registros) 7- Seleccione los nombres de las editoriales de los libros cuyo ttulo sea "Martin Fierro" (2 registros)

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 06 Operadores relacionales Primer problema: Un comercio que vende artculos de computacin registra los datos de sus artculos en una tabla con ese nombre. 1- Elimine "articulos", si existe: if object_id('articulos') is not null drop table articulos; 2- Cree la tabla, con la siguiente estructura: create table articulos( codigo integer, nombre varchar(20), descripcion varchar(30), precio float, cantidad integer ); 3- Vea la estructura de la tabla (sp_columns). 4- Ingrese algunos registros: insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (1,'impresora','Epson Stylus C45',400.80,20); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (2,'impresora','Epson Stylus C85',500,30); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (3,'monitor','Samsung 14',800,10); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (4,'teclado','ingles Biswal',100,50); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (5,'teclado','espaol Biswal',90,50); 5- Seleccione los datos de las impresoras (2 registros) 6- Seleccione los artculos cuyo precio sea mayor o igual a 400 (3 registros) 7- Seleccione el cdigo y nombre de los artculos cuya cantidad sea menor a 30 (2 registros) 8- Selecciones el nombre y descripcin de los artculos que NO cuesten $100 (4 registros) Segundo problema: Un video club que alquila pelculas en video almacena la informacin de sus pelculas en alquiler en una tabla denominada "peliculas". 1- Elimine la tabla, si existe. 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo: create table peliculas( titulo varchar(20), actor varchar(20), duracion integer, cantidad integer ); 3- Ingrese los siguientes registros: insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible','Tom Cruise',120,3); insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible 2','Tom Cruise',180,4); insert into peliculas (titulo, actor, duracion, cantidad) values ('Mujer bonita','Julia R.',90,1); insert into peliculas (titulo, actor, duracion, cantidad) values ('Elsa y Fred','China Zorrilla',80,2); 4- Seleccione las pelculas cuya duracin no supere los 90 minutos (2 registros) 5- Seleccione el ttulo de todas las pelculas en las que el actor NO sea "Tom Cruise" (2 registros) 6- Muestre todos los campos, excepto "duracion", de todas las pelculas de las que haya ms de 2 copias (2 registros)

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 07 Borrar registros (delete) Primer problema: Trabaje con la tabla "agenda" que registra la informacin referente a sus amigos. 1- Elimine la tabla si existe: if object_id('agenda') is not null drop table agenda; 2- Cree la tabla con los siguientes campos: apellido (cadena de 30), nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11): create table agenda( apellido varchar(30), nombre varchar(20), domicilio varchar(30), telefono varchar(11) ); 3- Ingrese los siguientes registros (insert into): Alvarez,Alberto,Colon 123,4234567, Juarez,Juan,Avellaneda 135,4458787, Lopez,Maria,Urquiza 333,4545454, Lopez,Jose,Urquiza 333,4545454, Salas,Susana,Gral. Paz 1234,4123456. 4- Elimine el registro cuyo nombre sea "Juan" (1 registro afectado) 5- Elimine los registros cuyo nmero telefnico sea igual a "4545454" (2 registros afectados): 6- Muestre la tabla. 7- Elimine todos los registros (2 registros afectados): 8- Muestre la tabla. Segundo problema: Un comercio que vende artculos de computacin registra los datos de sus artculos en una tabla con ese nombre. 1- Elimine "articulos", si existe: if object_id('articulos') is not null drop table articulos; 2- Cree la tabla, con la siguiente estructura: create table articulos( codigo integer, nombre varchar(20), descripcion varchar(30), precio float, cantidad integer ); 3- Vea la estructura de la tabla. 4- Ingrese algunos registros: insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (1,'impresora','Epson Stylus C45',400.80,20); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (2,'impresora','Epson Stylus C85',500,30); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (3,'monitor','Samsung 14',800,10); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (4,'teclado','ingles Biswal',100,50); insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (5,'teclado','espaol Biswal',90,50); 5- Elimine los artculos cuyo precio sea mayor o igual a 500 (2 registros) delete from articulos where precio>=500; 7- Elimine todas las impresoras (1 registro) delete from articulos where nombre='impresora';

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
8- Elimine todos los artculos cuyo cdigo sea diferente a 4 (1 registro) delete from articulos where codigo<>4; 9- Mostrar la tabla despus que borra cada registro.

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 08 Actualizar registros (update) Primer problema: Trabaje con la tabla "agenda" que almacena los datos de sus amigos. 1- Elimine la tabla si existe: if object_id('agenda') is not null drop table agenda; 2- Cree la tabla: create table agenda( apellido varchar(30), nombre varchar(20), domicilio varchar(30), telefono varchar(11) ); 3- Ingrese los siguientes registros (1 registro actualizado): insert into agenda (apellido,nombre,domicilio,telefono) values ('Acosta','Alberto','Colon 123','4234567'); insert into agenda (apellido,nombre,domicilio,telefono) values ('Juarez','Juan','Avellaneda 135','4458787'); insert into agenda (apellido,nombre,domicilio,telefono) values ('Lopez','Maria','Urquiza 333','4545454'); insert into agenda (apellido,nombre,domicilio,telefono) values ('Lopez','Jose','Urquiza 333','4545454'); insert into agenda (apellido,nombre,domicilio,telefono) values ('Suarez','Susana','Gral. Paz 1234','4123456'); 4- Modifique el registro cuyo nombre sea "Juan" por "Juan Jose" (1 registro afectado) 5- Actualice los registros cuyo nmero telefnico sea igual a "4545454" por "4445566" (2 registros afectados) 6- Actualice los registros que tengan en el campo "nombre" el valor "Juan" por "Juan Jose" (ningn registro afectado porque ninguno cumple con la condicin del "where") 7 - Luego de cada actualizacin ejecute un select que muestre todos los registros de la tabla.

Segundo problema: Trabaje con la tabla "libros" de una librera. 1- Elimine la tabla si existe: if object_id('libros') is not null drop table libros; 2- Crela con los siguientes campos: titulo (cadena de 30 caracteres de longitud), autor (cadena de 20), editorial (cadena de 15) y precio (float): create table libros ( titulo varchar(30), autor varchar(20), editorial varchar(15), precio float ); 3- Ingrese los siguientes registros: insert into libros values insert into libros values insert into libros

(titulo, autor, editorial, precio) ('El aleph','Borges','Emece',25.00); (titulo, autor, editorial, precio) ('Martin Fierro','Jose Hernandez','Planeta',35.50); (titulo, autor, editorial, precio)

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
values insert into libros values insert into libros values ('Aprenda PHP','Mario Molina','Emece',45.50); (titulo, autor, editorial, precio) ('Cervantes y el quijote','Borges','Emece',25); (titulo, autor, editorial, precio) ('Matematica estas ahi','Paenza','Siglo XXI',15);

4- Muestre todos los registros (5 registros): select *from libros; 5- Modifique los registros cuyo autor sea igual a "Paenza", por "Adrian Paenza" (1 registro afectado) update libros set autor='Adrian Paenza' where autor='Paenza'; 6- Nuevamente, modifique los registros cuyo autor sea igual a "Paenza", por "Adrian Paenza" (ningn registro afectado porque ninguno cumple la condicin) update libros set autor='Adrian Paenza' where autor='Paenza'; 7- Actualice el precio del libro de "Mario Molina" a 27 pesos (1 registro afectado): update libros set precio=27 where autor='Mario Molina'; 8- Actualice el valor del campo "editorial" por "Emece S.A.", para todos los registros cuya editorial sea igual a "Emece" (3 registros afectados): update libros set editorial='Emece S.A.' where editorial='Emece'; 9 - Luego de cada actualizacin ejecute un select que muestre todos los registros de la tabla.

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 09 Valores null (is null) Primer problema: Una farmacia guarda informacin referente a sus medicamentos en una tabla llamada "medicamentos". 1- Elimine la tabla, si existe: if object_id('medicamentos') is not null drop table medicamentos; 2- Cree la tabla con la siguiente estructura: create table medicamentos( codigo integer not null, nombre varchar(20) not null, laboratorio varchar(20), precio float, cantidad integer not null ); 3- Visualice la estructura de la tabla "medicamentos": sp_columns medicamentos; note que los campos "codigo", "nombre" y "cantidad", en la columna "IS_NULLABLE" aparece "NO" y en las otras "YES". 4- Ingrese algunos registros con valores "null" para los campos que lo admitan: insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad) values(1,'Sertal gotas',null,null,100); insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad) values(2,'Sertal compuesto',null,8.90,150); insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad) values(3,'Buscapina','Roche',null,200); 5- Vea todos los registros: select *from medicamentos; 6- Ingrese un registro con valor "0" para el precio y cadena vaca para el laboratorio: insert into medicamentos (codigo,nombre, laboratorio,precio,cantidad) values(4,'Bayaspirina','',0,150); 7- Ingrese un registro con valor "0" para el cdigo y cantidad y cadena vaca para el nombre: insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad) values(0,'','Bayer',15.60,0); 8- Muestre todos los registros: select *from medicamentos; 9- Intente ingresar un registro con valor nulo para un campo que no lo admite (aparece un mensaje de error): insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad) values(null,'Amoxidal jarabe','Bayer',25,120); 10- Recupere los registros que contengan valor "null" en el campo "laboratorio", luego los que tengan una cadena vaca en el mismo campo. Note que el resultado es diferente. 11- 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 distinto. 12- Recupere los registros cuyo laboratorio no contenga una cadena vaca, luego los que sean distintos de "null". Note que la salida de la primera sentencia no muestra los registros con cadenas vacas y tampoco los que tienen valor nulo; el resultado de la segunda sentencia muestra los registros con valor para el campo laboratorio (incluso cadena vaca). 13- Recupere los registros cuyo precio sea distinto de 0, luego los que sean distintos de "null":

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
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).

Segundo problema: Trabaje con la tabla que almacena los datos sobre pelculas, llamada "peliculas". 1- Elimine la tabla si existe: if object_id('peliculas') is not null drop table peliculas; 2- Crela con la siguiente estructura: create table peliculas( codigo int not null, titulo varchar(40) not null, actor varchar(20), duracion int ); 3- Visualice la estructura de la tabla sp_columns peliculas; note que el campo "codigo" y "titulo", en la columna "IS_NULLABLE" muestra "NO" y los otros campos "YES". 4- Ingrese los siguientes registros: insert into peliculas (codigo,titulo,actor,duracion) values(1,'Mision imposible','Tom Cruise',120); insert into peliculas (codigo,titulo,actor,duracion) values(2,'Harry Potter y la piedra filosofal',null,180); insert into peliculas (codigo,titulo,actor,duracion) values(3,'Harry Potter y la camara secreta','Daniel R.',null); insert into peliculas (codigo,titulo,actor,duracion) values(0,'Mision imposible 2','',150); insert into peliculas (codigo,titulo,actor,duracion) values(4,'','L. Di Caprio',220); insert into peliculas (codigo,titulo,actor,duracion) values(5,'Mujer bonita','R. Gere-J. Roberts',0); 5- Recupere todos los registros para ver cmo SQL Server los almacen: select *from peliculas; 6- Intente ingresar un registro con valor nulo para campos que no lo admiten (aparece un mensaje de error): insert into peliculas (codigo,titulo,actor,duracion) values(null,'Mujer bonita','R. Gere-J. Roberts',190); 7- Muestre los registros con valor nulo en el campo "actor" y luego los que guardan una cadena vaca (note que la salida es distinta) (1 registro) 8- Modifique los registros que tengan valor de duracin desconocido (nulo) por "120" (1 registro actualizado) 9- Coloque 'Desconocido' en el campo "actor" en los registros que tengan una cadena vaca en dicho campo (1 registro afectado) 10- Muestre todos los registros. Note que el cambio anterior no afect a los registros con valor nulo en el campo "actor". 11- Elimine los registros cuyo ttulo sea una cadena vaca (1 registro)

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 10 Clave primaria Primer problema: Trabaje con la tabla "libros" de una librera. 1- Elimine la tabla si existe: if object_id('libros') is not null drop table libros; 2- Crela con los siguientes campos, estableciendo como clave primaria el campo "codigo": create table libros( codigo int not null, titulo varchar(40) not null, autor varchar(20), editorial varchar(15), primary key(codigo) ); 3- Ingrese los siguientes registros: insert into libros (codigo,titulo,autor,editorial) values (1,'El aleph','Borges','Emece'); insert into libros (codigo,titulo,autor,editorial) values (2,'Martin Fierro','Jose Hernandez','Planeta'); insert into libros (codigo,titulo,autor,editorial) values (3,'Aprenda PHP','Mario Molina','Nuevo Siglo'); 4- Ingrese un registro con cdigo repetido (aparece un mensaje de error) 5- Intente ingresar el valor "null" en el campo "codigo" 6- Intente actualizar el cdigo del libro "Martin Fierro" a "1" (mensaje de error) Segundo problema: Un instituto de enseanza almacena los datos de sus estudiantes en una tabla llamada "alumnos". 1- Elimine la tabla "alumnos" si existe: if object_id('alumnos') is not null drop table alumnos; 2- Cree la tabla con la siguiente estructura intentando establecer 2 campos como clave primaria, el campo "documento" y "legajo" (no lo permite): create table alumnos( legajo varchar(4) not null, documento varchar(8), nombre varchar(30), domicilio varchar(30), primary key(documento), primary key(legajo) ); 3- Cree la tabla estableciendo como clave primaria el campo "documento": create table alumnos( legajo varchar(4) not null, documento varchar(8), nombre varchar(30), domicilio varchar(30), primary key(documento) ); 4- Verifique que el campo "documento" no admite valores nulos: sp_columns alumnos; 5- Ingrese los siguientes registros: insert into alumnos (legajo,documento,nombre,domicilio) values('A233','22345345','Perez Mariana','Colon 234'); insert into alumnos (legajo,documento,nombre,domicilio) values('A567','23545345','Morales Marcos','Avellaneda 348'); 6- Intente ingresar un alumno con nmero de documento existente (no lo permite) 7- Intente ingresar un alumno con documento nulo (no lo permite)

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 11 Campo con atributo Identity Primer problema: Una farmacia guarda informacin referente a sus medicamentos en una tabla llamada "medicamentos". 1- Elimine la tabla,si existe: if object_id('medicamentos') is not null drop table medicamentos; 2- Cree la tabla con un campo "codigo" que genere valores secuenciales automticamente: create table medicamentos( codigo int identity, nombre varchar(20) not null, laboratorio varchar(20), precio float, cantidad integer ); 3- Visualice la estructura de la tabla "medicamentos": sp_columns medicamentos; 4- 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); 5- Verifique que SQL Server gener valores para el campo "cdigo" de modo automtico: select *from medicamentos; 6- Intente ingresar un registro con un valor para el campo "codigo" 7- Intente actualizar un valor de cdigo (aparece un mensaje de error) 8- Elimine el registro con codigo "3" (1 registro eliminado) 9- Ingrese un nuevo registro: insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxilina 500','Bayer',15.60,100); 10- Seleccione todos los registros para ver qu valor guard SQL Server en el campo cdigo: select *from medicamentos;

Segundo problema: Un videoclub almacena informacin sobre sus pelculas en una tabla llamada "peliculas". 1- Elimine la tabla si existe: if object_id('peliculas') is not null drop table peliculas; 2- Crela definiendo un campo "codigo" autoincrementable y como clave primaria: create table peliculas( codigo int identity, titulo varchar(40), actor varchar(20), duracion int, primary key(codigo) );

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
3- Ejecute el procedimiento almacenado para visualizar la estructura de la tabla: sp_columns peliculas; 4- Ingrese los siguientes registros: insert into peliculas (titulo,actor,duracion) values('Mision imposible','Tom Cruise',120); insert into peliculas (titulo,actor,duracion) values('Harry Potter y la piedra filosofal','Daniel R.',180); insert into peliculas (titulo,actor,duracion) values('Harry Potter y la camara secreta','Daniel R.',190); insert into peliculas (titulo,actor,duracion) values('Mision imposible 2','Tom Cruise',120); insert into peliculas (titulo,actor,duracion) values('La vida es bella','zzz',220); 5- Seleccione todos los registros y verifique la carga automtica de los cdigos: select *from peliculas; 6- Intente actualizar el codigo de una pelcula (aparece un mensaje de error) 7- Elimine la pelcula "La vida es bella". 8- Ingrese un nuevo registro. 9- Visualice los registros para ver el valor almacenado en codigo (valor 7): select *from peliculas;

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 12 Otras caractersticas del atributo Identity Primer problema: Una farmacia guarda informacin referente a sus medicamentos en una tabla llamada "medicamentos". 1- Elimine la tabla,si existe: if object_id('medicamentos') is not null drop table medicamentos; 2- Cree la tabla con un campo "codigo" que genere valores secuenciales automticamente comenzando en 10 e incrementndose en 1: create table medicamentos( codigo integer identity(10,1), nombre varchar(20) not null, laboratorio varchar(20), precio float, cantidad integer ); 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- Verifique que SQL Server gener valores para el campo "cdigo" de modo automtico: select *from medicamentos; 5- Intente ingresar un registro con un valor para el campo "codigo". 6- Setee la opcin "identity_insert" en "on" 7- Ingrese un nuevo registro sin valor para el campo "codigo" (no lo permite): insert into medicamentos (nombre, laboratorio,precio,cantidad) values('Amoxilina 500','Bayer',15.60,100); 8- Ingrese un nuevo registro con valor para el campo "codigo" repetido. 9- Use la funcin "ident_seed()" para averiguar el valor de inicio del campo "identity" de la tabla "medicamentos" 10- Emplee la funcin "ident_incr()" para saber cul es el valor de incremento del campo "identity" de "medicamentos"

Segundo problema: Un videoclub almacena informacin sobre sus pelculas en una tabla llamada "peliculas". 1- Elimine la tabla si existe: if object_id('peliculas') is not null drop table peliculas; 2- Crela definiendo un campo "codigo" autoincrementable que comience en 50 y se incremente en 3: create table peliculas( codigo int identity (50,3), titulo varchar(40), actor varchar(20), duracion int );

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
3- Ingrese los siguientes registros: insert into peliculas (titulo,actor,duracion) values('Mision imposible','Tom Cruise',120); insert into peliculas (titulo,actor,duracion) values('Harry Potter y la piedra filosofal','Daniel R.',180); insert into peliculas (titulo,actor,duracion) values('Harry Potter y la camara secreta','Daniel R.',190); 4- Seleccione todos los registros y verifique la carga automtica de los cdigos: select *from peliculas; 5- Setee la opcin "identity_insert" en "on" 6- Ingrese un registro con valor de cdigo menor a 50. 7- Ingrese un registro con valor de cdigo mayor al ltimo generado. 8- Averigue el valor de inicio del campo "identity" de la tabla "peliculas". 9- Averigue el valor de incremento del campo "identity" de "peliculas". 10- Intente ingresar un registro sin valor para el campo cdigo. 11- Desactive la opcin se insercin para el campo de identidad. 12- Ingrese un nuevo registro y muestre todos los registros para ver cmo SQL Server sigui la secuencia tomando el ltimo valor del campo como referencia.

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
EJERCICIO 13 Truncate table Primer problema: Un instituto de enseanza almacena los datos de sus estudiantes en una tabla llamada "alumnos". 1- Elimine la tabla "alumnos" si existe: if object_id('alumnos') is not null drop table alumnos; 2- Cree la tabla con la siguiente estructura: create table alumnos( legajo int identity, documento varchar(8), nombre varchar(30), domicilio varchar(30) ); 3- Ingrese los siguientes registros y mustrelos para ver la secuencia de cdigos: insert into alumnos (documento,nombre,domicilio) values('22345345','Perez Mariana','Colon 234'); insert into alumnos (documento,nombre,domicilio) values('23545345','Morales Marcos','Avellaneda 348'); insert into alumnos (documento,nombre,domicilio) values('24356345','Gonzalez Analia','Caseros 444'); insert into alumnos (documento,nombre,domicilio) values('25666777','Torres Ramiro','Dinamarca 209'); 4- Elimine todos los registros con "delete". 5- Ingrese los siguientes registros y seleccinelos para ver cmo SQL Server gener los cdigos: insert into alumnos (documento,nombre,domicilio) values('22345345','Perez Mariana','Colon 234'); insert into alumnos (documento,nombre,domicilio) values('23545345','Morales Marcos','Avellaneda 348'); insert into alumnos (documento,nombre,domicilio) values('24356345','Gonzalez Analia','Caseros 444'); insert into alumnos (documento,nombre,domicilio) values('25666777','Torres Ramiro','Dinamarca 209'); select *from alumnos; 6- Elimine todos los registros con "truncate table". 7- Ingrese los siguientes registros y muestre todos los registros para ver que SQL Server reinici la secuencia del campo "identity": insert into alumnos (documento,nombre,domicilio) values('22345345','Perez Mariana','Colon 234'); insert into alumnos (documento,nombre,domicilio) values('23545345','Morales Marcos','Avellaneda 348'); insert into alumnos (documento,nombre,domicilio) values('24356345','Gonzalez Analia','Caseros 444'); insert into alumnos (documento,nombre,domicilio) values('25666777','Torres Ramiro','Dinamarca 209'); select *from alumnos;

Segundo problema: Un comercio que vende artculos de computacin registra los datos de sus artculos en una tabla con ese nombre. 1- Elimine "articulos", si existe: if object_id('articulos') is not null drop table articulos;

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
2- Cree la tabla, con la siguiente estructura: create table articulos( codigo integer identity, nombre varchar(20), descripcion varchar(30), precio float ); 3- Ingrese algunos registros: insert into articulos (nombre, descripcion, precio) values ('impresora','Epson Stylus C45',400.80); insert into articulos (nombre, descripcion, precio) values ('impresora','Epson Stylus C85',500); 4- Elimine todos los registros con "truncate table". 5- Ingrese algunos registros y mustrelos para ver que la secuencia de cdigos se reinicia: insert into articulos (nombre, descripcion, precio) values ('monitor','Samsung 14',800); insert into articulos (nombre, descripcion, precio) values ('teclado','ingles Biswal',100); insert into articulos (nombre, descripcion, precio) values ('teclado','espaol Biswal',90); select *from articulos; 6- Elimine todos los registros con "delete". 7- Ingrese algunos registros y mustrelos para ver que la secuencia de cdigos continua: insert into articulos (nombre, descripcion, precio) values ('monitor','Samsung 14',800); insert into articulos (nombre, descripcion, precio) values ('teclado','ingles Biswal',100); insert into articulos (nombre, descripcion, precio) values ('teclado','espaol Biswal',90); select *from articulos;

EJERCICIO 14 Tipo de dato (texto) Primer problema: Una concesionaria de autos vende autos usados y almacena los datos de los autos en una tabla llamada "autos". 1- Elimine la tabla "autos" si existe: if object_id('autos') is not null drop table autos; 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo, estableciendo el campo "patente" como clave primaria: create table autos( patente char(6), marca varchar(20), modelo char(4), precio float, primary key (patente) ); Hemos definido el campo "patente" de tipo "char" y no "varchar" porque la cadena de caracteres siempre tendr la misma longitud (6 caracteres). Lo mismo sucede con el campo "modelo", en el cual

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
almacenaremos el ao, necesitamos 4 caracteres fijos. 3- Ingrese los siguientes registros: insert into autos values('ACD123','Fiat 128','1970',15000); insert into autos values('ACG234','Renault 11','1990',40000); insert into autos values('BCD333','Peugeot 505','1990',80000); insert into autos values('GCD123','Renault Clio','1990',70000); insert into autos values('BCC333','Renault Megane','1998',95000); insert into autos values('BVF543','Fiat 128','1975',20000); 4- Seleccione todos los autos del ao 1990: select *from autos where modelo='1990'; Segundo problema: Una empresa almacena los datos de sus clientes en una tabla llamada "clientes". 1- Elimine la tabla "clientes" si existe: if object_id('clientes') is not null drop table clientes; 2- Crela eligiendo el tipo de dato ms adecuado para cada campo: create table clientes( documento char(8), apellido varchar(20), nombre varchar(20), domicilio varchar(30), telefono varchar (11) ); 3- Analice la definicin de los campos. Se utiliza char(8) para el documento porque siempre constar de 8 caracteres. Para el nmero telefnico se usar "varchar" y no un tipo numrico porque si bien es un nmero, con l no se realizarn operaciones matemticas. 4- Ingrese algunos registros: insert into clientes values('2233344','Perez','Juan','Sarmiento 980','4342345'); insert into clientes (documento,apellido,nombre,domicilio) values('2333344','Perez','Ana','Colon 234'); insert into clientes values('2433344','Garcia','Luis','Avellaneda 1454','4558877'); insert into clientes values('2533344','Juarez','Ana','Urquiza 444','4789900'); 5- Seleccione todos los clientes de apellido "Perez" (2 registros): select *from clientes where apellido='Perez';

EJERCICIO 15 Tipo de dato (numrico) Primer problema: Un banco tiene registrados las cuentas corrientes de sus clientes en una tabla llamada "cuentas". La tabla contiene estos datos: Nmero de Cuenta Documento Nombre Saldo

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
______________________________________________________________ 1234 25666777 Pedro Perez 500000.60 2234 27888999 Juan Lopez -250000 3344 27888999 Juan Lopez 4000.50 3346 32111222 Susana Molina 1000 1- Elimine la tabla "cuentas" si existe: if object_id('cuentas') is not null drop table cuentas; 2- Cree la tabla eligiendo el tipo de dato adecuado para almacenar los datos descriptos arriba: - Nmero de cuenta: entero, no nulo, no puede haber valores repetidos, clave primaria; - Documento del propietario de la cuenta: cadena de caracteres de 8 de longitud (siempre 8), no nulo; - Nombre del propietario de la cuenta: cadena de caracteres de 30 de longitud, - Saldo de la cuenta: valores altos con decimales. 3- Ingrese los siguientes registros: insert into cuentas(numero,documento,nombre,saldo) values('1234','25666777','Pedro Perez',500000.60); insert into cuentas(numero,documento,nombre,saldo) values('2234','27888999','Juan Lopez',-250000); insert into cuentas(numero,documento,nombre,saldo) values('3344','27888999','Juan Lopez',4000.50); insert into cuentas(numero,documento,nombre,saldo) values('3346','32111222','Susana Molina',1000); Note que hay dos cuentas, con distinto nmero de cuenta, de la misma persona. 4- Seleccione todos los registros cuyo saldo sea mayor a "4000" (2 registros) 5- Muestre el nmero de cuenta y saldo de todas las cuentas cuyo propietario sea "Juan Lopez" (2 registros) 6- Muestre las cuentas con saldo negativo (1 registro) 7- Muestre todas las cuentas cuyo nmero es igual o mayor a "3000" (2 registros): select *from cuentas where numero>=3000; Segundo problema: Una empresa almacena los datos de sus empleados en una tabla "empleados" que guarda los siguientes datos: nombre, documento, sexo, domicilio, sueldobasico. 1- Elimine la tabla, si existe: if object_id('empleados') is not null drop table empleados; 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo: create table empleados( nombre varchar(30), documento char(8), sexo char(1), domicilio varchar(30), sueldobasico decimal(7,2),--mximo estimado 99999.99 cantidadhijos tinyint--no superar los 255 ); 3- Ingrese algunos registros: insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos) values ('Juan Perez','22333444','m','Sarmiento 123',500,2); insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)

EJERCICIOSDESQLSERVER MaterialcompiladodesdediversasfuentesdeInternet
values ('Ana Acosta','24555666','f','Colon 134',850,0); insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos) values ('Bartolome Barrios','27888999','m','Urquiza 479',10000.80,4); 4- Ingrese un valor de "sueldobasico" con ms decimales que los definidos (redondea los decimales al valor ms cercano 800.89): insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos) values ('Susana Molina','29000555','f','Salta 876',800.888,3); 5- Intente ingresar un sueldo que supere los 7 dgitos (no lo permite) 6- Muestre todos los empleados cuyo sueldo no supere los 900 pesos (1 registro): 7- Seleccione los nombres de los empleados que tengan hijos (3 registros):

EJERCICIO 16 Tipo de dato (fecha y hora) EJERCICIO 17 Ingresar algunos campos (insert into) EJERCICIO 18 Valores por defecto (default)

EJERCICIO 19 Columnas calculadas (operadores aritmticos y de concatenacin)

Vous aimerez peut-être aussi