Está en la página 1de 39

UNIVERSIDAD TECNOLGICA DE PANAM

FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES


DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Facilitador(a): Cristian Pinzn Asignatura: Base de Datos II (0857)


Estudiante: Pascasio Jos 9-747-2108 Fecha: 16-23/08/2017 Grupo: 4IL131

A. TTULO DE LA EXPERIENCIA
Fundamentos del Lenguaje T-SQL

B. TEMAS:
Tema #3. Fundamentos del Lenguaje SQL

C. OBJETIVO(S):
Introducir al estudiante en los Fundamentos del Lenguaje T-SQL

CONTENIDO DEL LABORATORIO PROPUESTO


----------------------------------------------------------------------------------------------------------
1. Comportamiento en la colocacin de comentarios en Cdigo SQL
----------------------------------------------------------------------------------------------------------
Caso #1
--Explique que hace esta lnea de cdigo
R/. Es utilizado para hacer comentarios cortos en los cdigos de programacin, los cuales con
importantes para describir variables.

Caso #2
/*
Explique que hace esta lnea de cdigo
Para explicar el cdigo SQL
*/
R/. Es utilizado para hacer comentarios ms largos (Prrafos) en los cdigos de programacin, los
cuales son importantes ya que podemos describir ciertas funciones que se estn utilizando en la
implementacin del cdigo.

----------------------------------------------------------------------------------------------------------
2. Uso de variables Locales
Ejecute el siguiente cdigo SQL y explique su comportamiento.
----------------------------------------------------------------------------------------------------------
Caso #3
DECLARE
@numero int,
@copiar int,
@suma int

SELECT @numero = 10
SELECT @copiar = @numero, @suma = @numero + 100
SELECT @copiar AS [Variable Copiar]
SELECT @suma AS [Variable SUMA]
Go
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

La funcin DECLARE se utiliza principalmente para declarar variable, para luego ser utilizadas
en los procesos o cdigos de programacin. En las cuales se pueden cualquier tipo de variables
ya sea INT, CHAR, entre otras.

Caso #4
SELECT * FROM TB_CLIENTE

DECLARE @Codigo_Cliente CHAR(11)


SELECT @Codigo_Cliente=Codigo_Cliente
FROM TB_Cliente
WHERE Nombre_Cliente = 'Juan'
and PrimerApellido_Cliente = 'Delgado'

SELECT @Codigo_Cliente [Codigo del Cliente]


GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

En la primera consulta mostramos todos los clientes de la tabla, se cre una variable
@Codigo_cliente en la cual se iba a almacenar el cdigo del cliente correspondiente a
Juan Delgado, imprimimos la variable.

Caso #5
SELECT * FROM TB_CLIENTE
DECLARE @NombreCliente VarCHAR(40)
DECLARE @ApellidoCliente VarCHAR(40)

UPDATE TB_CLIENTE
SET Nombre_Cliente='Alberto',
PrimerApellido_Cliente = 'Chavez',
@NombreCliente=Nombre_Cliente,
@ApellidoCliente=PrimerApellido_Cliente
WHERE Codigo_Cliente='00001'

SELECT @NombreCliente AS [Nombre del Cliente], @ApellidoCliente [Apellido


del Cliente]
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

La primera consulta nos desplego al igual que la anterior los clientes de la tabla, pero en
esta declaramos dos variables @NombreCliente @ApellidoCliente estas iban a ser las
encargadas de reservar el nombre y apellido del cliente con cdigo 00001, antes de
ejecutar la actualizacin sobre los campos. Se imprimen las variables.

Caso #6
SELECT @Codigo_Cliente=Codigo_Cliente
FROM TB_Cliente
WHERE Nombre_Cliente = 'Juan' and PrimerApellido_Cliente = 'Delgado'
DECLARE @Codigo_Cliente CHAR(11)
SELECT @Codigo_Cliente
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

El flujo de ejecucin de una consulta es de la parte superior a la inferior, nos ser


imposible poder utilizarlas sin antes declararlas.

Caso #7
SELECT @Codigo_Cliente=Codigo_Cliente
FROM TB_Cliente
WHERE Nombre_Cliente = 'Juan' and PrimerApellido_Cliente = 'Delgado'
DECLARE @Codigo_Cliente CHAR(11)
SELECT @Codigo_Cliente
GO

