Вы находитесь на странице: 1из 12

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Funciones Transact - SQL


Presentacin del Caso a Estudiar
Microsoft SQL Server dispone de funciones integradas para realizar ciertas operaciones rpidas y fcilmente. Las categoras en que se Objetivos: dividen las funciones son: Funcin host_name. Funciones del Sistema. Funciones de Conversin. Funciones de agregado. Funciones de cursores. Funciones de fecha y hora. Funcin matemtica. Funciones de metadatos. Funciones de conjuntos de filas. Funciones de seguridad. Funciones de cadena. Funciones de estadsticas del sistema. Funciones de texto e imagen. Funcin db_name. Funcin count. Funcin AVG. Funcin Sum. Funcin Max. Funcin Min. Funcin Isnull. Captulo III Funciones del Transact - SQL Funcin APP_NAME.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

FUNCIONES DE SISTEMA
Las funciones del sistema permiten que tenga acceso a la informacin de las tablas del sistema de Microsoft SQL Server sin tener acceso directamente a las tablas del sistema. Este grupo de cinco pares de funciones del sistema para bases de datos, hosts, objetos, inicios de sesin y usuarios devuelven un nombre cuando se les proporciona un identificador y devuelven un identificador cuando se les proporciona un nombre: Estas funciones ofrecen una forma fcil de convertir un nombre a un identificador, y un identificador a un nombre. Por ejemplo, use la funcin DB_ID para obtener un nmero de Id. De base de datos en lugar de ejecutar una instruccin SELECT de la tabla sysobjects. HOST_NAME Recupera el nombre del Servidor.

select HOST_NAME() as [Nombre del Servidor]

DB_NAME () recupera el nombre de la base de datos actual.

select DB_NAME () as [Base de Datos Actual]

USER_NAME () recupera el nombre del usuario actual conectado.

SELECT user_NAME ()as [Usuario Conectado]

APP_NAME () Devuelve el nombre de la aplicacin actual

Select app_name () as [Nombre de la aplicacin]

DATALENGTH (Expresin) Devuelve un entero que es numero de bites necesarios para representar esa expresin int

Select datalength ('Diego') as [Numero de bites]

ISDATE (Expresin) Dice si la expresin es una fecha o no. Devuelve 1 si la expresin es una fecha y 0 si no es una fecha.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Funciones del Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005 Select isdate ('15/07/08') as [Validacin Fecha]

ISNUMERIC (Expresion) Dice si la expresin es un numero o no. Devuelve 1 si la expresin es un nmero y 0 si la expresin no es nmero.

Select isnumeric ('ddd') as [Validacion Numero]

ISNULL (Expresin , Expresin Devuelta) Si la expresin es nula te devuelve la Expresin Devuelta y si no devuelve la primera Expresin

Select isnull (null,'No nulo') as [Es Nulo]

SYSTEM_USER Devuelve el usuario del sistema actual Depende de la autentificacin con la que te hayas conectado

Select system_user as [Usuario conectado]

UTILIZAR FUNCIONES MATEMTICAS


Una funcin matemtica realiza una operacin matemtica en expresiones numricas y devuelve el resultado de la operacin. Las funciones matemticas operan sobre datos numricos suministrados por el sistema Microsoft SQL Server (decimal, integer, float, real, money, smallmoney, smallint y tinyint). La precisin de las operaciones integradas para el tipo de datos float es, de forma predeterminada, de seis lugares decimales.

ROUND
Devuelve una expresin numrica, redondeada a la longitud o precisin especificada. Sintaxis ROUND (numero, longitud)

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Funciones del Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005 Ejemplos Resultado ROUND(748.58, -1) 750.00 ROUND(748.58, -2) 700.00 ROUND(748.58, -3) 1000.00 ROUND(123.4545, 2) 123.4500 ROUND(123.45, -2) 100.00

CEILING
Devuelve un nmero entero ms pequeo mayor o igual que la expresin numrica dada. Sintaxis CEILING (expressionNumerica) Este ejemplo muestra valores numricos positivos, negativos y cero con la funcin CEILING. SELECT CEILING($123.45), CEILING($-123.45), CEILING($0.0)

