You are on page 1of 6

Nota Importante:

Utilizar la base de datos data por el instructor para realizar los siguientes laboratorios.

Laboratorio 1
En este laboratorio se trabajara con consultas para conversiones implcitas y explicitas
1. Haga click Start->All Programs->Microsoft SQL Server 2012-> SQL Server
Management Studio. En la ventana de conectar ponga el nombre de server y click en
Connect
2. Conectarse a una de las instancias usando Windows autenticacin
3. Escoger la opcin en el men tool bar para ejecutar un nuevo query
4. Ejecute los siguiente queries usando la base de datos creada en el curso
a) Ejecute el siguiente query (conversion implicita)
- SELECT 1 + '2' AS result;
-

SELECT 1 + 'abc' AS result;

-- Comente los resultados obtenidos


b) Ejecute el siguiente query (conversion explicita)
-

SELECT CAST(1 AS VARCHAR(10)) + 'abc' AS result;

5. Escribir las siguiente consulta:


a) Escribir una consulta que retorne las siguientes columnas:
- La actual fecha y hora usando un alias por ejemplo
currentdatetime.
- Solo la actual fecha usando un alias currentdate.
- Solo la actual hora usando un alias currenttime.
- El actual ao usando un alias currentyear.
- El actual numero de mes usando un alias currentmonth.
- El numero del actual dia del actual mes usando un alias
currentday.
- El actual numero de semana de este ao usando un alias
currentweeknumber.
El
nombre
del
actual
mes
basado
en
la
columna
currentdatetime usando un alias currentmonthname.
b) Escriba un formato de fecha utilizando el cast, convert y una
funcion especifica de fecha. Al resultado asignele el alias:
somedate.
c) Escriba un query que retorne tres columnas que contengan lo
siguiente:
- La fecha y hora actual de aca a tres meses usando alias
threemonths.
- El numero de dias entre la fecha actual y la primera
columnas de threemonths. Use el alias diffdays.

- El numero de semanas entre Abril 4,1992 y Septiembre


16,2011. Use el alias diffweeks.
- El primer dia del actual mes basado en la fecha y hora
actual. Use el alias firstday.
d) El departamento de IT ha escrito una consulta para popular una
tabla llamada Sales.Somedates. Ejecute la funcion:
SET NOCOUNT ON;
IF OBJECT_ID('Sales.Somedates') IS NOT NULL
DROP TABLE Sales.Somedates;
CREATE TABLE Sales.Somedates (
isitdate varchar(9)
);
INSERT INTO Sales.Somedates (isitdate) VALUES
('20110101'),
('20110102'),
('20110103X'),
('20110104'),
('20110105'),
('20110106'),
('20110107Y'),
('20110108');
SET NOCOUNT OFF;
SELECT isitdate
FROM Sales.Somedates;
- Escriba una consulta
la columna isitdate, y
converteddate con un
Si la columna isitdate
entonces retorne NULL.

para la tabla Sales.Somedates que retorne


agregue una nueva columna llamada
nuevo valor basado en la columna isitdate.
no se puede convertir de tipo de fecha

- Cual es la diferencia entre las funciones de SYSDATETIME


y CURRENT_TIMESTAMP?
- Cual es el formato del lenguaje neutral para el tipo
DATE?

Laboratorio 2
En este laboratorio usted aprender como hacer consultas y manipular los distintos tipos de
caracteres SQL
1. Haga click Start->All Programs->Microsoft SQL Server 2012-> SQL Server Management
Studio. En la ventana de conectar ponga el nombre de server y click en Connect
2. Conectarse a una de las instancias usando Windows autenticacin
3. Escoger la opcin en el men tool bar para ejecutar un nuevo query
4. Ejecute las siguientes consultas:
a) Ejecute la siguiente consulta utilizando colaciones
SELECT empid, lastname
FROM HR.employees
WHERE lastname COLLATE Latin1_General_CS_AS = N'Funk';
b) Ejecute la siguiente consulta utilizando concatenaciones
SELECT empid, lastname, firstname, firstname + N' ' + lastname AS
fullname
FROM HR.Employees;
c) Ejecute la siguiente consulta usando funciones de STRING
SELECT SUBSTRING('Microsoft SQL Server',11,3);
SELECT LEFT('Microsoft SQL Server',9);
SELECT RIGHT('Microsoft SQL Server',6);
SELECT LEN('Microsoft SQL Server
');
SELECT DATALENGTH('Microsoft SQL Server
');
SELECT CHARINDEX('SQL','Microsoft SQL Server');
SELECT REPLACE('Microsoft SQL Server Denali','Denali','2012');
SELECT UPPER('Microsoft SQL Server');
SELECT LOWER('Microsoft SQL Server');
d) Ejecute la siguiente consulta usando el Like en el query
SELECT categoryid, categoryname, description
FROM Production.Categories
WHERE description LIKE 'Sweet%';

5.

Escribir las siguientes consultas:

a) Escriba un query que retorne los valores DISTINCT de la columna


