Vous êtes sur la page 1sur 61

Contenido

Fundamento terico.......................................................................................................2
Practica 1.....................................................................................................................3
Practica 2.....................................................................................................................5
Practica 3.....................................................................................................................7
Practica 4.....................................................................................................................9
Practica 5...................................................................................................................12
Prctica 6...................................................................................................................15
Practica 7...................................................................................................................19
Practica 8...................................................................................................................22
Practica 9...................................................................................................................26
Practica 10.................................................................................................................30
Practica 11..................................................................................................................33
Practica 12.................................................................................................................38
Practica 13.................................................................................................................40
Conclusin.................................................................................................................57

Fundamento terico

En esta unidad se comenz a realizar consultas a bases de datos existentes mediante el


lenguaje de manipulacin de datos, que nos permiti consultar registros de nuestras
bases de datos con el comando select, insert con el cual pudimos manipular la base e
insertar registros en ella modificar y eliminar con los comandos update y delete
respectivamente, esto por mostrar lo ms bsico, puesto que hicimos uso tambin de la
clusula where la cual nos ayuda a complementar el comando select, delete o update y el
cual nos ofrece la funcionalidad de filtrar resultados buscando solo aquellos que nosotros
hayamos elegido, y que junto con esta clusula utilizamos otras que nos ayudan a filtrar
los resultados dentro de la clusula where tal es el caso del comando Between para
devolver una serie de registros que se encuentren dentro de un rango de parmetros,
Like para encontrar uno o varios registros que en algn campo especificado tenga el
mismo dato que el del parmetro definido, adems de las clusulas de agregacin tales
como Sum, Count, Avg y Group by.
Todos estos comandos mencionados anteriormente son muy potentes y eficientes al
momento de insertar, buscar, eliminar o modificar datos de una tabla, sin embargo
usadas de manera individual no nos serviran para hacer lo mismo pero en diferentes
tablas, es para eso que existen las subconsultas y las consultas combinadas con los
cuales mediante la relacin de las llaves forneas y primarias de cada tabla podemos
extraer informacin de ellas en una consulta.
Por ltimo se implement el uso de vistas las cuales nos permiten visualizar campos
definidos de una o varias tablas organizadas como si de una tabla se tratase con la
caracterstica de ser de solo lectura con lo cual evitamos que puedan ser modificados los
valores originales en cualquier manera.
A lo largo de este reporte se llevara a la prctica la teora descrita anteriormente plasmada
en prcticas de laboratorio a una base de datos.