Existe una incongruencia entre el tipo de dato declarado en la variable y el tipo de dato
establecido para el campo al cual hacemos referencia con la variable, el tipo de dato
declarado no es el esperado y se produce un error en el tipificado de datos.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #8
DECLARE @nombre_cliente float
SELECT @nombre_cliente=Nombre_Cliente
FROM TB_Cliente
WHERE Nombre_Cliente = 'Alberto' and PrimerApellido_Cliente =
'Chavez'
SELECT @nombre_cliente
GO

Igual que en el caso anterior, se presenta una incongruencia en el tipo de dato declarado
para la variable y el esperado segn el campo.

Caso #9
SELECT * FROM tb_cliente
DECLARE @valor SMALLMONEY

SELECT @valor = Saldo_Cliente FROM Tb_Cliente


WHERE Direccion_Cliente = 'Santiago' and Saldo_Cliente > 0

SELECT @valor AS [Saldo de Clientes de Santiago]

SELECT @valor = Saldo_Cliente FROM Tb_Cliente


WHERE Direccion_Cliente = 'Chitre' and Saldo_Cliente > 0

SELECT @valor AS [Saldo de Clientes de Chitre]


UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

En la primera consulta desplegamos los clientes, definimos una variable @valor la cual
iba a almacenar para la segunda consulta el ultimo saldo correspondiente a los clientes de
Santiago, despus que este fuese mayor a cero. Se realiza la misma operacin con los
clientes de Chitre y se imprime.

Caso #10
DECLARE @cliente VARCHAR(5)
-- le asignamos a la variable un valor de la tabla.
SELECT @cliente = codigo_cliente
FROM TB_Cliente
WHERE Email_Cliente = 'claudiasoto@hotmail.com'

--Vemos el valor de la variable.


SELECT @cliente [Codigo del Cliente]

---Usamos el valor de la variable en una nueva consulta


SELECT codigo_cliente, nombre_cliente, PrimerApellido_Cliente,
TelefonoMovil_Cliente
FROM TB_Cliente
WHERE codigo_cliente = @cliente

GO --Termina la Ejecucin por Lote (batch)


UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

En la variable @cliente almacenamos el cdigo del cliente que cumpla el criterio, una vez
obtenido lo comparamos en el criterio de la segunda consulta para obtener los datos
correspondientes al cliente del cdigo obtenido en @cliente.

----------------------------------------------------------------------------------------------------------
3. Uso de variables GLOBALES
Ejecute el siguiente cdigo SQL y explique su comportamiento.
----------------------------------------------------------------------------------------------------------

Caso #11
SELECT * FROM TB_PAGO_FACTURA_COMPRA
WHERE Fecha_Pago = '06/03/2012'

SELECT * FROM TB_Pago_Factura_Compra


DELETE FROM TB_Pago_Factura_Compra
SELECT @@rowcount AS [Cantidad de Registros Eliminados]
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

En la primera consulta se muestran las facturas de compras correspondientes a una fecha


en especfico, en la segunda se despliegan todos los registros de factura de compras, luego
eliminamos todos los registros y utilizamos @@rowcount para obtener el nmero de
registros afectados en consecuencia de la eliminacin.

Caso #12
DELETE FROM TB_Cliente
SELECT @@error [Numero del Error]

En este caso, a travs de @@error podemos comprobar el nmero de error, de la ltima


instruccin SQL ejecutada para este caso el Delete.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

----------------------------------------------------------------------------------------------------------
4. Precedencia Operadores: Prioridades
Ejecute el siguiente cdigo SQL y explique su comportamiento.
----------------------------------------------------------------------------------------------------------

Caso #13
DECLARE @Numero int;
SET @Numero = 4 - 2 + 27;
-- Evala a 2 + 27 el cual produce el resultado de 29.
SELECT @Numero [Valor de Salida];
Go

Cuando en una expresin los operadores tienen el mismo nivel de prioridad, se evala
toda la expresin de izquierda a derecha de acuerdo a la posicin del operador en la
expresin.

