Documente Academic
Documente Profesional
Documente Cultură
Informática
TRABAJO INDIVIDUAL
PRESENTADO POR:
Silva Principe, Bruss Juan
Para:
Ing.Rios Herrera, Josue Joel
Huacho-Perú
2018
Ejemplos Propuestos en SQL SERVER
Sub- Consultas(1)
A. CREAMOS LA BASE DE DATOS LIBRERIA
SE LEE: Si cumple que el object_id de la tabla libros existe se eliminara la tabla Libros.
SE LEE: Crear tabla libros con los siguientes campos: código de tipo int identity, titulo de tipo
varchar de tamaño 40, campo autor de tipo varchar de tamaño 30, campo editorial de tipo
varchar de tamaño 20, campo precio de tipo decimal con 5 enteros y 2 decimales.
3. /*Ingresamos los siguientes registros:*/
SE LEE: Insertar en la tabla libros los siguientes valores (Cadena de caracteres titulo Alicia en
el país de las maravillas, cadenas de caracteres autor Lewis Carroll, cadena de caracteres
editorial Emece, cadena de caracteres precio decimal 20.00)
INSERT INTO libros VALUES
('Alicia en el pais de las maravillas','Lewis
Carroll','Plaza',35.00);
SE LEE: Insertar en la tabla libros los siguientes valores (Cadena de caracteres titulo Alicia en
el país de las maravillas, cadenas de caracteres autor Lewis Carroll, cadena de caracteres
editorial Plaza, cadena de caracteres precio decimal 35.00)
INSERT INTO libros VALUES
('Aprenda PHP','Mario Molina','Siglo XXI',40.00);
SE LEE: Insertar en la tabla libros los siguientes valores (Cadena de caracteres titulo Aprenda
PHP, cadenas de caracteres autor Mario Molina, cadena de caracteres editorial Siglo XXI,
cadena de caracteres precio decimal 40.00)
INSERT INTO libros VALUES
('El aleph','Borges','Emece',10.00);
SE LEE: Insertar en la tabla libros los siguientes valores (Cadena de caracteres titulo El Aleph,
cadenas de caracteres autor Borgues, cadena de caracteres editorial Emece, cadena de
caracteres precio decimal 10.00)
INSERT INTO libros VALUES
('Ilusiones','Richard Bach','Planeta',15.00);
SE LEE: Insertar en la tabla libros los siguientes valores(Cadena de caracteres titulo Ilusiones,
cadenas de caracteres autor Richard Bach, cadena de caracteres editorial Planeta, cadena de
caracteres precio decimal 15.00)
INSERT INTO libros VALUES
('Java en 10 minutos','Mario Molina','Siglo zXI',50.00);
SE LEE: Insertar en la tabla libros los siguientes valores(Cadena de caracteres titulo Java en 10
minutos, cadenas de caracteres autor Mario Molina, cadena de caracteres editorial Siglo zXI,
cadena de caracteres precio decimal 50.00)
INSERT INTO libros VALUES
('Martin Fierro','Jose Hernandez','Planeta',20.00);
SE LEE: Insertar en la tabla libros los siguientes valores (Cadena de caracteres titulo Martin
Fierro, cadenas de caracteres autor José Hernández, cadena de caracteres editorial Planeta,
cadena de caracteres precio decimal 20.00)
INSERT INTO libros VALUES
('Martin Fierro','Jose Hernandez','Emece',30.00);
SE LEE: Insertar en la tabla libros los siguientes valores (Cadena de caracteres titulo Martin
Fierro, cadenas de caracteres autor José Hernández, cadena de caracteres editorial Emece,
cadena de caracteres precio decimal 30.00)
INSERT INTO libros VALUES
('Uno','Richard Bach','Planeta',10.00);
SE LEE: Insertar en la tabla libros los siguientes valores (Cadena de caracteres titulo Uno,
cadenas de caracteres autor Richard Bach, cadena de caracteres editorial Planeta, cadena de
caracteres precio decimal 10.00)
SE LEE: Seleccionar el campo titulo y campo precio de la tabla libros y al campo precio
restarle la subconsulta de el máximo valor del campo precio de la tabla libros al resultado
etiquetarlo con el nombre diferencia mientras cumpla que su titulo del libro sea igual ”Uno”
5. /*Mostramos el título y precio del libro más costoso:*/
SELECT titulo, autor, precio
FROM libros
WHERE precio=
(SELECT MAX(precio) FROM libros);
SE LEE: seleccionamos del campo título del campo, autor, precio de la tabla
libro, mientras cumpla que el campo precio es igual a la subconsulta el máximo valor del
campo precio de la tabla libros)
WHERE precio=
(SELECT MAX(precio) FROM libros);
SE LEE: Borrar la tabla libros mientras cumpla que el precio sea igual a la subconsulta el
mínimo valor del campo precio de la tabla libros
SE LEE: Si cumple que el object_id de la tabla alumnos existe se eliminara la tabla alumnos
2. /*Créela con los campos necesarios. Agregue una restricción "primary key" para el
campo "documento" y una "check" para validar que el campo "nota" se encuentre
entre los valores 0 y 20:*/
create table alumnos
(
DNI char(8),
nombre varchar(30),
nota decimal(4,2),
PRIMARY KEY(DNI),
CONSTRAINT CK_ALUMNOS_NOTA_VALORES CHECK (nota>=0 and nota <=20),
);
SE LEE: Creamos la tabla alumno con los siguientes campos: DNI de tipo char tamaño 8,
nombre de tipo varchar tamaño 30, nota de tipo decimal con 4 enteros y 2 decimales, el
campo DNI va ser mi llave primaria, crear restricción con el nombre
CK_ALUMNOS_NOTA_VALORES que cumpla que la nota sea mayor o igual a 0 y menor o igual
a 20.
3. /*Ingrese algunos registros:*/
INSERT INTO alumnos VALUES ('30111111','Ana Algarbe',15.1);
SE LEE: Insertamos dentro de la tabla alumnos los siguientes valores (cadena de caracteres DNI
30111111, cadena de caracteres nombre Ana Algarbe, cadena de caracteres nota 15.1)
INSERT INTO alumnos VALUES ('30222222','Bernardo Bustamante',13.2);
SE LEE: Insertamos dentro de la tabla alumnos los siguientes valores (cadena de caracteres DNI
30222222, cadena de caracteres nombre Bernardo Bustamante, cadena de caracteres nota
13.2)
INSERT INTO alumnos VALUES ('30333333','Carolina Conte',15.3);
SE LEE: Insertamos dentro de la tabla alumnos los siguientes valores (cadena de caracteres DNI
30333333, cadena de caracteres nombre Carolina Conte, cadena de caracteres nota 15.3)
INSERT INTO alumnos VALUES ('30444444','Diana Dominguez',19.2);
SE LEE: Insertamos dentro de la tabla alumnos los siguientes valores (cadena de caracteres DNI
30444444, cadena de caracteres nombre Diana Dominguez,cadena de caracteres nota 19.2)
SE LEE: Insertamos dentro de la tabla alumnos los siguientes valores (cadena de caracteres DNI
30555555, cadena de caracteres nombre Fabian Fuentes, cadena de caracteres nota 17.5)
SE LEE: Insertamos dentro de la tabla alumnos los siguientes valores (cadena de caracteres DNI
30666666, cadena de caracteres nombre Gaston Gonzalez, cadena de caracteres nota 16.70)
4. /*Obtenga todos los datos de los alumnos con la nota más alta, empleando
subconsulta.*/
SELECT alumnos.*
FROM alumnos
WHERE nota=(SELECT MAX(nota) FROM alumnos);
SE LEE: Seleccionar todos los campos de la tabla de alumno mientras que la nota sea igual a la
subconsulta el máximo valor del campo nota de la tabla alumnos
5. /*Muestre los alumnos que tienen una nota menor al promedio, su nota, y la
diferencia con el promedio.*/
SELECT alumnos.*,
(SELECT AVG(nota) FROM alumnos)-nota as diferencia
FROM alumnos
WHERE nota<(SELECT avg(nota) FROM alumnos);
SE LEE: seleccione todo los campo de la tabla alumnos y la sub consulta promedio del campo
nota de la tabla alumnos menos el campo nota a este campo etiquetarlo como “diferencia”
mientras que cumpla que la nota sea menor que lo subconsulta promedio del campo nota de
la tabla alumnos
6. /*Cambie la nota del alumno que tiene la menor nota por 14.*/
UPDATE alumnos SET nota=14
WHERE nota=(SELECT MIN(nota) FROM alumnos);
SE LEE: Actualizar el campo nota de la tabla alumnos con el valor 14 mientras cumpla que la
nota sea igual a la subconsulta mínimo valor del campo nota de la tabla alumnos
SE LEE: Eliminar la tabla alumnos mientra que la nota sea menor que la subconsulta promedio
del campo nota de la tabla alumnos
Ejemplos Propuestos en SQL SERVER
Sub- Consultas (2)
Creamos una base de datos BODEGA
Un comercio que vende artículos de librería y papelería almacena la información de
sus ventas en una tabla llamada "facturas", otra "detalles" y otra "clientes".
PRIMARY KEY(numero),
CONSTRAINT FK_facturas_cliente
FOREIGN KEY (codigocliente)
REFERENCES clientes(codigo)
ON UPDATE CASCADE
);
CREATE TABLE detalles
(
numerofactura int not null,
numeroitem int not null,
articulo varchar(30),
precio decimal(5,2),
cantidad int,
primary key(numerofactura,numeroitem),
CONSTRAINT FK_detalles_numerofactura
FOREIGN KEY (numerofactura)
REFERENCES facturas(numero)
ON UPDATE CASCADE
ON DELETE CASCADE,
);
SE LEE: Crear una tabla con el nombre clientes con los siguientes campos: código int identity,
nombre varchar(30), domicilio varchar(30), la llave primaria es el campo código; Crear una
tabla con el nombre facturas con los siguientes campos: numero int NOT NULL, fecha
datetime, codigocliente int NOT NULL, la llave primaria es el campo numero, crear restricción
con el nombre FK_facturas_cliente donde la llave forania es el campo códigocliente que se
obtiene de la tabla clientes del campo código esto se actualiza en cascada; Crear una tabla con
el nombre detalles con los siguientes campos: numerofactura int not null, numeroitem int not
null, articulo varchar(30), precio decimal(5,2), cantidad int, las llaves primarias son
numerofactura y numeroitem,creamos una restricción con el nombre
FK_detalles_numerofactura donde la llave foránea sea numerofactura que se obtiene de la
tabla facturas del campo número se actualiza en cascada ambos FOREIGN KEY
(numerofactura)
Ingresamos algunos registros:
SE LEE: insertar en la tabla clientes los siguientes valores: cadena de caracteres Juan Lopez,
codena de caracteres Colon 123.
SE LEE: insertar en la tabla clientes los siguientes valores: cadena de caracteres Luis Torres,
cadena de caracteres Sucre 987;
SE LEE: insertar en la tabla clientes los siguientes valores: cadena de caracteres Ana Gacrcia,
cadena de caracteres Sarmiento 576;
SE LEE: insertar en la tabla facturas los siguientes valores: cadena de caracteres 1200, codena
de caracteres 2007-01-15, cadena de caracteres 1;
SE LEE: insertar en la tabla facturas los siguientes valores: cadena de caracteres 1201, cadena
de caracteres 2007-01-15, cadena de caracteres 2;
SE LEE: insertar en la tabla facturas los siguientes valores: cadena de caracteres 1300, cadena
de caracteres 2007-01-15, cadena de caracteres 3;
SE LEE: insertar en la tabla facturas los siguientes valores: cadena de caracteres 1300, cadena
de caracteres 2007-01-20, cadena de caracteres 1;
SE LEE: insertar en la tabla detalles los siguientes valores: cadena de caracteres 1200, cadena
de caracteres 1, cadena de caracteres lápiz, cadena de caracteres 1, cadena de caracteres 100;
SE LEE: insertar en la tabla detalles los siguientes valores: cadena de caracteres 1200, cadena
de caracteres 1, cadena de caracteres goma; cadena de caracteres 0.5, cadena de caracteres
150;
SE LEE: insertar en la tabla detalles los siguientes valores: cadena de caracteres 1201, cadena
de caracteres 1, cadena de caracteres regla; cadena de caracteres 1.5, cadena de caracteres
80;
SE LEE: insertar en la tabla detalles los siguientes valores: cadena de caracteres 1201, cadena
de caracteres 3, cadena de caracteres cuaderno; cadena de caracteres 4, cadena de caracteres
90;
SE LEE: insertar en la tabla detalles los siguientes valores: cadena de caracteres 1202, cadena
de caracteres 1, cadena de caracteres lapiz; cadena de caracteres 1, cadena de caracteres 200;
SE LEE: insertar en la tabla detalles los siguientes valores: cadena de caracteres 1202, cadena
de caracteres 2, cadena de caracteres escuadra; cadena de caracteres 2, cadena de caracteres
100;
SE LEE: insertar en la tabla detalles los siguientes valores: cadena de caracteres 1300, cadena
de caracteres 1, cadena de caracteres lapiz; cadena de caracteres 1, cadena de caracteres 300;
Vamos a realizar un "select" para recuperar el número de factura, el código de
cliente, la fecha y la suma total de todas las facturas:
SELECT td.numero,c.nombre,td.total
FROM clientes as c
JOIN (select f.*,(SELECT sum(d.precio*cantidad)
FROM detalles as d
WHERE f.numero=d.numerofactura) AS total
From facturas as f) AS td
ON td.codigocliente=c.codigo;
SELECT td.numero,c.nombre,td.total
FROM clientes as c
JOIN (select f.*,(SELECT sum(d.precio*cantidad)
FROM detalles as d
WHERE f.numero=d.numerofactura) AS total
From facturas as f) AS td
ON td.codigocliente=c.codigo;
SE LEE: seleccionar el campo numero de la tabla td, el campo nombre de la tabla c, el campo
total de la tabla td la tabla clientes alias c a esta consulta la unimos con la selección de todos
los campos de la tabla f y la subconsulta sumar la multiplicación de los campos precio y
cantidad de la tabla d, la tabla detalles alias d mientras cumpla que campo numero de la tabla f
sea igual que el campo numerofactura de la tabla d a todo este resultado lo nombramos como
total, la tabla facturas alias f a esto lo llamamos td unidos por la lleve foránea códigocliente de
la tabla td y código como llave primaria de la tabla c
CREAR UNA BASE DE DATOS: LIBRERIA
Trabajamos con las tablas "libros" y "editoriales" de una librería.
Eliminamos las tablas si existen y las creamos:
SE LEE: si el object_id de la tabla libros existe eliminar la tabla libros; si el object_id de la tabla
editoriales existe eliminar la tabla editoriales
CREATE TABLE editoriales
(
codigo tinyint identity,
nombre varchar(30),
PRIMARY KEY (codigo)
);
SE LEE: creamos la tabla editoriales con los campos: código tinyint identity, nombre varchar
tamaño 30, ponemos como llave primaria a código; creamos la tabla libro libros con los
campos: código int identity, titulo varchar tamño 40, autor carchar tamaño 30, código editorial
tinyint, precio decimal con 5 enteros y dos decimales, ponemos como llave primaria a código
SE LEE: insertar en la tabla libros los valores: cadena de caracteres Aprenda PHP, cadena de
caracteres Mario Molina, candena de caracteres 4, cadena de caracteres 40; insertar en la
tabla libros los valores: cadena de caracteres Poemas, cadena de caracteres Juan Perezzç,
candena de caracteres 1, cadena de caracteres 20; insertar en la tabla libros los valores:
cadena de caracteres Cuentos, cadena de caracteres Juan Perez, candena de caracteres 3,
cadena de caracteres 25; insertar en la tabla libros los valores: cadena de caracteres Java en 10
minutos, cadena de caracteres Marcelo Perez, candena de caracteres 2, cadena de caracteres
30;
SE LEE: Actualizar el campo precio de la tabla libros con un 10 por ciento más de su valor
mientras se cumpla que el códigoeditorial sea igual a la suconsulta seleccionar el campo código
de la tabla editoriales mientras que el nombre sea igual a Emece
Eliminamos todos los libros de las editoriales que tienen publicados libros de
"Juan Perez":
SE LEE: Eliminar la tabla libros si cumple que códigoeditorial coincide con la selección del
campo código de la tabla e de la tabla editorial alias e se une con la tabla libros mediante
códigoeditorial como llave foránea y código como llave primaria mientra el campo autor sea
igual a Juan Perez
SE LEE: insertar en la tabla socios los siguientes valores: cadena de caracteres 23333333,
cadena de caractres Alberto paredes, cadena de caractres Colon 111;
SE LEE: insertar en la tabla socios los siguientes valores: cadena de caracteres 24444444,
cadena de caractres Carlos Conte, cadena de caractres Sarmiento 755;
SE LEE: insertar en la tabla socios los siguientes valores: cadena de caracteres 25555555,
cadena de caractres Fabian Fuentes, cadena de caractres Caseros 987;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 1, cadena de
caractres tenis, cadena de caractres s;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 1, cadena de
caractres basquet, cadena de caractres s;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 1, cadena de
caractres natacion, cadena de caractres s;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 2, cadena de
caractres tenis, cadena de caractres s;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 2, cadena de
caractres natacion, cadena de caractres s;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 2, cadena de
caractres basquet, cadena de caractres n;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 2, cadena de
caractres futbol, cadena de caractres n;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 3, cadena de
caractres tenis, cadena de caractres s;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 1, cadena de
caractres tenis, cadena de caractres s;
SE LEE: insertar en la tabla inscriptos los siguientes valores: cadena de caracteres 3, cadena de
caractres natacion, cadena de caractres n;
SE LEE: Actualizar el campo matricula de la tabla inscriptos con el valor s mientras cumpla que
numerosocio es igual a la subconsulta de seleccionar el campo numero de la tabla socios
mientras sea el documento igual a 25555555
5. Elimine todas las inscripciones de los socios que deben alguna
matrícula.
ON numerosocio=numero
WHERE matricula='n'
);
SE LEE: eliminar la tabla inscriptos mientra que el numerosocio coincide con la selección de el
campo numero de la tabla socios alias s uniendo la tabla inscriptos mediante numero de socio
y numero, mientras cumpla que la matricula sea igual a n
CREAR UNA BASE DE DATOS COLEGIO
Un profesor almacena las notas de sus alumnos en una tabla llamada alumnos"
(documento, nombre, nota). Tiene otra tabla llamada "aprobados" (documento,nota) en
la que guarda los alumnos que han aprobado el ciclo.
SE LEE: Insertar en la tabla alumnos los siguientes valores: cadena de caracteres 30111111,
cadena de caracteres Betina Bustos, cadena de caractres 9
SE LEE: Insertar en la tabla alumnos los siguientes valores: cadena de caracteres 302222222,
cadena de caracteres Carlos Caseros, cadena de caractres 2.5
SE LEE: Insertar en la tabla alumnos los siguientes valores: cadena de caracteres 30333333,
cadena de caracteres Daniel Duarte, cadena de caractres 7.7
SE LEE: Insertar en la tabla alumnos los siguientes valores: cadena de caracteres 304444444,
cadena de caracteres Estela Esper, cadena de caractres 3.4
Ingresamos registros en la tabla "aprobados" seleccionando registros de la tabla
"alumnos":
INSERT INTO aprobados
SELECT documento,nota
FROM alumnos
WHERE nota>=4;