FLOOR
Devuelve el nmero entero ms grande menor o igual que la expresin numrica dada. Sintaxis FLOOR ( expresionNumerica ) Este ejemplo muestra valores numricos positivos, negativos y valores de moneda con la funcin FLOOR. SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR($123.45)

POWER
Devuelve el valor de la expresin indicada elevada a la potencia especificada. Sintaxis Power (Expresin numrica, Exponente) Ejemplo elevar el valor 2 al cubo SELECT POWER(2,3)

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Funciones del Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

SQRT
Devuelve la raz cuadrada de la expresin especificada. Sintaxis Power (Expresin numrica) --Se declara una variable de tipo Float DECLARE @myvalue float --Se utiliza el Set, para asignar un valor SET @myvalue = 16 --Se obtiene la raiz cuadrada de la variable SELECT SQRT(@myvalue)

UTILIZAR FUNCIONES DE TEXTOS


Estas funciones escalares realizan una operacin sobre una cadena de entrada y devuelven un valor de cadena o un valor numrico.

UPPER
Convierte de minsculas a maysculas Sintaxis UPPER (Expresin Texto) Ejemplo. En este ejemplo se utiliza la funcin UPPER para devolver el primer apellido del empleado concatenado con el nombre. Use poseidon SELECT UPPER(NOMBRE) + ', ' + APELLIDOS AS NAME FROM EMPLEADOS ORDER BY APELLIDOS

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Funciones del Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Lower
Convierte maysculas a minsculas. Sintaxis LOWER ( expressionTexto ) Ejemplo. Muestra los nombres de los clientes en minsculas. SELECT LOWER(NOMBRECOMPAA) FROM CLIENTES

Left
Extrae caracteres empezando por el lado izquierdo de la cadena especificada como expresion de texto Sintaxis

Left (expressionTexto,numeroCaracteres)
Este ejemplo devuelve los cinco caracteres situados ms a la izquierda de cada nombre del producto. SELECT LEFT(NOMBREPRODUCTO, 5) FROM PRODUCTOS

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Funciones del Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

RIGHT
Extrae caracteres empezando por el lado derecho de la cadena de caracteres Sintaxis: RIGHT ( expressionTexto , numeroCaracteres) Este ejemplo devuelve los cinco caracteres situados ms a la derecha de cada nombre del producto. SELECT RIGHT (NOMBREPRODUCTO, 5) FROM PRODUCTOS

L EN
Devuelve el nmero de caracteres de la expresin de cadena dada, excluidos los espacios finales en blanco. Sintaxis: LEN (expressionTexto) Ejemplo: SELECT NOMBREPRODUCTO, LEN (NOMBREPRODUCTO) AS TOTALCARACTERES FROM PRODUCTOS Captulo III Funciones del Transact - SQL Prof.: Cueva Valverde Diego Alberto - Instructor en T I diegoalberto_1987@hotmail.com

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

SUBSTRING
Devuelve una parte de una expresin de caracteres Sintaxis SUBSTRING (expressionTexto, Posicion inicial, numeroCaracteres) En el ejemplo siguiente se muestra cmo obtener parte de una cadena de caracteres. En la tabla Empleados, esta consulta obtiene los apellidos en una columna y slo la primera inicial en la segunda columna. SELECT nombre, SUBSTRING(Apellidos, 1, 1) FROM empleados ORDER BY Apellidos

REPLACE
Reemplaza por una tercera expresin todas las apariciones de la segunda expresin de cadena proporcionada en la primera expresin de la cadena. Sintaxis REPLACE (expressionTexto1, expressionTexto2, expressionTexto3) En este ejemplo se reemplaza la cadena "cde" de "abcdefghi" por "xxx". SELECT REPLACE('abcdefghicde','cde','xxx') Captulo III Funciones del Transact - SQL diegoalberto_1987@hotmail.com

SPACE
Devuelve una cadena de espacios repetidos. Sintaxis SPACE (expressionNumero)

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005 En el ejemplo siguiente se corta el apellido de cada cliente y se concatena una coma, dos espacios y su nombre. SELECT RTRIM(Nombre) + ',' + SPACE(2) + LTRIM(apellidos) FROM Empleados ORDER BY Nombre, Apellidos