Caso #14
DECLARE @Numero int;
SET @Numero = 2 * 4 + 5;
-- Evaluar 8 + 5 debe producir como resultado 13.
SELECT @Numero [Valor de Salida];
Go
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

En la jerarqua de prioridades de los operadores, la multiplicacin tiene mayor peso por


ello se multiplica 2 * 4 dando igual 8 y luego se le suma los 5 restantes, quedando como
resultado 13.

Caso #15
DECLARE @Numero int;
SET @Numero = 2 * (4 + 5);
-- Evaluar a 2 * 9 debe producir como resultado 18.
SELECT @Numero [Valor de Salida];
Go
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Al utilizar los parntesis estamos suplantando la prioridad definida de los operadores en


la expresin, todo lo que est dentro de los parntesis se evala en primer lugar, por lo
cual primero se realiza la suma y luego la multiplicacin.

Caso #16
DECLARE @Numero int;
SET @Numero = 2 * (4 + (5 - 3) );
-- Evaluar 2 * (4 + 2) el cual evala a 2 * 6, y produce como resultado 12.
SELECT @Numero [Valor de Salida];

En este caso, la expresin al tener parntesis anidados, se evaluar primero el ms interno,


hasta llegar al externo, para este caso el resultado final de los parntesis es de 6 y este
valor multiplicado por 2 quedara la expresin resuelta con un 12.

----------------------------------------------------------------------------------------------------------
5. Funciones para el Manejo de Cadenas
Ejecute el siguiente cdigo SQL y explique su comportamiento.
----------------------------------------------------------------------------------------------------------

Caso #17
-- FUNCION CONCAT
DECLARE @Cadena CHAR(100)
SET @Cadena=CONCAT( 'Feliz ', 'Cumpleaos ', 'hoy ', 15, '/', '09' );
SELECT @Cadena AS [Cadena de Salida]
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Al utilizar la funcin concat estamos uniendo todos los valores indicados en los
argumentos de la funcin, en una sola cadena. Por ello el resultado.

Caso #18
SELECT CONCAT(Nombre_Cliente, PrimerApellido_Cliente, SegundoApellido_Cliente)
AS [Nombre del Cliente]
FROM TB_CLIENTE
GO

En este caso concatenamos los registros de algunos campos relacionados con los clientes.
Nombre, primer y segundo apellido.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #19
SELECT CONCAT(Nombre_Cliente, +' '+ PrimerApellido_Cliente,
+' '+ SegundoApellido_Cliente) AS [Nombre del Cliente]
FROM TB_CLIENTE
GO

A diferencia de la consulta anterior, aqu concatenamos a los mismos campos, pero


agregando un espacio de separacin entre los mismos.

Caso #20
--FUNCION LEN
DECLARE @Cadena CHAR(50)
SET @Cadena = 'Esta es la longitud de la cadena'
SELECT LEN(@Cadena) [Tamao de la Cadena]

SET @Cadena = ' Esta es la longitud de la cadena'


SELECT LEN(@Cadena) [Tamao de la Cadena]
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Utilizamos la funcin LEN esta permite saber el nmero de caracteres de una cadena, la
primera consulta posee menos caracteres, pues en la segunda al comienzo incluye algunos
espacios en blanco, que son tomados en cuenta y contabilizados por la funcin.

Caso #21
SELECT LEN(Nombre_Cliente) AS [Longitud del Nombre],
Nombre_Cliente, PrimerApellido_Cliente
FROM TB_Cliente
WHERE Direccion_Cliente = 'Chitre';
GO

Utilizado la funcin LEN obtuvimos el total de caracteres en los nombres de los clientes
cuya direccin es Chitr.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #22
--FUNCION LOWER (Transact-SQL)
SELECT LOWER(Nombre_Cliente) AS [Nombre Minscula],
PrimerApellido_Cliente
FROM TB_Cliente
GO

Mostramos el nombre de los clientes en minsculas usando la funcin LOWER. Y su


apellido en estado original.

Caso #23
--FUNCION UPPER (Transact-SQL)
SELECT UPPER(Nombre_Cliente) AS [Nombre Mayscula],
PrimerApellido_Cliente FROM TB_Cliente
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Mostramos el nombre de los clientes en maysculas usando la funcin UPPER. Y su