Practica 1
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 13 de octubre de 2015
Numero de prctica: 1
Descripcin de la Prctica: Insertar superhroes en la tabla hroes y poderes en la tabla
poder
Objetivo: conocer el comando para insertar datos en una tabla de una base de datos
Competencias a desarrollar: Insertar exitosamente datos en una tabla mediante el
comando insert into
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
Con este comando nos colocamos en la base de datos superhroes
USE SUPERHEROES
Usamos el comando insert into seguido del nombre de la tabla heroes para insertar
registros
INSERT INTO HEROES
Usamos el comando values y dentro de los parentesis los valores que queremos insertar
en la tabla
VALUES ('SPM','CLARK KENT','SUPERMAN','A','METROPOLI','01/01/2000','ES CHIDO'),
('BTM','BRUNO DIAZ','BATMAN','A','CD GOTICA','01/01/1960','NO TIENE PAPAS'),
('SPD','PETER PARKER','SPIDERMAN','A','TESTERAZO','01/01/1965','LO PICO UNA
ARANA')
Usamos el comando insert into seguido del nombre de la tabla poder para insertar
registros
INSERT INTO PODER
(POD_ID,POD_NOMBRE)
Usamos el comando values y dentro de los parentesis los valores que queremos insertar
en la tabla
VALUES
(1,'VOLAR'),(2,'SUPER FUERZA'),(3,'VISION RAYOS X'),(4,'VELOCIDAD'),(5,'VISION
LASER'),(6,'TELETRANS'),

(7,'KAMEHAMEHA'),(8,'AUME_KI'),(9,'MASENKO'),(10,'HENKIDAMA'),(11,'KAYOKEN')

Observaciones:

Resultados:

Practica 2

Materia: Taller de base de datos


Unidad: 3
Fecha de prctica: 14 de octubre de 2015
Numero de prctica: 2
Descripcin de la Prctica: Eliminar de la tabla hroes aquellos registros cuyos estatus
sean B, Eliminar de la tabla hroes aquellos registros cuyo apodo comience con X,
modificar los registros que tengan por status A especficamente los campos lugar a Sin
lugar y status a B, modificar los registros de detalle poder que tengan por id de poder igual
a 6 e id de hroes igual a Sup, especficamente id de poder a 6, seleccionar el id de los
hroes que su nombre comience con P
Objetivo: conocer los comandos para eliminar y modificar una tabla
Competencias a desarrollar: modificar y/o eliminar exitosamente un registro de una tabla
controlando mediante la clusula where el registro afectado
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
Utilizamos el comando delete form seguido del nombre de la tabla en este caso hroes
para eliminar registros de dicha tabla
DELETE FROM HEROES
Con este comando solo seleccionamos el reigstro a eliminar depeendiendo la condicion
que se establezca
WHERE HER_ESTATUS='B'
Utilizamos el comando delete form seguido del nombre de la tabla en este caso hroes
para eliminar registros de dicha tabla
DELETE FROM HEROES
Con este comando solo seleccionamos el reigstro a eliminar depeendiendo la condicion
que se establezca
WHERE HER_APODO LIKE 'X%'
Utilizarems el comando update para modificar un registro de una tabla

UPDATE HEROES
SET HER_LUGAR='SIN LUGAR',
HER_ESTATUS='B'
WHERE HER_ESTATUS='A'
UPDATE DETALLE_PODER
SET POD_ID = 6
Con este comando solo seleccionamos el reigstro a eliminar depeendiendo la condicion
que se establezca
WHERE POD_ID=8 AND HER_ID='SUP'
Con este comando seleccionamos uno o varias registros de la base de datos
SELECT HER_ID FROM HEROES
Establecemos la condicion despues de la clausula Where en este caso donde el nombre
del heroe empiece con la letra p
WHERE HER_NOMBRE LIKE 'P%'

Practica 3
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 21 de octubre de 2015
Numero de prctica: 3
Descripcin de la Prctica: Seleccionar el apodo de los superhroes y sus respectivos
nombres de poderes mediante consulta combinada
Objetivo: conocer los comandos para ejecutar consultas combinadas
Competencias a desarrollar: utilizar los comandos de seleccin hasta ahora conocidos
para realizar una consulta combinada a dos tablas
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
Mediante el comando select from hacemos la seleccin de los campos her_apodo de la
tabla heroes y pod_nombre de la tabla poder, adems de tambin obtener la tabla detalle
poder para su posterior uso
SELECT H.HER_APODO,P.POD_NOMBRE
FROM HEROES H, PODER P, DETALLE_PODER D
Establecemos la condicion de seleccionar solo los registros en donde el id poder de la
tabla poder y el id heroe de la tabla heroes se encuentren en la tabla detalle poder
WHERE D.POD_ID = P.POD_ID
AND H.HER_ID = D.HER_ID
Mediante el comando select from hacemos la seleccin de los campos her_apodo de la
tabla heroes y pod_nombre
SELECT H.HER_APODO, P.POD_NOMBRE
FROM HEROES H
Para poder relacionar las llaves foraneas de las tablas poder y heroes realizamos un
inner join con la tabla detalle poder
INNER JOIN DETALLE_PODER D ON(H.HER_ID=D.HER_ID )
Para poder extraer el dato pod_nombre realizamos un inner join con la tabla poder

INNER JOIN PODER P ON(P.POD_ID=D.POD_ID)


Resultados:

Practica 4
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 22 de octubre de 2015
Numero de prctica: 4
Descripcin de la Prctica:
--consultar de la base de datos northwind
--de los empleados su titulo de cortesia su direccion y el numero de orden
-- consultar productos mostrando nombre precio
--cantidad en existencia y categoria a la que pertenece mostrar ordenes con el nombre del
vendedor
--nombre del cliente (compaia)
--fecha en que fue vendida
Objetivo: conocer los comandos para ejecutar consultas combinadas
Competencias a desarrollar: utilizar los comandos de seleccin hasta ahora conocidos
para realizar una consulta combinada a dos tablas
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
--CONSULTAR DE LA BASE DE DATOS NORTHWIND
--DE LOS EMPLEADOS SU TITULO DE CORTESIA SU DIRECCION Y EL NUMERO DE
ORDEN
USE Northwind
Seleccionamos los campos requeridos anteriormente y si queremos les cambiamos el
titulo a cada campo con el comando As segudio del nombre deseado
SELECT
EMPLOYEETERRITORIES.TERRITORYID AS [TERRITORIO],
TERRITORIES.TERRITORYDESCRIPTION AS [DESCRIPCION],
LASTNAME+' '+FIRSTNAME AS [NOMBRE],
BIRTHDATE AS [FECHA NACIMIENTO],
TITLEOFCOURTESY AS [TITULO CORTESIA],
ADDRESS AS [DIRECCION],

CITY AS [CIUDAD]
Extrayendo los campos de la tabla Employees
FROM EMPLOYEES
Y para el campo TERRITORYID,
EMPLOYEETERRITORIES
INNER JOIN EMPLOYEETERRITORIES

hacemos

un

inner

con

la

tabla

Relacionando los campos EMPLOYEEID de ambas tablas


ON(EMPLOYEES.EMPLOYEEID=EMPLOYEETERRITORIES.EMPLOYEEID)
Y para el campo TERRITORYDESCRIPTION hacemos un inner con la tabla
TERRITORIES
INNER JOIN TERRITORIES
Relacionando los campos TERRITORYID de ambas tablas
ON(TERRITORIES.TERRITORYID=EMPLOYEETERRITORIES.TERRITORYID)

-- consultar productos mostrando nombre precio


--cantidad en existencia y categoria a la que pertenece mostrar ordenes
del vendedor
--nombre del cliente (compaia)
--fecha en que fue vendida

con el nombre

Seleccionamos los campos requeridos anteriormente y si queremos les cambiamos el


titulo a cada campo con el comando As segudio del nombre deseado
SELECT PRODUCTID AS [ID PRODUCTO],
PRODUCTNAME AS [NOMBRE],
UNITPRICE AS [PRECIO UNITARIO],
UNITSINSTOCK AS [EXISTENCIAS],
CATEGORYID AS [CATEGORIA],
SUPPLIERS.CONTACTNAME AS [PROVEDOR]
Extrayendolos de la tabla Products
FROM PRODUCTS
Para el campo CONTACTNAME realizamos un inner con la tabla Suppliers
Relacionando los campos supplierid de ambas tablas
INNER JOIN SUPPLIERS ON(SUPPLIERS.SUPPLIERID=PRODUCTS.SUPPLIERID)

Resultados

Practica 5
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 27 de octubre de 2015
Numero de prctica: 5
Descripcin de la Prctica:
--consultar de la base de datos northwind
Mostrar todos los campos de la tabla order details con el id es igual 10252
Mostrar el total a pagar de la orden 10252
Mostrar el total a pagar ya con el descuendo de la orden 10252
Mostrar al emplado mas viejo
Mostrar la suma total con el descuento de cada orden que se vendio
Objetivo: conocer los comandos para ejecutar consultas con condiciones
Competencias a desarrollar: utilizar los comandos de seleccin hasta ahora conocidos
para realizar una consulta con condiciones
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
Seleccionamos con select from todos los campos con la condicion de que el numero de
orden sea 10252
select *
from [Order Details]
where OrderID = 10252
--con el comando sum mostramos el el total que se pago por la orden 10252
select SUM(UnitPrice * Quantity) as total
from [Order Details]
where OrderID = 10252
--con el comando sum calculamos
el total a pagar ya con el descuendo de la orden 10252,
select SUM(Quantity*(UnitPrice-UnitPrice*Discount))
from [Order Details]
where OrderID = 10252
con el comando Min(nombre del campo) seleccionamos al empleado mas viejo al seleccionar la
fecha mas antigua y compararla con una subconsulta

select BirthDate, FirstName as viejo


from Employees
where BirthDate= (select min (BirthDate)
from Employees)
-- Con el comando segudio de una serie de operacione matematicas con los campos mostramos la
suma total con el descuento de cada orden que se vendio
select SUM((Quantity*UnitPrice)-(UnitPrice*Quantity*Discount)), OrderID
from [Order Details]
group by OrderID
Resultados:

Prctica 6
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 28 de octubre de 2015
Numero de prctica: 6
Descripcin de la Prctica:
--consultar de la base de datos northwind
--de los empleados su titulo de cortesia su direccion y el numero de orden
-- consultar productos mostrando nombre precio
--cantidad en existencia y categoria a la que pertenece mostrar ordenes con el nombre del
vendedor
--nombre del cliente (compaia)
--fecha en que fue vendida
Objetivo: conocer los comandos para ejecutar consultas combinadas
Competencias a desarrollar: utilizar los comandos de seleccin hasta ahora conocidos
para realizar subconsultas y condiciones de seleccin
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
--selecciona los 5 empleados mas jovenes
Con el comando select seguido de Top y un numero seleccionamos los primero 5 registros
de una tabla
SELECT TOP 5 firstname
Extrayendolos de la tabla Employees
FROM Employees
En este caso ordenandolos por fecha de nacimiento
ORDER BY (birthdate) DESC

GO
-- selecciona al empleado con mayor edad
Con el comando select * seleccionamos todos los campos de un registro de una tabla en
este caso de Employees
SELECT *
FROM Employees
Con la condicion de que la fecha de nacimiento sea igual al registo con la fecha de
nacimiento mas reciente esto se logra comparando el campo birthdate con una
subocnsulta con un Min del registro del mismo campo con la fecha mas reciente
WHERE birthdate= (SELECT MIN (birthdate)
FROM Employees)
-- selecciona al empleado con menor edad
Con el comando select * seleccionamos todos los campos de un registro de una tabla en
este caso de Employees
SELECT *
FROM Employees
Con la condicion de que la fecha de nacimiento sea igual al registo con la fecha de
nacimiento mas antigua esto se logra comparando el campo birthdate con una
subocnsulta con un Max del registro del mismo campo con la fecha mas antigua
WHERE birthdate= (SELECT MAX (birthdate)
FROM Employees)
SELECT *
FROM Employees
-- Inserta empleados
Con el comando insert into seguido del nombre de la tabla damos la instruccion de
insertar datos en ella ademas de especificar entre parentesis los campos que se
ingresaran
Insert into Employees (lastname,firstname,birthdate)
Seguido del comando values y entre parentesis separados por coma los nuevos valores
Values
('Pardo','Jessica','1995-11-06'),
('Lopez','Raul','1980-04-12'),
('Perez','Cesar','1995-09-30'),
('Nolasco','Jose','1994-05-15'),
('Sanchez','Luis','1994-06-10'),
('Monroy','Rosa','1993-01-25'),
('Ceballos','Victor','1993-06-11'),

('Rivera','Gianny','1985-03-16')

--cambia la fecha de nacimiento del empleado 10


Con el comando update seguido del nombre de la tabla modificaremos la misma pero con
la condicion de que solo sea modificada donde el empleado sea el numero 10
Update Employees set birthdate='1995-04-12' where employeeid=10

--Inserta ordenes
Con el comando insert into seguido del nombre de la tabla damos la instruccion de
insertar datos en ella ademas de especificar entre parentesis los campos que se
ingresaran
Insert into Orders
(customerid,employeeid,orderdate,requireddate,shippeddate,shipvia,Freight,shipname,shi
paddress,shipcity,shipregion,shippostalcode,shipcountry)
Seguido del comando values y entre parentesis separados por coma los nuevos valores
Values
('SUPRD','11','2015-10-12','2015-12-22','2015-10-21',1,26.45,'Victuailles en stock','Rua do
Pao, 67','Mnster','RJ','05454-876','Belgium'),
('HILAA','13','2015-10-17','2015-12-23','2015-10-26',1,29.45,'Richter Supermarkt','Rua do
Mercado, 12','Charleroi','Essex','PO31 7PJ','Mexico'),
('VINET','12','2015-10-29','2015-12-29','2015-10-29',3,23.45,'Hanari
Carnes','Hauptstr.
31','Lyon','SP','3012','Switzerland')
--Inserta registros en order details
Con el comando insert into seguido del nombre de la tabla damos la instruccion de
insertar datos en ella ademas de especificar entre parentesis los campos que se
ingresaran
Insert into [Order Details]
Seguido del comando values y entre parentesis separados por coma los nuevos valores
Values
(11079,41,9.00,6,0),
(11080,42,9.00,7,0),(11078,11,12.00,4,0)

Resultados

Practica 7
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica:
Numero de prctica: 7
Descripcin de la Prctica: Inserta datos en una tabla mediante la instruccin select
Objetivo: conocer los comandos para insertar datos en una tabla
Competencias a desarrollar: Agregar registros a una tabla de una base de datos
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
seleccionamos la base de datos Northwind
Use Northwind

creamos la tabla estadistica


create table estadistica
(
orderId int primary key,
orderDate date,
totalCobrado money,
vendedor varchar(45)
)

Con el comando insert into seguido del nombre de la tabla insertamos datos ahora
mediante la instruccin select para seleccionar los datos de otra tabla
insert into estadistica select orderID,orderDate,
(select SUM(unitprice*quantity)
from [Order Details] d where
o.orderId = d.OrderID),
e.lastname+' '+e.firstname
from Orders o inner join Employees e
on (o.EmployeeID = e.EmployeeID)

ahora con el comando select y los nombres de los campos seguido de into y el nombre de
la tabla se crea la tabla por ultimo el from para seleccionar la tabla de donde extraemos
los datos con la condicion establecida
select orderid, orderdate, customerid
into ordenesdelcinco
from orders

where EmployeeID = 5

por ultimo creamos la vista haciendo una seleccin nornmal con select from
create view vista
as
(select orderID,orderDate,
e.lastname+' '+e.firstname as empleado
from Orders o inner join Employees e
on (o.EmployeeID = e.EmployeeID))
Resultados

Practica 8
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 12 de noviembre de 2015
Numero de prctica: 8
Descripcin de la Prctica: Realiza las siguientes operaciones
--Inserta al menos 15 productos
--Inserta 10 clientes
--Inserta los siguientes proveedores
Objetivo: conocer los comandos para insertar datos en una tabla
Competencias a desarrollar: Agregar registros a una tabla de una base de datos
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
--Inserta al menos 15 productos
Usamos el comando insert into seguido del nombre de nuestra tabla y en parentesis los
campos en los que insertaremos nuevos datos
Insert
into
Products(productname,supplierid,categoryid,unitprice,unitsinstock,unitsonorder,Discontinu
ed)
Seguido del comando values y entre parentesis los valores
Values
('chocotavo',8,1,20.00,30,21,1),
('Ritter Sport',9,2,23.00,33,25,1),
('Bombay Sapphire',3,1,20.00,30,21,1),
('Stolichnaya',4,3,20.00,30,21,1),
('Ketel One',5,5,20.00,30,21,1),
('Ben And Jerrys',8,1,20.00,30,21,1),
('Haagen Dazs',4,3,40.00,30,21,1),
('Sayes',4,3,320.00,30,21,1),
('Brookside',5,5,220.00,30,21,1),
('Butter Toffees',9,2,1120.00,80,211,1),
('Cavendish Harvey',9,2,210.00,60,31,1),
('Grand Belgian',5,5,220.00,40,61,1),
('Las Sevillanas',4,3,10.00,301,11,1),
('Joseph Farms',9,2,50.00,300,71,0),
('Laclette',9,2,20.00,340,21,0),

('Gringo Bandito',4,3,25.00,35,26,1)

--Inserta 10 clientes
Usamos el comando insert into seguido del nombre de nuestra tabla y en parentesis los
campos en los que insertaremos nuevos datos
Insert
into
Customers(customerid,companyname,contactname,contacttitle,Address,City,postalcode,C
ountry,Phone)
Seguido del comando values y entre parentesis los valores
Values('FEDRA','Tacoclub','Fedra
Moreno
Segovia','Owner','Kbbatorp
Locketorp
97','RYDSGRD','270 12','Sweden','0411-9511344'),
('DELMA','tvnet','Delma Sisneros Varela','Owner','Parmova 118','Loka pri usmu','3223
','Slovenia','070-545-385'),
('SEMPR','burritosnetwork','Sempronio
Ceballos
Santana','chef','R
Carne Azeda
42','FUNCHAL','9050-457','Portugal','21 291 276 3602'),
('ANNAB','aguapurific','Annabel Collado Regalado','manager','46, rue de la Mare aux
Carats','MONTPELLIER','34070','Francia','04.12.36.39.00'),
('OTOPA','joyeriaoto','Oto
Parra
Trevio','manager','Suur-Laagri
75','Tallinn','12112','Estonia','634 0844'),
('IGNAC','joyeriaign','Ignacio
Alonso
Acuna','manager','Bramstrup
23','Kbenhavn
K','1001','Estonia','634 0844'),
('POMPE','pepejeans','Pompeo Cintrn Canales','manager','2378 Quayside Dr','New
Westminster','BC V3M 6A1','Canada','604-351-7792'),
('CESAR','papajeans','Csar
Ochoa
Lujn','owner','Norurbraut
23','Reykjavk','112','Islandia','428 4525'),
('EDMUN','Boogie of love','Edmund Valadez Ruelas','owner','5008 Szandaszls','Apor
Pter u.','84','Hungria','(56) 766-850'),
('CRIST','relojclub','Christina
F.
Lane','Owner','1468
Buckhannan
Avenue','New
York','13206','EUA','315-414-4722')
--Inserta los siguientes proveedores
Usamos el comando insert into seguido del nombre de nuestra tabla y en parentesis los
campos en los que insertaremos nuevos datos
Insert into Suppliers (companyname,contactname,contacttitle,City)
Seguido del comando values y entre parentesis los valores
Values('Iceland ice cream','Peter','Sales Agent','Selfoss'),
('Irish whisky','Willy','Sales Agent','Dublin'),
('Sonoras packed fire','Juan','Bandito','Sonora'),
('Sinaloas packed fire','Ana','Brto','Sinaloa'), ('Bebidas Exoticas'
, 'Charlotte Copper',
'Purchasing Manager' , '49 Gilbert St.'
, 'London' , 'LA', '63000'),

('Platillos Americanos' , 'Shelley Burke' , 'Order Administrator' , 'P.O. Box 78934'


,'New Orleans', 'LA', '63000'),
('Cooperativa los almada', 'Regina Murphy' , 'Sales Representative', '707 Oxford Rd.
','Ann Arbor ' ,'MI', '75000'),
('Sushi start'
, 'Yoshi Nagase' , 'Marketing Manager' , '9-8 Sekimai Musashinoshi','Tokyo'
,'LA', '75000'),
('Cabaa los suecos'
, 'Antonio del Valle Saavedra', 'Export Administrator', 'Calle del
Rosal 4', 'Oviedo', 'Asturias', '63000'),
('Especialidades gourmet', 'Mayumi Ohno'
,'Marketing Representative','92 Setsuko
Chuo-ku' , 'Osaka' ,'NSW', '63117'),
('American cooke'
, 'Ian Devling'
, 'Marketing Manager' , '74 Rose St. Moonie
Ponds' , 'Melbourne','Victoria','63117'),
('Isla el paraiso'
, 'Peter Wilson'
, 'Sales Representative', '29 Kings Way'
,'Manchester ' ,'NSW', '75850'),
('Olmos la villa'
, 'Lars Peterson' , 'Sales Agent'
, 'Kaloadagatan 13'
,
'Gteborg' ,'Qubec','75850')

Resultados

Practica 9
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 12 de noviembre de 2015
Numero de prctica: 9
Descripcin de la Prctica: Realiza las siguientes operaciones
--Aumentar un 10% al precio de los productos cuya nombre de categoras empiece con C
oM
--Selecciona la rdenes que se han vendido productos cuyo precio venta sea mayor al
promedio de los precio unitarios de los productos.
--Selecciona el nombre del producto, el proveedor y el precio unitario de los productos
que se han vendido a un precio menor que su precio actual
--Consulta los productos que no se han vendido nunca.
--Borrar todos los proveedores que no nos han vendido ningn producto. Y adems que
su nombre empiece con una vocal
--Mostrar una lista de las rdenes y los clientes que las compraron en donde se ha pedido
ms de 20 unidades del producto 23.
Objetivo: Realizar modificaciones a tablas mediante uso de comparadores y consultas
combinadas
Competencias a desarrollar: Correcto uso de comparadores y consultas combinadas
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
--Aumentar un 10% al precio de los productos cuya nombre de categoras empiece con C
oM
Usamos el comando update seguido del nombre de la tabla para modificarla
Update Products

El comando set seguido del campo y el nuevo valor que se le asignara


Set unitprice= unitprice+(unitprice*.10)
En la condicion where relacionamos el id de la categoria del producto con el id de la
categoria de la tabla categorias donde dicha categoria comience con C o M realizando
una subconsulta
Where categoryid in (select categoryid
From Categories
Where categoryname like 'C%' or categoryname like 'M%')

--Selecciona la rdenes que se han vendido productos cuyo precio venta sea mayor al
promedio de los precio unitarios de los productos.
Seleccionamos todo de ordenes
Select *
From Orders
En la condicion where relacionamos el orderid de la tabla ordenes con el orderid de la
tabla order details mediante una subconsulta donde seleccionaremos las ordenes que se
han vendido de los productos cuyo precio de venta sea mayor al promedio de los precio
unitarios de los productos esto con el comando AVG .
Where orderid in (select orderid
From [Order Details]
Where ([Order Details].unitprice*[Order Details].Quantity)> (select AVG(Products.unitprice)
from Products)
)
--Selecciona el nombre del producto, el proveedor y el precio unitario de los productos
que se han vendido a un precio menor que su precio actual
Hacemos seleccin de los campos mediante el comando select
Select
Details].orderid,Products.productname,Suppliers.contactname,Products.unitprice

[Order

Referenciando a la tabla products


From Products
Para referenciar a las demas tablas realizamos dos inner join
Primero para la tabla suppliers relacionando los campos supplierid de cada tabla
Inner join Suppliers
On Products.supplierid=Suppliers.supplierid
Segundo con la tabla Order Details relacionando los campos productid de cada tabla
Inner join [Order Details]

On Products.productid=[Order Details].productid
Con la condicion de seleccionar solo los registros de productos que se han vendido a un
precio menor que su precio actual
Where Products.unitprice>[Order Details].unitprice

--Borrar todos los proveedores que no nos han vendido ningn producto. Y adems que
su nombre empiece con una vocal
Mediante el comando delete from seguido del nombre de la tabla borraremos todos los
registros de dicha tabla
Delete
From Suppliers
Pero al agregar el comando where eliminaremos solo aquellos registros que
seleccionemos, en este caso usamos el comando not exists seguido de una subconsulta
al relacionar el supplierid de la tabla Suppliers con el de la tabla products, para eliminar
aquellos registros proveedores que no existan en la tabla productos pues no nos han
vendido nada,k ademas de una ultima condicion donde el nombre de los proveedores
comience con A
Where not exists(select Products.supplierid
From Products
Where Suppliers.supplierid=Products.supplierid) and Suppliers.contactname like 'A%'
--Mostrar una lista de las rdenes y los clientes que las compraron en donde se ha
pedido ms de 20 unidades del producto 23.
Hacemos seleccin de los campos mediante el comando select
Select Orders.orderid,productid,unitprice,Quantity,Discount,Customers.contactname
Referenciando a la tabla Orders
From Orders
Relacionando la tabla Order Details con inner join relacionando el orderid de ambas tablas
Inner join [Order Details]
On
Orders.orderid=[Order Details].orderid

Relacionando la tabla Customers con inner join relacionando el customerid de ambas


tablas
Inner join Customers
On
Orders.customerid=Customers.customerid
Con la condicion de que el id del producto sea 23 y la cantidad del mismo sea mayor a 20
Where [Order Details].productid=23 and [Order Details].Quantity>20

Resultados

Practica 10
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 12 de noviembre de 2015
Numero de prctica: 10
Descripcin de la Prctica: Realiza las siguientes operaciones
--insertar en una tabla todos los productos que no se han vendido, con los siguientes
datos: id producto, nombre de producto, precio unitario y nombre de la categora a que
pertenece.
--inserta en una nueva tabla lo productos con sus proveedores que nos lo surten
--insertar en una tabla lo siguiente
--no.de orden, fecha de orden,
cliente que la compro,
empleado que lo vendi,
cuantos tipos de productos distintos se vendieron en esa orden.
--crea una vista que contenga lo siguiente
--id del producto, nombre del producto, total en pesos que se ha vendido del producto
--crea una vista que contenga lo siguiente
--empleado id,nombre completo del empleado,
nombre de su supervisor

total que a vendido

en pesos,

--crea una vista que contenga


--empeado,cantidad de ordenes que ha vendido
--crea una vista que contenga
--nombre del producto,total de productos que hemos vendido
Objetivo: Realizar modificaciones a tablas mediante uso de comparadores y consultas
combinadas
Competencias a desarrollar: Correcto uso de comparadores y consultas combinadas
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio

Procedimiento:
--Insertar en una tabla todos los productos que no se han vendido, con los siguientes
datos: id producto, nombre de producto, precio unitario y nombre de la categora a que
pertenece.
Creamos una tabla para almacenar los productos no vendidos
Create table productosnovendidos
(
Id_producto int primary key,
Nombre_producto nvarchar(40),
Precio_unitario money ,
Categoria nvarchar(15)
)
Una vez creada procedemos a insertar en ella los registros de la tabla productos que no
han sido vendidos con el comando insert into
Insert into productosnovendidos
A excepcion de que esta vez no usaremos values si no que seleccionaremos directamente
con el comando select a la tabla productos
Select Products.productid,Products.productname,Products.unitprice,Products.categoryid
From Products
Con la condicion de que si los productos no se encuentran en la tabla order details sean
introducidos a nuestra nueva tabla esto se logra con el comando not exists para verificar
que no existan en order details
Where not exists (select [Order Details].productid
From [Order Details]
Where Products.productid=[Order Details].productid)
--Inserta en una nueva tabla lo productos con sus proveedores que nos lo surten
Creamos una tabla para almacenar productos y sus proveedores
Create table productos_y_proveedor
(
Id_producto int primary key,
Nombre_producto nvarchar(40),
Precio_unitario money ,
Categoria nvarchar(15),
Supplierid int
)

Con el comando insert into indicamos que se insertaran datos en la tabla


Insert into productos_y_proveedor
En vez de values usamos select para seleccionar de la tabla productos y proveedores los
campos necesarios
Select
Products.productid,Products.productname,Products.unitprice,products.categoryid,Supplier
s.supplierid
From Products
Con un inner join enlazamos las tablas productos y proveedores con el campo supplierid
de cada tabla
Inner join Suppliers
On
Products.supplierid=Suppliers.supplierid
--Insertar en una tabla lo siguiente
--No.De orden,
Fecha de orden,
Cliente que la compro,
Empleado que lo
vendi,
Cuantos tipos de productos distintos se vendieron en esa orden.
Creamos una tabla para este cometido con los campos requeridos
Create table cantidad_productos
(
No_orden int primary key,
Fecha_orden datetime,
Cliente_que_compra nchar(5),
Empleado_id int,
Productos_vendidos int
)
Una vez creada insertamos en ella valores
Insert into cantidad_productos
Los cuales seran recavados ,de la tabla order details mediante el comando select para
posteriormente ser insertados, para el campo productos vendidos sera necesario el uso
de una subconsulta que seleccione un contador de todos los productos de esa orden
relacionando tal subconsulta con el id de la orden
Select orderid,orderdate,customerid,employeeid,(select COUNT(productid) from [Order
Details]
Where Orders.orderid=[Order Details].orderid)
From Orders

Practica 11
Materia: Taller de base de datos
Unidad: 3
Fecha de prctica: 12 de noviembre de 2015
Numero de prctica: 11
Descripcin de la Prctica:
Realiza las siguientes operaciones
--crea una vista que contenga
--empeado,cantidad de ordenes que ha vendido
--crea una vista que contenga
--nombre del producto,total de productos que hemos vendido
Objetivo: Realizar modificaciones a tablas mediante uso de comparadores y consultas
combinadas
Competencias a desarrollar: Correcto uso de comparadores y consultas combinadas
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio

Procedimiento:
--crea una vista que contenga lo siguiente
--id del producto, nombre del producto, total en pesos que se ha vendido del producto
Con el comando create view creamos una vista que alojara campos
Create view cantidad_en_pesos
As
Los cuales seran colocados mediante el comando select y para colocar el total en pesos
que se ha vendido del producto se debera hacer una subconsulta a order details
seleccionando una suma de los precios unitarios del producto relacionando la subconsulta
con el campo product id de ambas tablas
Select productid,productname,(select SUM(unitprice) from [Order Details] where
Products.productid=[Order Details].productid) as precio_total
From Products
--Crea una vista que contenga lo siguiente
--EMPLEADO ID,
NOMBRE COMPLETO DEL EMPLEADO, TOTAL QUE A VENDIDO
EN PESOS, NOMBRE DE SU SUPERVISOR
Con el comando create view creamos una vista que alojara campos
Create view empleado_ha_vendido_en_pesos
As
Los cuales seran colocados mediante el comando select y para colocar el total en pesos
que ha vendido se hara uso de 2 inner join
Select
Employees.employeeid,firstname,lastname,reportsto,
total_vendido
From Employees

SUM(unitprice)

El primero con orders


Inner join Orders
On
Donde relacionamos el Employee ID de la tablas Employees y Orders
Employees.employeeid=Orders.employeeid
El segundo con Order Details
Inner join [Order Details]
Donde relacionamos el Order ID orders y Order Details
On Orders.orderid=[Order Details].orderid
Agrupando los registros por los siguientes parametros
Group by Employees.employeeid,firstname,lastname,reportsto

as

--Crea una vista que contenga


--EMPEADO,CANTIDAD DE ORDENES QUE HA VENDIDO
Con el comando create view creamos una vista que alojara campos
Create view empleado_ordenes_vendidas
As
Los cuales seran colocados mediante el comando select y para colocar el total de ordenes
que ha vendido se hara uso de inner join
Select Employees.employeeid,COUNT(Orders.orderid) as ordenes_vendidas
From Employees
Se hara un inner join con la tabla Orders
Inner join Orders
On
Relacionando el campo employeeid de Employees y Orders
Orders.employeeid=Employees.employeeid
Agrupando los registros por employeeid
Group by Employees.employeeid
--crea una vista que contenga
--nombre del producto,total de productos que hemos vendido
Con el comando create view creamos una vista que alojara campos
Create view total_productos
As
Los cuales seran colocados mediante el comando select y para colocar el total de
productos que se han vendido haremos una subconsulta que seleccionar el total de
productos en Order Details relacionando el campo Product ID de la tabla Products y
Order Details
Select productname,(select COUNT([Order Details].productid) from [Order Details]
Where Products.productid=[Order Details].productid) as total_vendidos
From Products
Agrupando los registros por los siguientes parametros
Group by Products.productid,Products.productname

Resultados

Practica 12
Descripcin de la Prctica: Realiza las siguientes operaciones
--mostrar los art que pertenecen a las familias que empiezan con una vocal
---cuantos articulos hay por cada familia
----crear una vista que tenga cuantos art hay por cada tipo de bien
--mostrar las cuentas ant que no tienen cuenta nueva relacionada
--mostrar los conceptos que pertencen a cada capitulo ordenadas capitulo mas concepto
--mostrar las partidas genericas que tengan equipo en su descripcion y que sus conceptos
pertenezcan al capitulo 5
Objetivo: Realizar consultas y vistas de tablas
Competencias a desarrollar: Correcto uso de comparadores y consultas combinadas
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
--mostrar los art que pertenecen a las familias que empiezan con una vocal
where scvefam in(select scvefam from cFamilia where sdesfam like '[a,e,i,o,u]%')

---cuantos articulos hay por cada familia


select scvefam, COUNT(*)
from bm_convalidacion
group by scvefam

----crear una vista que tenga cuantos art hay por cada tipo de bien
create view tipoDeBien
AS
select sdesart, COUNT(*)as cuantos
from carti
inner join cFamilia
on
carti.scvetb=cFamilia.scvetb
inner join cTipoBien
on
cFamilia.scvetb=cTipoBien.scvetb group by sdesart
select * from tipoDeBien

--mostrar las cuentas ant que no tienen cuenta nueva relacionada


select * from carti
where scvetb+scvefam+scveart not in(select scvetb+scvefam+scveart from bm_convalidacion)

--mostrar los conceptos que pertencen a cada capitulo ordenadas capitulo mas concepto
select concepto from pp_cat_conceptos order by (capitulo+concepto)

--mostrar las partidas genericas que tengan equipo en su descripcion y que sus conceptos

pertenezcan al capitulo 5
select pdagenerica from pp_cat_partidasgen
where descripcion like '%EQUIPO%' AND capitulo=5

Practica 13
Descripcin de la Prctica: Realiza las siguientes operaciones
-inserte 30 heroes
-inserte 30 enemigos
-asignar minimo 2 enemigos a cada super heroe, 2 poderes a cada heroe y 2 -poderes a
cada enemigo
-actualizar el lugar que defiende todos los enemigos cuyo id este de rango de 3 a 20 y que
su apodo tenga una a,z,w,b,t,e,i,o,u*/
-muestre la siguiente informacion apodo, cantidad poderes, cantidad enemigos
-crea una vista con el apodo del superheore y el apodo de su enemigo de cada heroe
-por medio de subconsultas muestra todos los datos de los superheroes que tengan de
dos a tres enemigos
-inserta todos los enemigos en una tabla nueva de los sig superheroes: superman,
batman, goku
-una tabla nueva por cada uno
elimina a todos los superheroes que no tengan enemigos ni poderes
Objetivo: Realizar modificaciones a tablas mediante uso de comparadores y consultas
combinadas adems de insertar datos en las tablas
Competencias a desarrollar: Correcto uso de comparadores y consultas combinadas
Lugar de la prctica: Laboratorio de computo sala A
Equipo y/o material a utilizar: SQL server 2008 R2 management studio
Procedimiento:
/*Query 1. Inserte 30 Heroes*/
Con el comando insert into seguido del nombre de la tabla damos la instruccion de
insertar datos en ella ademas de especificar entre parentesis los campos que se
ingresaran
INSERT INTO HEROES
Seguido del comando values y entre parentesis separados por coma los nuevos valores
VALUES('FLA','BARRY ALLEN','FLASH','A','SIN LUGAR','04-16-1995','CORRE RPIDO')
GO
INSERT INTO HEROES
VALUES('ARR','OLIVER QUEEN','ARROW','A','SIN LUGAR','03-12-1980','TIENE BUENA
PUNTERA')
GO
INSERT INTO HEROES

VALUES('QUI','QUICKSILVER','QUICKSILVER','A','SIN
LUGAR','06-30-1970','ES
RPIDO')
GO
INSERT INTO HEROES
VALUES('BRU','BRUJA
ESCARLATA','SCARLET
WITCH','A','NEW
YORK','03-141986','TIENE PODERES')
GO
INSERT INTO HEROES
VALUES('LNV','LINTERNA VERDE','LINTERNA VERDE','A','PLANETA VERDE','01-101960','ES VERDE')
GO
INSERT INTO HEROES
VALUES('CPA','STEVE RODGERS','CAPITN AMRICA','A','ESTADOS UNIDOS','12-151985','ES LDER')
GO
INSERT INTO HEROES
VALUES('VIS','VISION','VISION','A','SIN LUGAR','06-05-2015','NACI AYER')
GO
INSERT INTO HEROES
VALUES('AQU','AQUAMAN','AQUAMAN','A','SIN LUGAR','07-15-1980','VIVE BAJO EL
AGUA')
GO
INSERT INTO HEROES
VALUES('SAM','DAVID
SAMANIEGO','SAMA','A','TEPIC','02-16-1985','TIENE
UNA
MACBOOK')
GO
INSERT INTO HEROES
VALUES('CHA','CHAYANNE','CHAYANNE','A','PUERTO
RICO','05-19-1973','ES
TORERO')
GO
INSERT INTO HEROES
VALUES('IMA','IMANOL','EL HOMBRE
IMANOL','A','SIN
LUGAR','09-17-1986','ES
CANTANTE')
GO
INSERT INTO HEROES
VALUES('FAL','FALCON','FALCON PRO','A','SIN LUGAR','08-15-1974','ES AMIGO DE
CAPITN AMRICA')
GO
INSERT INTO HEROES
VALUES('GBU','GEORGE BUSH','GEORGE BUSH EL AMERICANO','A','ESTADOS
UNIDOS','11-10-1982','NO LE TIEMLA LA MANO')
GO
INSERT INTO HEROES
VALUES('WAR','DOMINIC RHODES','WAR MACHINE','A','SIN LUGAR','07-14-1979','ES
AMIGO DE IRONMAN')
GO
INSERT INTO HEROES

VALUES('MUJ','MUJER MARAVILLA','WONDER WOMAN','A','SIN LUGAR','05-171993','ES MARAVILLA')


GO
INSERT INTO HEROES
VALUES('BLA','BLACK PANTER','BLACK PANTER','A','SIN LUGAR','10-15-1970','ES
UNA PANTERA')
GO
INSERT INTO HEROES
VALUES('WOL','HUGH JACKMAN','WOLVERINE','A','SIN LUGAR','12-15-1951','TIENE
GARRAS')
GO
INSERT INTO HEROES
VALUES('TOR','TORMENTA','TOMRENTA','A','SIN LUGAR','09-15-1968','CAUSA UNA
TORMENTA')
GO
INSERT INTO HEROES
VALUES('MRE','REED RICHARDS','MR. FANTSTICO','A','SIN LUGAR','07-19-1978','ES
ELSTICO')
GO
INSERT INTO HEROES
VALUES('MUI','SUE STORM','MUJER INVISIBLE','A','SIN LUGAR','04-13-1979','ES
INVISIBLE')
GO
INSERT INTO HEROES
VALUES('ANT','JOHN STORM','ANTORCHA HUMANA','A','SIN LUGAR','02-20-1996','ES
DE FUEGO')
GO
INSERT INTO HEROES
VALUES('MOL','LA MOLE','LA MOLE','A','SIN LUGAR','08-17-1981','ES MUY FUERTE')
GO
INSERT INTO HEROES
VALUES('SIR','SIRENOMAN','SIRENOMAN','A','FONDO
DE
BIKINI','01-12-1975','ES
CHIDO')
GO
INSERT INTO HEROES
VALUES('GAR','GARNICA','AMIGO CHURRO','B','Tepic','10/02/2010','Es un genio')
GO
INSERT INTO HEROES
VALUES('DAL','DAVID LOPEZ','HOMBRE MONO','A','GUADALAJARA','11/22/2000','Es un
trepador')
GO
INSERT INTO HEROES
VALUES('CRL','CRISTIAN
LOPEZ','CANGREJO','A','LONDRE','08/12/2003','USA
BURBUJAS')
GO
INSERT INTO HEROES
VALUES('CEM','CESAR MARTIN','HOMBRE BALLENA','B','COLIMA','01/12/2003','Poder
supersonico')

GO
INSERT INTO HEROES
VALUES('ROG','ROSA GARCIA','MUJER BURBUJA','B','MAZATLAN','01/12/2005','Poder
agua')
GO
INSERT INTO HEROES
VALUES('RYU','RYU JUNIOR','CINTON','B','NUEVA YORK','10/12/2004','Domina artes
marciales')
GO
INSERT INTO HEROES
VALUES('CHL','MARIA
CARMEN','CHUN
LEE','B','JAPON','11/12/2003','Poder
de
cuchillos')
/*Query 2. Inserte 30 Enemigos*/
Con el comando insert into seguido del nombre de la tabla damos la instruccion de
insertar datos en ella ademas de especificar entre parentesis los campos que se
ingresaran
Seguido del comando values y entre parentesis separados por coma los nuevos valores
INSERT INTO ENEMIGOS VALUES ('Miguel Perez', 'Joker','G','Payaso', 'Es bromista')
GO
INSERT INTO ENEMIGOS VALUES ('Miguel Lopez', 'Reverse Flash','G','Amarillo', 'Es
malo')
GO
INSERT INTO ENEMIGOS VALUES ('Roberto Tapia', 'Loki','S','Alto', 'Apira dominar el
mundo')
GO
INSERT INTO ENEMIGOS VALUES ('Luis Garnica', 'Capitan Churro','S','Alto y fornido',
'Malvado por naturaleza')
GO
INSERT INTO ENEMIGOS VALUES ('Pablo Crespo', 'Perseve Malefico','G','Muchas
escamas', 'Dominar los Oceanos')
GO
INSERT INTO ENEMIGOS VALUES ('Flash Thompson', 'Venom','G','Negro Pegajoso',
'Matar a gente buena')
GO
INSERT INTO ENEMIGOS VALUES ('Roberto Mejia', 'Capitan Frio','S','Usa ropa invernal',
'Quiere ser el mas malvado')
GO
INSERT INTO ENEMIGOS VALUES ('David Gil', 'pewdiepie','G','Alto con mucha barba',
'Ser el rey de los gameplays')
GO
INSERT INTO ENEMIGOS VALUES ('Miguel Contreras', 'Thanos','G','Morado', 'Quiere
conquistar a la muerte')
GO

INSERT INTO ENEMIGOS VALUES ('Julion Alvarez', 'Corridoman','G','Es de rancho y usa


sombrero', 'Dejar sordo a todo el planeta')
GO
INSERT INTO ENEMIGOS VALUES ('Wario Perez', 'Wario','S','Gordito amarillo',
'Conquistar a la princesa')
GO
INSERT INTO ENEMIGOS VALUES ('Wilson Fisk', 'King Ping','G','Alto con sobrepeso',
'Dominar newyork')
GO
INSERT INTO ENEMIGOS VALUES ('Harry Osborn', 'Dueden Verde','G','Verde muy
verde', 'Obtener gran poder')
GO
INSERT INTO ENEMIGOS VALUES ('Luis Arellano', 'Sandman','S','Arenoso', 'Robar para
tener dinero')
GO
INSERT INTO ENEMIGOS VALUES ('Casimiro del Aguila', 'Picollo','S','Morado con
blanco', 'Destruir Planetas')
GO
INSERT INTO ENEMIGOS VALUES ('Julum Dama', 'Inquisidor','S','Payaso', 'Es bromista')
GO
INSERT INTO ENEMIGOS VALUES ('Francisco Ibarra', 'Reverse FIC','G','Super fuerte y
alto', 'Detener a FIC verdadero')
GO
INSERT INTO ENEMIGOS VALUES ('Enrique Pea', 'Peaman','s','Fuerte y con copete',
'Dominar Mexico')
GO
INSERT INTO ENEMIGOS VALUES ('Cesar Mendez', 'Red Hulk','G','Rojo escarlata',
'Furia Incontrolable')
GO
INSERT
INTO
ENEMIGOS
VALUES('ALFREDO
DOMINGUEZ','DARTH
VADER','S','SEOR DE LOS SITH','PODER Y ODIO')
GO
INSERT INTO ENEMIGOS VALUES('Emperador Palpatine','DARTH SIDIOUS','S','SEOR
OSCURO','DESEO DOMINAR LA FUERZA')
GO
INSERT
INTO
ENEMIGOS
VALUES('Juan
Martinez','Seor
Villano
Malvado','G','Poderoso','Es malvado porque si')
GO
INSERT
INTO
ENEMIGOS
VALUES('Juan
Lpez','Piccollo','S','Hombrecillo
verde','CARCTER NEGATIVO')
GO
INSERT
INTO
ENEMIGOS
VALUES('Alcaraz
Martinez','Apocalipsis','G','MAGNTICO','MALDAD POR RIQUEZA')
GO
INSERT
INTO
ENEMIGOS
VALUES('Pedro
Ramirez','KUMA','S','FUERTE
Y
GRANDE','ODIO POR LA HUMANIDAD')
GO

INSERT INTO ENEMIGOS VALUES('Jose Torres','ZANTSIEG','G','COMO UN


LUCHADOR DE WWE','DEMOSTRAR SU FUERZA')
GO
INSERT INTO ENEMIGOS VALUES('Mario Alfredo','FREEZER','S','ROSADO Y
RARO','DOMINAR EL MUNDO')
GO
INSERT INTO ENEMIGOS VALUES('Carlos Robles','ANTI-HEROE','G','JOVEN Y SUBE
VIDEOS EN YOUTUBE','CAMBIAR MENTES')
GO
INSERT INTO ENEMIGOS VALUES('Pedro Torres','Cholo','S','Es un ISC','DESEOS DE
CONTROL')
GO
INSERT INTO ENEMIGOS VALUES('Jos Prez','Mi Villano Favorito','g','SEOR DE LOS
SITH','CONVERTIRSE EN EL MEJOR VILLANO')
INSERT INTO DETALLE_ENEMIGO VALUES('ANT',3)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('ANT',6)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('AQU',9)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('AQU',12)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('ARR',15)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('ARR',18)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BAT',21)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BAT',23)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BLA',26)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BLA',29)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BRU',2)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BRU',5)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BTC',8)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('BTC',11)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CEM',14)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CEM',17)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CHA',20)

GO
INSERT INTO DETALLE_ENEMIGO VALUES('CHA',23)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CHL',26)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CHL',29)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CPA',1)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CPA',4)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CRL',7)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('CRL',10)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('DAL',13)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('DAL',16)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('FAL',19)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('FAL',22)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('FLA',25)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('FLA',28)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('GAR',1)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('GAR',2)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('GBU',3)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('GBU',4)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('HLK',5)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('HLK',6)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('IMA',7)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('IMA',8)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('IRM',9)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('IRM',10)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('LNV',11)

GO
INSERT INTO DETALLE_ENEMIGO VALUES('LNV',12)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MOL',13)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MOL',14)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MRE',15)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MRE',16)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MUI',17)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MUI',18)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MUJ',19)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('MUJ',20)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('QUI',21)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('QUI',22)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('ROG',23)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('ROG',24)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('RYU',25)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('RYU',26)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('SAM',27)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('SAM',28)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('FLA',29)
GO
INSERT INTO DETALLE_ENEMIGO VALUES('FLA',30)
GO
INSERT INTO DET_POD_ENEMIGO (ENE_ID,POD_ID)VALUES
(1,3),
(1,5),
(2,7),
(2,9),
(3,4),
(3,10),
(4,3),

(4,5),
(5,7),
(5,9),
(6,4),
(6,10),
(7,3),
(7,5),
(8,7),
(8,9),
(9,4),
(9,10),
(10,3),
(10,5),
(11,7),
(11,9),
(12,4),
(12,10),
(13,3),
(13,5),
(14,7),
(14,9),
(15,4),
(15,10),
(16,3),
(16,5),
(17,7),
(17,9),
(18,4),
(18,10),
(19,3),
(19,5),
(20,7),
(20,9),
(21,4),
(21,10),
(22,3),
(22,5),
(23,7),
(23,9),
(24,4),
(24,10),
(25,3),
(25,5),
(26,7),
(26,9),
(27,4),
(27,10),
(28,3),

(28,5),
(29,7),
(29,9),
(30,4),
(30,10)
GO
INSERT INTO DETALLE_PODER
VALUES('ANT',1)
GO
INSERT INTO DETALLE_PODER
VALUES('ANT',3)
GO
INSERT INTO DETALLE_PODER
VALUES('WOL',2)
GO
INSERT INTO DETALLE_PODER
VALUES('WOL',5)
GO
INSERT INTO DETALLE_PODER
VALUES('LNV',3)
GO
INSERT INTO DETALLE_PODER
VALUES('LNV',2)
GO
INSERT INTO DETALLE_PODER
VALUES('BTC',4)
GO
INSERT INTO DETALLE_PODER
VALUES('BTC',5)
GO
INSERT INTO DETALLE_PODER
VALUES('AQU',4)
GO
INSERT INTO DETALLE_PODER
VALUES('AQU',6)
GO
INSERT INTO DETALLE_PODER
VALUES('CHL',2)
GO
INSERT INTO DETALLE_PODER
VALUES('CHL',7)
GO
INSERT INTO DETALLE_PODER
VALUES('FAL',4)
GO

INSERT INTO DETALLE_PODER


VALUES('FAL',1)
GO
INSERT INTO DETALLE_PODER
VALUES('FLA',2)
GO
INSERT INTO DETALLE_PODER
VALUES('FLA',9)
GO
INSERT INTO DETALLE_PODER
VALUES('ARR',1)
GO
INSERT INTO DETALLE_PODER
VALUES('ARR',3)
GO
INSERT INTO DETALLE_PODER
VALUES('DAL',6)
GO
INSERT INTO DETALLE_PODER
VALUES('DAL',9)
GO
INSERT INTO DETALLE_PODER
VALUES('IMA',2)
GO
INSERT INTO DETALLE_PODER
VALUES('IMA',10)
GO
INSERT INTO DETALLE_PODER
VALUES('MUI',5)
GO
INSERT INTO DETALLE_PODER
VALUES('MUI',9)
GO
INSERT INTO DETALLE_PODER
VALUES('MUJ',1)
GO
INSERT INTO DETALLE_PODER
VALUES('MUJ',10)
GO
INSERT INTO DETALLE_PODER
VALUES('RYU',8)
GO
INSERT INTO DETALLE_PODER
VALUES('RYU',9)
GO
INSERT INTO DETALLE_PODER
VALUES('ROG',6)
GO

INSERT INTO DETALLE_PODER


VALUES('ROG',10)
GO
INSERT INTO DETALLE_PODER
VALUES('SAM',4)
GO
INSERT INTO DETALLE_PODER
VALUES('SAM',10)
GO
INSERT INTO DETALLE_PODER
VALUES('SPD',2)
GO
INSERT INTO DETALLE_PODER
VALUES('SPD',3)
GO
INSERT INTO DETALLE_PODER
VALUES('SIR',1)
GO
INSERT INTO DETALLE_PODER
VALUES('SIR',2)
GO
INSERT INTO DETALLE_PODER
VALUES('TOR',2)
GO
INSERT INTO DETALLE_PODER
VALUES('TOR',6)
GO
INSERT INTO DETALLE_PODER
VALUES('GAR',10)
GO
INSERT INTO DETALLE_PODER
VALUES('GAR',8)
GO
INSERT INTO DETALLE_PODER
VALUES('CPA',2)
GO
INSERT INTO DETALLE_PODER
VALUES('CPA',7)
GO
INSERT INTO DETALLE_PODER
VALUES('IRM',7)
GO

INSERT INTO DETALLE_PODER


VALUES('IRM',6)
GO
INSERT INTO DETALLE_PODER
VALUES('SUP',10)
GO
INSERT INTO DETALLE_PODER
VALUES('SUP',3)
GO
INSERT INTO DETALLE_PODER
VALUES('WAR',2)
GO
INSERT INTO DETALLE_PODER
VALUES('WAR',5)
GO
INSERT INTO DETALLE_PODER
VALUES('VIS',3)
GO
INSERT INTO DETALLE_PODER
VALUES('VIS',9)
GO
INSERT INTO DETALLE_PODER
VALUES('MRE',8)
GO
INSERT INTO DETALLE_PODER
VALUES('MRE',1)
GO
INSERT INTO DETALLE_PODER
VALUES('CRL',2)
GO
INSERT INTO DETALLE_PODER
VALUES('CRL',6)
GO
INSERT INTO DETALLE_PODER
VALUES('GBU',4)
GO
INSERT INTO DETALLE_PODER
VALUES('GBU',8)
GO
INSERT INTO DETALLE_PODER
VALUES('CEM',1)

GO
INSERT INTO DETALLE_PODER
VALUES('CEM',7)
GO
INSERT INTO DETALLE_PODER
VALUES('BLA',2)
GO
INSERT INTO DETALLE_PODER
VALUES('BLA',10)
GO

/*Query 4. Actualizar el lugar que defiende todos los enemigos cuyo ID este de rango de 3
a 20
Y que su apodo tenga una A,Z,W,B,T,E,I,O,U*/
Con el comando update seguido del nombre de la tabla y set y nombre del campo seguido
del valor preparamos tal campo para ser reemplazado por un nuevo valor
UPDATE ENEMIGOS SET ENE_COMOTRAB = 'S' WHERE (ENE_ID BETWEEN 3 AND
20) AND (ENE_APODO LIKE '%A%' OR (ENE_APODO LIKE '%Z%' OR (ENE_APODO
LIKE '%W%' OR (ENE_APODO LIKE '%B%' OR (ENE_APODO LIKE '%T%' OR
(ENE_APODO LIKE '%I%' OR (ENE_APODO LIKE '%U%' OR (ENE_APODO LIKE '%E%'
OR (ENE_APODO LIKE '%O%')))))))))
GO
/*Query 5.MUESTRE LA SIGUIENTE INFORMACION APODO, CANTIDAD PODERES,
CANTIDAD ENEMIGOS*/
Mediante selects y subconsultas relacionamos los campos foraneos de ambas tablas
SELECT H.HER_APODO APODO,(SELECT COUNT(POD_ID) FROM DETALLE_PODER
WHERE HER_ID=H.HER_ID) CANTIDAD_PODERES,(SELECT COUNT(ENE_ID) FROM
DETALLE_ENEMIGO
WHERE HER_ID=H.HER_ID) CANTIDAD_ENEMIGOS
FROM HEROES H

/*Query 6. CREA UNA VISTA CON EL APODO DEL SUPERHEORE Y EL APODO DE SU


ENEMIGO DE CADA HEROE*/
Creamos una vista con su nombre
CREATE VIEW V_VISTA6
Mediante selects y consultas combinadas relacionamos los campos foraneos de ambas
tablas

AS(SELECT H.HER_APODO HEROE, E.ENE_APODO ENEMIGO


FROM HEROES H
INNER JOIN DETALLE_ENEMIGO DE ON(DE.HER_ID=H.HER_ID)
INNER JOIN ENEMIGOS E ON(E.ENE_ID=DE.ENE_ID))
/*Query 7. Por medio de subconsultas muestra todos los datos de los superheroes que
tengan de dos a tres enemigos*/
SELECT * FROM HEROES H
WHERE (SELECT COUNT(ENE_ID) FROM DETALLE_ENEMIGO
WHERE HER_ID=H.HER_ID) BETWEEN 2 AND 3

/*Query 8. Inserta todos los enemigos en una tabla nueva de los sig superheroes:
superman, batman, goku
Una tabla nueva por cada uno*/
--superman
Select * from heroes
SELECT * INTO SUPERMAN_ENEMIGOS FROM ENEMIGOS WHERE ENE_ID
IN(SELECT ENE_ID FROM DETALLE_ENEMIGO WHERE HER_ID='SUP')
GO
SELECT * INTO BATMAN_ENEMIGOS FROM ENEMIGOS WHERE ENE_ID IN(SELECT
ENE_ID FROM DETALLE_ENEMIGO WHERE HER_ID='BAT')
GO
SELECT * INTO GOKU_ENEMIGOS FROM ENEMIGOS WHERE ENE_ID IN(SELECT
ENE_ID FROM DETALLE_ENEMIGO WHERE HER_ID='SPD')
GO
/*Query 9. Elimina a todos los superheroes que no tengan enemigos ni poderes*/
DELETE FROM HEROES WHERE HER_ID IN(
SELECT H.HER_ID
FROM HEROES H
WHERE (SELECT COUNT(POD_ID) FROM DETALLE_PODER
WHERE HER_ID=H.HER_ID)=0
AND (SELECT COUNT(ENE_ID) FROM DETALLE_ENEMIGO
WHERE HER_ID=H.HER_ID)=0)
SELECT COUNT(HER_ID) FROM HEROES
SELECT (HER_ID) FROM HEROES WHERE HER_ID NOT IN (SELECT HER_ID FROM
DETALLE_ENEMIGO)

GO
SELECT (HER_ID) FROM HEROES WHERE HER_ID NOT IN (SELECT HER_ID FROM
DETALLE_PODER)
GO

Resultado

Conclusin

Con este reporte terminado he podido llegar a tener nociones un poco ms avanzadas del
uso del DML con los cuales puedo hacer un mejor uso de las bases de datos, realizar
consultas, modificar registros as como poder eliminarlos, evidentemente no basta con
una seleccin o eliminacin masiva de registros, sino que tambin se requiere el poder
filtrar los resultados para poder manipular solo aquellos que necesitamos por eso se
introdujeron los comandos de comparacin tales como like, max, min entre otros adems
de condicionales con la clusula where con lo cual ahora si ya es posible poder manipular
una seleccin de registros hechos por nosotros, es de encarecida importacin el conocer
estos tpicos, por ltimo se hizo un gran uso de consultas combinadas y subconsultas
para poder consultar registros varias tablas unidas por una llave fornea.
Cabe destacar que aunque no lo veamos el DML, las consultas combinadas y las
subconsultas estn presentes en todos los sistemas que usamos da con da por ejemplo
al recibir reportes, facturas o recibos datos de diferentes tablas son relacionados para
que se pueda visualizar un solo registro es por eso que para esta materia es de vital
importacin un conocimiento profundo y una buena dominacin del tema-

Referencias
Material didactico en diapositivas entregado por la M.E. Veronica Ramirez Jauregui