Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
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
con el nombre
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
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')
--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
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'),
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
--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
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
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
en pesos,
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
)
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)
as
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]%')
----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 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
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
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
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 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