apellido en estado original.

Caso #24
--FUNCION SUBSTRING (Transact-SQL)
SELECT SUBSTRING(Nombre_Cliente,4,8) AS [Primer Caracter del Nombre],
Nombre_Cliente, PrimerApellido_Cliente FROM TB_Cliente
GO

En este caso, obtuvimos a travs de la funcin SubString parte de caracteres del nombre
de los clientes, iniciando en el cuarto carcter, hasta 8 caracteres.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #25
SELECT UPPER(SUBSTRING(Nombre_Cliente,3,2))
AS [Primer Caracter del Nombre en Mayscula],
Nombre_Cliente, PrimerApellido_Cliente
FROM TB_Cliente
GO

Anidamos dos funciones, en la interior obtuvimos mediante un SubString parte de


caracteres del nombre de los clientes, iniciando en el tercer carcter, hasta 2 caracteres.
Y en la funcin exterior pasamos a maysculas los caracteres obtenidos mediante
UPPER.

Caso #26
--LTRIM (Transact-SQL)
DECLARE @Cadena CHAR(100)
SET @Cadena=' Esta es una Lnea con caracteres para
contar'
SELECT @CADENA [Cadena Original ], LEN(@Cadena) [Longitud Original],
LTRIM(@CADENA)
[Cadena de Salida], LEN(LTRIM(@CADENA)) [Longitud Real]
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Imprimimos la cadena original con los espacios iniciales, mostramos su longitud original
y utilizando la funcin LTRIM nos devuelve la expresin original, pero sin los espacios
iniciales en blanco. Y, utilizando funciones anidadas, primero LTRIM para eliminar los
espacios y luego LEN, para contabilizarla, obtenemos la longitud real sin espacios.

Caso #27
DECLARE @Cadena CHAR(100)
SELECT @Cadena=' Esta es una Lnea con caracteres para
contar'
SELECT LEN(@Cadena), @CADENA, LTRIM(@Cadena), LEN(LTRIM(@Cadena))
GO

En este caso, se realiza exactamente lo mismo que en el anterior A diferencia que los
campos no poseen un alias.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #28
--RTRIM
DECLARE @Cadena1 varchar(100)
SET @Cadena1 ='Esta es una Lnea con caracteres para contar. '
SELECT @Cadena1 + ' Adicional con nuevos caracteres'
SELECT RTRIM(@Cadena1) + ' Adicional con nuevos caracteres'
GO

Declaramos una variable a la cual le asignamos una cadena con algunos espacios al final,
le concatenamos otra cadena e imprimimos. Utilizando la funcin RTRIM logramos
truncar los espacios finales nulos de entre la cadena y mostrarla correctamente.

Caso #29
--LEFT
SELECT LEFT('00001-Computadoras DEll Inspiron',5);
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Usando la funcin LEFT conseguimos que devuelva la parte izquierda de la cadena,


estableciendo en los argumentos el nmero de caracteres a mostrar, para este caso 5.

Caso #30
SELECT CONCAT(Codigo_Cliente, '-', UPPER(LEFT(Nombre_Cliente,3))) AS [Codigo
Interno],
Nombre_Cliente, PrimerApellido_Cliente
FROM TB_Cliente
GO

Concatenamos el cdigo de cada cliente separado con un guion, a la parte izquierda de


los 3 primeros caracteres del nombre en mayscula, generando un cdigo interno.
Tambin se muestra el nombre del cliente y su primer apellido.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #31
SELECT RIGHT('Computadoras DEll Inspiron-00001',5);
GO

Con la funcin RIGHT se muestra la parte derecha de la cadena, segn el nmero de los
caracteres especificados en los argumentos, para el caso 5.

Caso #32
SELECT CONCAT(UPPER(RIGHT(Nombre_Cliente,3)), '-', Codigo_Cliente) AS [Codigo
Interno],
Nombre_Cliente, PrimerApellido_Cliente
FROM TB_Cliente
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Concatenamos a travs de la funcin CONCAT los tres ltimos caracteres del nombre de
cada cliente mediante RIGHT. Y, seguido el cdigo de cliente, formando un cdigo
interno. Tambin se muestran el nombre y apellido de cada cliente.