CH A R
Una funcin de cadena que convierte un cdigo ASCII int en un carcter. Sintaxis CHAR (expresionNumerica) Este ejemplo utiliza CHAR (13) para imprimir la informacin de nombre, direccin y ciudad en lneas separadas, cuando los resultados se devuelven en texto. SELECT Nombre + ' ' + Apellidos, + CHAR(13) + Direccin, + CHAR(13) + Ciudad + Pas FROM Empleados WHERE IdEmpleado = 1 El siguiente es el conjunto de resultados:

REPLICATE
Repite una expresin de caracteres un nmero especificado de veces. Sintaxis REPLICATE (expressionTexto, numero Veces) En este ejemplo se duplica el nombre de cada Empleado dos veces. SELECT REPLICATE(Nombre, 2) FROM Empleados ORDER BY nombre Captulo III Funciones del Transact - SQL

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

ST R
Devuelve datos de tipo carcter obtenidos a partir de datos numricos. Sintaxis STR (expresin Numrica) En el ejemplo siguiente se convierte una expresin formada por cinco dgitos y un separador decimal en una cadena de caracteres de seis posiciones. La parte fraccionaria del nmero se redondea a un lugar decimal. SELECT STR (123.45, 6, 1)

FUNCIONES DE CONVERSION
CAST y CONVERT
Convierten una expresin de un tipo de datos en otro. CAST y CONVERT proporcionan funciones similares. Captulo III Funciones del Transact - SQL Este ejemplo concatena expresiones mediante la funcin de conversin de tipos de datos CAST.

Este ejemplo convierte una columna de tipo int (la columna idPedido) en una columna de tipo char(20) para poder utilizarla en una clusula LIKE. Mostrar los pedidos cuyo el mes de la fechaPedido sea igual Agosto y el numero de pedido empieze en los nmeros 12.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

10

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

La function GetDate() devuelve la Fecha y la hora Actual en este formato. Si desea obtener solo la fecha en formato Da Mes Ao sin incluir la hora actual haga lo siguiente. SELECT CONVERT(VARCHAR(8),GETDATE(),3)

SELECT CONVERT(VARCHAR(10),GETDATE(),103)

COMANDOS SET
El lenguaje de programacin Transact-SQL ofrece varias instrucciones SET que alteran el tratamiento de informacin de SQL SERVER. Las instrucciones SET se dividen en las siguientes categoras. Categora Fecha y hora Bloqueo Varias Ejecucin de consultas Valores de SQL-92 Estadsticas Transacciones Altera la configuracin de la sesin actual para Tratar datos de fecha y hora. Tratar el bloqueo en Microsoft SQL Server Diversa funcionalidad de SQL Server. Ejecutar y procesar consultas. Utilizar la configuracin predeterminada de SQL-92. Presentar informacin estadstica. Tratar transacciones de SQL Server. Captulo III Funciones del Transact - SQL

SET DATEFIRST
Establece como primer da de la semana un nmero del 1 al 7. Sintaxis: SET DATEFIRST { number | @number_var } Es un entero que indica el primer da de la semana y puede tener uno de los valores siguientes.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

11

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005


Valor 1 2 3 4 5 6 7 (predeterminado, Ingls EE.UU.) Primer da de la semana: Lunes Martes Mircoles Jueves Viernes Sbado Domingo

Puede utilizar la funcin @@DATEFIRST para conocer el valor actual de SET DATEFIRST. SELECT @@DATEFIRST.

SET DATEFORMAT
Determina el orden de las partes de la fecha (mes/da/ao) para escribir datos de tipo datetime o smalldatetime. Sintaxis SET DATEFORMAT {format | @format_var} Este valor slo se utiliza en la interpretacin de las cadenas de caracteres cuando se convierten en valores de fecha. No tiene ningn efecto en la presentacin de los valores de fecha. En este ejemplo se usan distintos formatos de fecha para tratar cadenas de fecha con formatos diferentes.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

12

Captulo III Funciones del Transact - SQL