custid de la tabla Sales.Orders. Filtre los resultados para obtener
solo los que incluyen ordenes de February 2008.
b) Escriba un query que retorne estas columnas:
- Fecha y tiempo actual
- La primera fecha del actual mes
- La ultima fecha del actual mes
c) Escriba una consulta para la tabla Sales.Orders que muestre las
columnas orderid, custid, y orderdate. Filtre los resultados para

que solo se muestren las ordenes que se llevaron a cabo los ultimos
5 dias de mes de orden.
d) Escriba una consulta para las tablas Sales.Orders y
Sales.OrderDetails que muestren todos los valores distinct de la
columna productid. Filtre los resultados para solo obtener las
ordenes de las primeras 10 semanas del ao 2007.

Laboratorio 3
En este laboratorio usted aprender como realizar consultas con valores de fechas y tiempos al
mismo tiempo como hacer funciones con los mismos.
1. Haga click Start->All Programs->Microsoft SQL Server 2012-> SQL Server Management Studio.
En la ventana de conectar ponga el nombre de server y click en Connect
2. Conectarse a una de las instancias usando Windows autenticacin
3. Escoger la opcin en el men tool bar para ejecutar un nuevo query
4. Ejecute las siguientes consultas:
a) Revise las siguientes funciones para revisar las actuales fechas y
tiempos
SELECT
GETDATE()AS [GetDate],
CURRENT_TIMESTAMP AS [Current_Timestamp],
GETUTCDATE()AS [GetUTCDate],
SYSDATETIME()AS [SYSDateTime],
SYSUTCDATETIME()AS [SYSUTCDateTime],
SYSDATETIMEOFFSET()AS [SYSDateTimeOffset];
b) Revise las siguientes funciones que despliegan porcion de fecha y/o
tiempo, comente los resultados
-

SELECT DATENAME(year,'20120212');
SELECT DAY('20120212') AS [Day], MONTH('20120212') AS
[Month],YEAR('20120212') AS [Year];

SELECT DATETIMEFROMPARTS(2012,2,12,8,30,0,0) AS Result;

SELECT DATETIME2FROMPARTS(2012,2,12,8,30,00,0,0) AS
Result;

SELECT DATEFROMPARTS(2012,2,12) AS Result;

SELECT DATETIMEOFFSETFROMPARTS(2012,2,12,8,30,0,0,7,0,0) AS Result;

c) Ejecute la siguiente consulta y comente que es lo que hace la


funcion DATEIFF
-

SELECT DATEDIFF(millisecond, GETDATE(), SYSDATETIME());

d) Utilize la funcion ISDATE para validar fechas y comente los


resultados para ambas consultas:
- SELECT ISDATE('20120212');
- SELECT ISDATE('20120230');
5. Resuelva los siguientes ejercicios:

a) Escribir una consulta de la tabla Sales.Customers table que retorne


las columnas contactname y city. Concatenar ambas columnas para que
la nueva columna luzca asi:
--

Allen, Michael (city: Berlin)

b) Modifique la consulta del ejercicio anterior para concatenar tambien


la columna region. En caso de tener un valor NULL tratelo como un campo
vacio al momento de concatenar y si este es el caso deberia lucir de la
siguiente manera el resultado:
- Allen, Michael (city: Berlin, region: )
De otra manera lucira asi:
-- Richardson, Shawn (city: Sao Paulo, region: SP)
c) Escriba una consulta que retorne las columnas contactname y
contacttitle de la tabla Sales.Customers,retorne solo las filas que
contengan como primer caracter del contact name A hasta la G.
e) Escriba una consulta que retorne la columna contactname de la tabla
Sales.Customers, basada en esta columna agregue una nueva columna
llamada lastname que retorne todos los caracteres antes de la coma.
f) Escriba una consulta que retorne el contactname de la tabla
Sales.Customers y reemplace la coma por un campo vacio. Basado en
esta columna agregue una nueva llamada firstname, la cual deberia
retornar todos los caracteres despues de la coma.
g) Escriba una consulta que retorne la columna custid de la tabla
Sales.Customers. Agregue una nueva columna que tenga una nueva
representacion de la columna custid que aumente el ancho a 6
caracteres y tenga el customer code como prefijo con la letra C
seguida de ceros por ejemplo para el custid=1 se deberia mostrar:
C00001.
h) Escriba una consulta que retorne la columna contactname cde la tabla
Sales.Customers. Agregar una columna que cuente el numero de
ocurrencias del caracter a dentro del contact name. Puede usuar
las funciones REPLACE y LEN. Ordene los resultados por el mayor
numero de ocurrencias que obtenga.