Caso #33
--STUFF
DECLARE @Cadena char(5)
SET @Cadena = '00001'
SELECT STUFF('Juan Peralta--', 14, 5, @Cadena);
GO

Mediante la funcin STUFF insertamos una cadena en otra, para este caso a partir de la
posicin de inicio 14 para la primera cadena, y la longitud 5, para la segunda cadena
almacenada en la variable.

Caso #34
DECLARE @Cadena char(5)
SET @Cadena='00001'
SELECT STUFF('Juan Peralta--', 14, 5, @Cadena);
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Este caso es exactamente igual al anterior, Un duplicado.

Caso #35
DECLARE @Identificador CHAR(20)
DECLARE @Clave CHAR(5)
SET @Identificador='01-02-999-0205'
SELECT @Identificador
SET @Clave=SUBSTRING(@Identificador,7,5)
SELECT @Clave
SELECT STUFF(Codigo_Cliente,1,3,@Clave) AS [Campo Unico],
Nombre_Cliente, PrimerApellido_Cliente
FROM TB_Cliente
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Generamos un campo nico de la siguiente forma: del identificador substrajimos 5


caracteres contados a partir del 7mo, esta clave generada a partir del identificador la
unimos al final de la cadena con la funcin STUFF, eliminando del campo cdigo cliente
los 3 primeros caracteres, quedndonos con los 2 ltimos. Formando as el campo nico.

Caso #36
--Funcin STR
SELECT STR(123.45, 4, 1);
GO

Para este caso utilizando la funcin STR logramos obtener datos de caracteres de los datos
numricos introducidos en los argumentos de la funcin, como en el argumento que hace
referencia a la longitud le indicamos 4, contara la expresin hasta en punto decimal y
mostrara solo la parte entera.

Caso #37
--Funcin CAST
DECLARE @Valor Decimal (20, 15);
SET @Valor = 453.989845686543278;
SELECT @Valor [Valor en Decimal];
SELECT CONCAT(CAST(@Valor as varchar(20)), ' + Valor en Cadena') [Valor en
Cadena];
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

En este caso se concatena una cadena con una variable la cual era de tipo decimal y que
para poder usar con la funcin CONCAT se tuvo que cambiar su tipo de dato a travs de
la funcin CAST que nos permite convertir una expresin de un tipo de dato en otro, en
este caso una variable que contena un valor decimal.

Caso #38
--Funcin CONVERT
DECLARE @Valor Decimal (20, 15);
SET @Valor = 4567.989845686543278;
SELECT @Valor [Valor en Decimal];
SELECT CONCAT(CONVERT(varchar(20), @Valor), ' + Valor en Cadena') [Valor en
Cadena];
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Este caso es similar al caso anterior a diferencia que para convertir el tipo de dato de la
variable se utiliz otra funcin, la funcin CONVERT la cual al igual que CAST, nos
permite convertir una expresin de un tipo de datos en otro.

Caso #39
DECLARE @Valor Decimal (5, 2);
SELECT CONCAT(Nombre_Cliente, ' - ', PrimerApellido_Cliente) [Nombre del
Cliente],
CONCAT(CONVERT(varchar(10), Saldo_Cliente),' + 04-456-890') [Saldo + N Cuenta
Ahorro]
FROM TB_CLIENTE
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Para este caso, en el primer campo se muestra la concatenacin del nombre y el primer
apellido de los clientes, y en el segundo, la concatenacin del campo saldo cliente,
convertido a varchar a travs de la funcin CONVERT. Y, un valor tipo cadena.
Formando as en el segundo campo un saldo ms un nmero de cuenta, ambos valores
son cadenas de textos.

----------------------------------------------------------------------------------------------------------
6. Funciones para el Manejo de Cadenas
Ejecute el siguiente cdigo SQL y explique su comportamiento.
----------------------------------------------------------------------------------------------------------

Caso #40
--Funcin POWER
DECLARE @Valor1 float;
DECLARE @Valor2 float;
SET @Valor1= 2;
SET @Valor2 = 2.5;
SELECT POWER(@Valor1, 3) AS Resultado1, POWER(@Valor2, 3) AS Resultado2;

