Práctica SQL 10.1
Práctica SQL 10.1
Práctica SQL 10.1
En esta práctica crearemos una tabla denominada CLIENTES, luego importaremos los datos desde una hoja Excel y finalmente realizaremos una serie de consultas
para validar los datos ingresados.
a. Crearemos primero nuestro espacio de trabajo en una BASE DE DATOS denominada UNIVERSIDAD:
Nota: otra forma de hacerlo es importando el archivo Excel de clientes directo a la base de datos de SQL. Para probar realice lo siguiente:
Hacer click con el botón derecho en el objeto base de datos UNIVERSIDAD en el Explorador de Objetos. Luego click en “Tasks” (tareas) y luego en “Import
Data” (importar datos). Siga la secuencia seleccionando como origen “Microsoft Excel” y destino “Microsoft OLE DB Provider for SQL Server” (esto
dependerá de las opciones instaladas en su servidor).
2. Ahora que ya tenemos nuestra base de datos con la tabla clientes realizaremos algunas operaciones:
a. Listar todos los datos de CLIENTES
SELECT [IdCliente]
,[NombreCompañía]
,[NombreContacto]
,[CargoContacto]
,[Dirección]
,[Ciudad]
,[Región]
,[CódPostal]
,[País]
,[Teléfono]
,[Fax]
FROM [Universidad].[dbo].[Clientes]
b. Otra forma de hacerlo
SELECT * FROM [Universidad].[dbo].[Clientes]
c. Listar solo los primeros 10 registros de clientes
SELECT TOP (10) [IdCliente]
,[NombreCompañía]
,[NombreContacto]
,[CargoContacto]
,[Dirección]
,[Ciudad]
,[Región]
,[CódPostal]
,[País]
,[Teléfono]
,[Fax]
FROM [Universidad].[dbo].[Clientes]
d. Listar solo los clientes que vivan e MEXICO
SELECT *
FROM [Universidad].[dbo].[Clientes]
WHERE [País]='México'
e. Listar solo los clientes que no tienen número de fax ( en este caso el campo fax está vació )
SELECT *
FROM [Universidad].[dbo].[Clientes]
WHERE [Fax]=''
f. Actualizar los datos de fax que no tienen número a un campo “null”
UPDATE [Universidad].[dbo].[Clientes]
SET [FAX] = NULL
FROM [Universidad].[dbo].[Clientes]
WHERE [Fax]=''
a. Listar solo los clientes que no tienen número de fax ( en este caso el campo fax es NULL)
SELECT *
FROM [Universidad].[dbo].[Clientes]
WHERE [Fax] is NULL
b. Listado de los empleados ordenados por nombre que muestre Nombre, Dirección, Ciudad, Región, País, Teléfono y Fax sólo de los empleados que
tengan Fax
SELECT
[NombreContacto]
,[Dirección]
,[Ciudad]
,[Región]
,[País]
,[Teléfono]
,[Fax]
FROM [Universidad].[dbo].[Clientes]
WHERE [Fax] IS not NULL
ORDER BY [NombreContacto] ASC
c. Listado de los mismos datos anteriores, pero esta vez ordenados por País y nombre del contacto
SELECT
[NombreContacto]
,[Dirección]
,[Ciudad]
,[Región]
,[País]
,[Teléfono]
,[Fax]
FROM [Universidad].[dbo].[Clientes]
WHERE [Fax] IS not NULL
ORDER BY [País] ASC, [NombreContacto] ASC
d. Listado de clientes que viven en Alemania o Suecia
SELECT
[NombreContacto]
,[Dirección]
,[Ciudad]
,[Región]
,[País]
,[Teléfono]
,[Fax]
FROM [Universidad].[dbo].[Clientes]
WHERE ([Fax] IS not NULL) and ([País]='Alemania' Or [País]='Suecia')
ORDER BY [País] ASC, [NombreContacto] ASC
e. Listado de clientes que trabajen en ventas
SELECT
[NombreContacto]
,[CargoContacto]
,[Dirección]
,[Ciudad]
,[Región]
,[País]
,[Teléfono]
,[Fax]
FROM [Universidad].[dbo].[Clientes]
WHERE CargoContacto like '%Ventas'
ORDER BY [País] ASC, [NombreContacto] ASC
f. Modificar la tabla clientes para añadir un campo “SUELDO” del tipo float (decimal)
ALTER TABLE [Universidad].[dbo].[Clientes]
ADD [Sueldo] float
g. Asignar un sueldo de S/ 15,000 a los clientes que viven en México
UPDATE [Universidad].[dbo].[Clientes]
SET [Sueldo] = 15000
FROM [Universidad].[dbo].[Clientes]
WHERE [País]='México'
h. Calcular una línea de crédito para los clientes, la cual será equivalente al 20% de su sueldo. Almacenar el resultado en el campo creado
anteriormente
SELECT [País], [Sueldo], [LíneaCrédito]
FROM [Universidad].[dbo].[Clientes]
UPDATE [Universidad].[dbo].[Clientes]
SET [LíneaCrédito] = [Sueldo]*0.20
FROM [Universidad].[dbo].[Clientes]
SELECT [País]
,[Sueldo]
,[LíneaCrédito]
,([LíneaCrédito]*POWER(1+0.05,6))-[LíneaCrédito] as [Interes6Meses]
,([LíneaCrédito]*POWER(1+0.04,12))-[LíneaCrédito] as [Interes12Meses]
,([LíneaCrédito]*POWER(1+0.03,18))-[LíneaCrédito] as [Interes18Meses]
FROM [Universidad].[dbo].[Clientes]
WHERE [País] <> 'México' and [País]<>'Venezuela' and [País]<>'Argentina' and [País]<>'Brasil'
SELECT [País]
,[Sueldo]
,[LíneaCrédito]
,([LíneaCrédito]*POWER(1+0.05,6))-[LíneaCrédito] as [Interes6Meses]
,([LíneaCrédito]*POWER(1+0.04,12))-[LíneaCrédito] as [Interes12Meses]
,([LíneaCrédito]*POWER(1+0.03,18))-[LíneaCrédito] as [Interes18Meses]
FROM [Universidad].[dbo].[Clientes]
WHERE [País] NOT IN ('México','Venezuela','Argentina','Brasil')