Aprovecho que estoy en clase de base de datos para publicar algunas funciones de bases de datos SQL, específicamente para MS SQL Server.
Son los apuntes de lo que va del semestre en Aplicaciones de bases de datos, pueden venir a mano como referencia, o para aprenderse alguna nueva. La mayoría tienen su respectivo ejemplo aplicado a la bd, aunque se entienden bastante bien fuera de contexto.
El script de la base de datos lo adjunto como enlace a continuación:
Base de datos (bd.sql) - 5,22 Kb
Mayúsculas y minúsculas:
SELECT UPPER(Nombre), LOWER(Apellido) FROM estudiantes
Eliminar espacios:
SELECT LTRIM(' Aijuna!')
SELECT RTRIM('Nanuk ')
Longitud de un valor en un campo:
SELECT LEN(Nombre) FROM estudiantes
Función sub string: args(string, inicio, longitud)
SELECT SUBSTRING('Eoden',1,3)
Función buscar índice de caracter: args(char, string[, a partir de cuál])
SELECT CHARINDEX('n','Fernando', 5)
Función espacio:
– SET @valor = SPACE(9)
Función convertir a string:
STR(int)
Declaración de variables:
Formato:
DECLARE @NombreVar tipo
SET @NombreVar = Valor
Ejemplo:
DECLARE @Nombre char(8) DECLARE @Apellido char(6) DECLARE @valor char(50) DECLARE @Edad smallint SET @Edad = 41 SET @valor = 'Fernando Briano' SET @Nombre = Substring(@valor, 1, (charindex(' ', @valor) - 1 )) SET @Apellido = Substring(@valor, (charindex(' ', @valor) + 1), LEN(@valor)) SELECT @Nombre + ' ' + @Apellido + ' - edad: ' + CONVERT(char(3), @Edad) + ' años'
CONVERT:
CONVERT(Tipo, Campo o expresión, estilo)
El estilo en las FECHAS:
103 muestra: 23/05/1986
112 muestra: 19660523
114 muestra: hora
FUNCIONES CON FECHAS
DATEADD(partefecha (dd, mm, yy), número, fecha)
SELECT CONVERT(char(10), getdate(), 103) SELECT DATEADD(dd, 3, getdate())
DATEDIFF(partefecha, fecha1, fecha2)
Resta la parte de la fecha = fecha2 - fecha1
SELECT DATEDIFF(yy, '19850707', getdate()) SELECT DATEDIFF(yy,FechaNac, getdate()) FROM Estudiantes
DATEPART([dd,mm,y, dw(día de la semana)], fecha)
SELECT DATEPART(yy, getdate()) SELECT DATENAME(mm, getdate()) SELECT DAY(getdate())
SELECT E.Nombre, DATEDIFF(yy, E.FechaNac, getdate()) AS Edad, C.Descripcion , DATEDIFF(dd, FechaIngreso, getdate()) AS Antiguedad FROM estudiantes AS E, estudiantes_curso AS EC, cursos AS C WHERE EC.IdEstudiante = E.Ci
Redondear valores:
SELECT ROUND(479.90, -1)
ISDATE(campo)
Devuelve 1 si el campo contiene una fecha válida, sino devuelve 0
Valor nulo no es de tipo fecha
ISNUMERIC(campo)
Devuelve 1 si el campo contiene un valor numérico, sino devuelve 0
SELECT ISDATE(FechaIngreso) FROM estudiantes
IDENTIFICADOR UNICO:
DECLARE @Identificador UNIQUEIDENTIFIER SET @Identificador = NEWID() SELECT @Identificador
La función NEWID solamente funciona para columnas que hayan sido declaradas como UNIQUEIDENTIFIER
FUNCIONES DEL SISTEMA
Generalmente llevan “@@” adelante. Para encontrarlas, en la ayuda se puede buscar el string @@ que nos va a mostrar la mayoría de las que hay.
@@ROWCOUNT
Devuelve el número de filas afectadas por la última instrucción
Queda en cero cuando hubo error o no se realizó la instrucción.
SELECT * FROM estudiantes SELECT @@rowcount AS Columnas
UPDATE estudiantes SET FechaEgreso = '07/07/2007' WHERE Nombre='Eustakio' IF @@ROWCOUNT = 0 PRINT 'Santos Jalapeños enchilados Batman! No ha funcionado'
@@ERROR
Devuelve 0 si no hubo error, o distinto de cero con un código específico (véalo en el manual) con el error
@@IDENTITY
Muestra el último identity de la tabla. O sea, si por ejemplo hacemos una columna con valor int que va autoincrementando, y es identidad, al seleccionar éste valor, nos devuelve el último insertado.
Ver el usuario actual con el que se está logueado:
SELECT CURRENT_USERESTRUCTURA IF
IF BEGIN -- SENTENCIAs END ELSE BEGIN -- SENTENCIAS END
Ver mensajes del sistema:
Para usar la tabla master:
USE masteró agregar la “ruta absoluta”:
SELECT * FROM master.dbo.sysmessages
En la próxima clase, empiezo a ver vistas. Probablemente vaya publicando más apuntes más adelante.
Si te gustó éste post, podés apoyar a PicandoCódigo a través de PayPal!

Los contenidos de éste sitio se encuentran publicados bajo
JORGE
Septiembre 12, 2007 a las 1:34 pmMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
quisiera saber mas
fernando
Septiembre 12, 2007 a las 2:18 pmMozilla/5.0 (Windows; U; Windows NT 5.1; es-AR; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Gracias por visitar el blog. Voy a ir agregando más a medida que vaya avanzando en el curso. Espero que sirva.
Saludos
Miguel Carmona
Octubre 15, 2008 a las 11:31 amMozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.0.3) Gecko/2008091700 SUSE/3.0.3-1.1 Firefox/3.0.3
…[Funciones para mssql (Microsft SQL Server) miguelcarmona.name]…