-- Funcin ROUND
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3);
GO

Utilizando la funcin POWER podemos elevar una expresin determinada a una potencia
especificada, para este caso la expresin fueron dos variables a las cuales se les elevo al
cubo.
Aqu utilizamos la funcin ROUND la cual devuelve un valor numrico redondeado a la
longitud especificada en sus Args en este caso se redonde a 3 decimales.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #41
DECLARE @Valor float;
SET @Valor = 25.00;
SELECT SQRT(@Valor) [Raz Cuadrada];

--Funcin PI
SELECT PI();
GO

Aqu obtuvimos la raz cuadrada de un valor flotante almacenado en una variable, a travs
de la funcin SQRT. Se muestra el valor de la funcin PI, la cual, en s, solo contiene el
valor de la constante matemtica PI y puede ser utilizada en diversas operaciones.

Caso #42
-- Funcin SQUARE
DECLARE @Altura float, @Radio float;
SET @Altura = 5;
SET @Radio = 1;
SELECT PI()* SQUARE(@Radio)* @Altura AS [Volumen del Cilindro];
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Se calcula el volumen de un cilindro basndose en la formula matemtica, para este caso


usando la funcin PI, SQUARE que devuelve el cuadrado del valor especificado en sus
argumentos para el caso una variable, @Radio. Y tambin otra variable @Altura. Todo
esto multiplicado da como resultado el volumen del cilindro.

Caso #43
--Funcin SIGN
DECLARE @Valor1 real
DECLARE @Valor2 real
DECLARE @Valor3 real
SET @Valor1 = -1
SET @Valor2 = 0
SET @Valor3 = +1
SELECT SIGN(@Valor1) AS[Valor Negativo]
SELECT SIGN(@Valor2) AS[Valor Cero]
SELECT SIGN(@Valor3) AS[Valor Positivo]
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Utilizando la funcin SING podemos detectar el signo positivo (+1), cero (0) o negativo
(-1) de la expresin especificada en los argumentos de la funcin, para este caso los
valores establecidos en las variables.

Caso #44
--Funcin ABS
SELECT ABS(-1.0), ABS(0.0), ABS(1.0);

La funcin ABS nos devuelve el valor absoluto positivo de la expresin numrica


especificada en sus argumentos.

Caso #45
--Funcin EXP
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1
DECLARE @Valor float
SET @Valor = 10
SELECT 'El valor exponencial de la Variable es: ' + CONVERT(varchar,EXP(@Valor))
GO

Para este caso, mediante la funcin EXP obtenemos el valor exponencial del valor
establecido en la variable, el cual, al ser impreso, es convertido a travs de la funcin
CONVERT de un valor flotante a cadena.

----------------------------------------------------------------------------------------------------------
7. Funciones para el Manejo del Tipo de Datos Fecha y Hora
Ejecute el siguiente cdigo SQL y explique su comportamiento.
----------------------------------------------------------------------------------------------------------

Caso #46
-- Funcin GETDATE
SELECT GETDATE()[Fecha y Hora del Sistema]

SELECT CONVERT(Date, GETDATE())[Fecha]


UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

La primera consulta muestra a travs de la funcin GETDATE la fecha y hora del sistema.
Y, la segunda consulta convierte el resultado de la funcin, obteniendo solo la fecha, mas
no la hora.

Caso #47
-- Funcin DAY
SELECT DAY('2014/09/19');
SELECT DAY('19/09/2014');
SELECT DAY(GETDATE())

La funcin DAY devuelve un entero que representa el da del mes de la fecha especificada
en sus argumentos, independientemente de la estructura con la que se construya dicha
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

fecha, siempre y cuando sea correcta, es permitida. Para el caso ambas fechas son 19, a
diferencia de la ltima que hace referencia a la fecha en la cual estoy preparando este
informe, hoy 23 de agosto del 2016.

Caso #48
-- Funcin MONTH
SELECT MONTH('2014/09/19');
SELECT MONTH('19/09/2014');
SELECT MONTH(GETDATE())

Esta funcin MONTH devuelve el mes de la fecha especificada en sus argumentos, para
los dos primeros ejemplos, independientemente de la estructura de la fecha, reconoce que
pertenece al 9no mes del ao y el ultimo al mes segn la fecha del sistema.

Caso #49
--Funcin YEAR
SELECT YEAR('2014/09/19');
SELECT YEAR('19/09/2014');
SELECT YEAR(GETDATE())
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Esta funcin YEAR realiza la misma operacin que las funciones anteriores DAY,
MONTH. A diferencia que esta, como lo dice su nombre, devuelve el ao, de entre la
fecha especificada en sus argumentos.

Caso #50
--Funcin DATEADD

SELECT DATEADD(DAY, 10, '19/09/2014');


SELECT CONVERT(DATE,DATEADD(DAY, 10, '19/09/2014'));

SELECT DATEADD(month, 1, '19/09/2014');


SELECT CONVERT(DATE,DATEADD(month, 1, '19/09/2014'));

SELECT DATEADD(YEAR, 5, '19/09/2014');


SELECT CONVERT(DATE,DATEADD(YEAR, 5, '19/09/2014'));
GO
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

En este caso, utilizamos la funcin DATEADD que nos permite alterar valores de una
fecha establecida en sus argumentos, junto con las funciones day, month y year, para
especificar la parte de la fecha a modificar y un valor numrico que representara la suma
o lo que se le agregara al valor que este predefinido en la fecha, mediante su parte
seleccionada a ser modificada.

Caso #51
--Funcin DATEPART
SELECT DATEPART(Year, '19/09/2014') [AO]
,DATEPART(Month, '19/09/2014') [Mes]
,DATEPART(Day, '19/09/2014') [Da]

Esta funcin DATEPART devuelve de la fecha especificada en sus argumentos, la parte


que quieras obtener sea el mes, ao o da.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Caso #52
-- Funcin ISDATE
SELECT ISDATE('2014-09-19') [Fecha Vlida = 1 / Fecha Invlida = 0 ]
SELECT ISDATE('2014/09/19') [Fecha Vlida = 1 / Fecha Invlida = 0 ]
SELECT ISDATE('19/09/2014') [Fecha Vlida = 1 / Fecha Invlida= 0 ]
SELECT ISDATE('201409/19') [Fecha Vlida = 1 / Fecha Invlida= 0 ]
SELECT ISDATE('2014/0919') [Fecha Vlida = 1 / Fecha Invlida = 0 ]
GO

ISDATE, esta funcin devuelve 1 si es una fecha valida. De lo contrario devuelve 0. En


el ejemplo solo existe una coherente y bien escrita, la cual la funcin reconoce como
vlida.

Caso #53
--Funcin DATENAME
SELECT DATENAME(year, '19/09/2014') [AO]
,DATENAME(month, '19/09/2014') [Mes]
,DATENAME(weekday, '19/09/2014') [Da]
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

DATENAME, nos devuelve una cadena de caracteres que representara la parte de la fecha
especificada en el parmetro del argumento. Esta funcin presenta cierta similitud con
DATEPART, a diferencia que esta muestra los nombre de los das y meses
correspondientes, mas no en nmeros.
UNIVERSIDAD TECNOLGICA DE PANAM
FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE COMPUTACIN Y SIMULACIN DE SISTEMAS
GUA DE LABORATORIO N. #1

Resultados
A travs de la prctica de todos y cada uno de los diferentes cdigos, empleados en el
lenguaje estructurado de consultas (SQL). Nos ha llevado a obtener resultados muy
provechosos de aprendizajes con respecto a las nuevas consultas que se estuvieron
implementando en nuestra base de datos.
Hemos podido fortalecer y reforzar algunos conocimientos previos y adquirir nuevos
conocimientos o capacidades, algunas desconocidas, pero todas ellas entorno a las bases
de datos y el lenguaje universal de acceso a datos.
Mediante asignaciones como esta, nos lleva a cada uno como estudiantes obtener nuevos
conocimientos y fortalecer los que previamente tenamos de modo que desarrollando
estas asignaciones en las cuales tenemos que aplicar ciertos cdigos y luego redactar lnea
a lnea lo que est sucediendo en los cdigos ejecutados, nos lleva a un aprendizaje
practico de las nuevas estructuras de acceso de datos.

También podría gustarte