Está en la página 1de 12

Para crear una DB mediante codigo, se hace de la siguiente manera:

USE master GO CREATE DATABASE NombreDB GO ...

Para cambiar el nombre de una DB:


ALTER DATABASE NomActualDB MODIFY NAME = NuevoNombreDB GO

tambin:
EXEC SP_RENAMEDB 'NomActualDB', 'NvoNombreDB'

Para eliminar una DB:


DROP DATABASE NombreDB

BETWEEN AND: Se utiliza dentro del WHERE como una condicin para limitar dentro de un intervalo el resultado de una consulta:
SELECT * FROM Tabla WHERE Campo BETWEEN Valor1 AND Valor2

DISTINCT: Para eliminar tuplas que tengan los mismos datos al ejecutar la consulta:
SELECT DISTINCT Campo1, Campo2 FROM Tabla

FROM: Para definir las tablas de las cuales se van a seleccionar los campos:
SELECT * FROM Tabla

LIKE: Se utiliza dentro del WHERE como una condicin para comparar un campo en una cadena alfanumrica, es decir, para realizar una bsqueda dentro de los registros:
SELECT * FROM Tabla WHERE Campo LIKE 'NumeroCaracter%'

Para los criterios de bsqueda, tener en cuenta: '_' Resultados que contengan solo 1 carcter. '_ _' Resultados que contengan solo 2 caracteres, etc. (Lineas unidas) 'A%' Resultados que empiecen por A. '_A%' Resultados que su segundo carcter sea A. '_ _A%' Resultados que su tercer carcter sea A, etc. '%A%' Resultados que contengan A. 'A%B%' Resultados que empiecen por A y contengan B, etc. '%A%B%' Resultados que contengan A y B, etc. '_A%B%' Resultados que la segunda letra sea A y contengan B, etc. '[A-B]%' Resultados que esten entre A y B, etc. '[A-B]%' Resultados desde A hasta B, etc.

Diego A. Carrin Neira / Ing. Sistemas / 2012

'[A-B]%C%' '[A,B]%' '[A,B]%C%' 'A[BC]% ' '%A' '%A_'

Resultados desde A hsta B y que contenga C, etc. Resultados solo con A y B, etc. Resultados solo con A y B, que contengan C, etc. Resultados que empiecen con AB o AC, etc. Resultados que terminen en A. Resultados que cuya penultima letra sea A, etc.

IN: Se utiliza dentro del WHERE, para alterar el uso del OR. Su funcin es retornar en la consulta el resultado de al menos uno de los valores:
SELECT * FROM Tabla WHERE Campo IN ('Valor1', 'Valor2', 'ValorN')

ORDER BY: Para especificar el criterio de ordenacin del conjunto de resultados.


SELECT Campo1 FROM Tabla ORDER BY Campo1

Para ordenar de forma ascendente:


SELECT Campo1 FROM Tabla ORDER BY Campo1 ASC

Para ordenar de forma descendente:


SELECT Campo1 FROM Tabla ORDER BY Campo1 DESC

Para ordenar, tambin se puede con el nmero del campo:


SELECT Campo1, Campo2, Campo3 FROM Tabla ORDER BY 2 (Odenar solo el campo2)

Para especificar el orden, se puede con los nmeros de los campos:


SELECT Campo1, Campo2, Campo3 FROM Tabla ORDER BY 2, 1, 3 (Ordenar primero el campo2, luego el 1 y luego el 3)

ALIAS: Para cambiar temporalmente el nombre a una tabla, con el fin de facilitar el llamado de los campos. Este cambio no se aplica fsicamente, solo virtualmente:
SELECT TB.Campo1, TB.Campo2, TB.CampoN FROM Tabla AS TB

tambin:
SELECT TB.Campo1, TB.Campo2, TB.CampoN FROM Tabla TB

WHERE: Se utiliza despus del FROM para aplicar una condicin a la consulta:
SELECT * FROM Tabla WHERE Condicin

Diego A. Carrin Neira / Ing. Sistemas / 2012

CREATE Para crear una DB mediante codigo, se hace de la siguiente manera:


USE master GO CREATE DATABASE NombreDB ...

Para crear las tablas o registros que conformarn la base de datos:


CREATE TABLE Tabla (Campo1 TipoDato(Tamao) NOT NULL, Campo2 TipoDato(Tamao) NULL, ...)

Para declarar la PK dentro de la creacin de la tabla:


CREATE TABLE Tabla (Campo1 TipoDato(Tamao) NOT NULL, Campo2 TipoDato(Tamao) NULL, ... CONSTRAINT PKTabla PRIMARY KEY(Campo1))

Crear Vistas (create view) Una vista se puede considerar como una tabla virtual, lo que quiere decir que no almacena datos fsicamente. La podemos usar cuando nos interesa que los usuarios tengan acceso a una parte de la informacin de una tabla, pero no a toda la tabla:
CREATE VIEW NombreVista AS SELECT Campo1, Campo2, FROM Tabla

Para conocer el contenido de esta vista:


SELECT * FROM NombreVista

Crear ndices (create index) Un ndice permite acceder a diferentes registros de una misma tabla a travs de un campo (o campos clave), lo cual permite un acceso mucho ms rpido a los datos.
CREATE UNIQUE INDEX NombreIndice ON Tabla(PKCampo)

Para saber cual es el ndice de una tabla:


EXEC sp_helpindex 'Tabla'

Para ver todos los ndices de la base de datos activa creados:


SELECT NAME FROM SYSINDEXES WHERE NAME LIKE 'I%'

ALTER Para modificar o actualizar el valor asignado a una tabla:


ALTER TABLE Tabla SET CampoaModificar='NuevoValor' WHERE Condicion

Para aadir un nuevo campo a una tabla existente:


ALTER TABLE Tabla ADD NvoCampo TipoDato(Tamao)

Para modificar el tamao del campo de una tabla:


ALTER TABLE Tabla ALTER COLUMN Campo TipoDato(NvoTamao)

Diego A. Carrin Neira / Ing. Sistemas / 2012

Para modificar el nombre de un campo de la tabla:


EXEC sp_rename 'Tabla.CampoActual', 'NvoNombreCampo'

Para aadir un constraint, es decir, para asignar una restriccin a un campo:


ALTER TABLE Tabla ADD CONSTRAINT NombreConstraint CHECK(Parametros)

Para aadir una PK fuera de la creacin a una tabla, si no se le asign:


ALTER TABLE Tabla ADD CONSTRAINT PK PRIMARY KEY(CampoNvaPK)

Para cambiarle la PK a una tabla, primero se borra la que tiene por el constraint:
ALTER TABLE Tabla DROP CONSTRAINT NombreConstPK

Luego, se aade el constraint de la nueva PK:


ALTER TABLE Tabla ADD CONSTRAINT NomConstNvaPK PRIMARY KEY(CampoNvaPK)

Para aadir una FK fuera de la creacin a una tabla:


ALTER TABLE Tabla2 ADD CONSTRAINT FK FOREIGN KEY(CampoTabla2) REFERENCES Tabla1(CampoPKa)

DROP Para eliminar una DB:


DROP DATABASE NombreDB

Para eliminar una tabla de la DB:


DROP Table Tabla

Para eliminar un campo de una tabla:


ALTER TABLE Tabla DROP COLUMN Campo

Para eliminar un constraint de una tabla:


ALTER TABLE Tabla DROP CONSTRAINT NombreConstraint

Para eliminar el indice de una tabla:


DROP INDEX Tabla.NombreIndice

TRUNCATE Para eliminar todos los registros de una tabla, pero conservar la tabla:
TRUNCATE TABLE Tabla

INSERT Para insertar un nuevo registro a una tabla:


INSERT INTO Tabla(Campo1, Campo2,... CampoN) VALUES(ValorCampo1, ValorCampo2,... ValorCampoN)

Variantes: Tambin se pueden insertar si necesidad de poner los nombres de los campos:
INSERT INTO Tabla VALUES(Campo1, Campo2,... CampoN)

No interesa el orden en el que se pongan los campos:


INSERT INTO Tabla(Campo3, Campo1, Campo2,... ValorCampoN) VALUES(ValorCampo3, ValorCampo1, ValorCampo2,... ValorCampoN)

Se pueden poner solamente los campos que no admitan valores nulos:


INSERT INTO Tabla(Campo1, Campo2) VALUES(ValorCampo1, ValorCampo2)

Diego A. Carrin Neira / Ing. Sistemas / 2012

Donde los campos 1 y 2 se declararon NOT NULL inicialmente. Se pueden copiar todos los registros de una tabla a otra nueva tabla creada, siempre y cuando los campos esta ultima sean del mismo tipo de datos:
INSERT INTO NvaTablaaLlenar SELECT * FROM TablaActual

Se puede crear una copia exacta de una tabla existente, la cual va a contener los mismos campos con sus tipos de datos y los registros que tenga almacenados:
SELECT * INTO NombreTablaCopia FROM TablaActual

UPDATE Para actualizar o modificar el valor existente de un campo:


UPDATE Tabla SET Campo='NuevoValor' WHERE Condicion

DELETE Utilizada para eliminar uno o varios registros de un campo o tabla:


DELETE FROM Tabla WHERE Condicion

Para eliminar todos los registros de una tabla:


DELETE FROM Tabla

SELECT Indica que la sentencia de SQL que queremos ejecutar es de seleccin. Para mostrar un mensaje: SELECT ('Bienvenido a SQL Server!') Para mostrar un mensaje que concatene los valores adquiridos:
SELECT Campo1, ' mensaje ' AS ' ', Campo2 FROM Tabla2

Para mostrar solo algunos campos de una tabla con sus registros:
SELECT Campo1, Campo2, CampoN FROM Tabla

Para mostrar todos los campos de una tabla con sus registros:
SELECT * FROM Tabla

Para renombrar las columnas al mostrar sus registros:


SELECT Campo1, 'NombreaPoner', Campo2 AS 'NombreaPoner' FROM Tabla

ABS: Para hallar el valor absoluto:


SELECT ABS(Numero)

CEILING: Para mostrar el valor entero superior o igual a un nmero:


SELECT CEILING(Numero)

FLOOR: Para mostrar el valor entero inferior o igual a un nmero:


SELECT FLOOR(Numero)

POWER: Para calcular la potencia de un nmero:


SELECT POWER(Numero, Exponente)

Diego A. Carrin Neira / Ing. Sistemas / 2012

SQRT: Para calcular la raz cuadrada de un valor:


SELECT SQRT(Numero)

ASCII: Para convertir una letra o nmero a cdigo ASCII:


SELECT ASCII('LetraoNumero')

UNICODE: Para convertir una letra, cadena o nmero a UNICODE:


SELECT UNICODE('LetraCadenaoNumero')

LEN: Para mostrar la cantidad de caracteres que tiene un campo o una cadena: SELECT LEN(Campo) AS 'Culquier Nombre' FROM Tabla SELECT LEN('Hola Mundo') AS 'Culquier Nombre' DATALENGHT: Tambin se puede Utilizar: SELECT DATALENGTH(Campo) AS 'Culquier Nombre' FROM Tabla SELECT DATALENGTH('Hola Mundo') AS 'Culquier Nombre'

SUM: Para hallar la suma total de un campo nicamente numrico:


SELECT SUM(Campo) FROM Tabla

AVG: Para hallar el promedio de los valores de un campo numrico:


SELECT AVG(Campo) FROM Tabla

COUNT: Para hallar la cantidad de registros que hay en un campo:


SELECT COUNT(Campo) FROM Tabla

O tambin se puede con:


SELECT COUNT(*) FROM Tabla

MAX: Para hallar cual es el valor mximo que hay en un campo:


SELECT MAX(Campo) FROM Tabla

MIN: Para hallar cual es el valor mnimo que hay en un campo:


SELECT MIN(Nota1) FROM NOTAS

GROUP BY: Para cuando seleccionamos uno o ms campos de una tabla y aparece una funcin de agregacin aplicndose a un campo. Dentro de esta clusula solo se ponen los campos que no estn siendo operados por la funcin de agregacin.
SELECT Campo1, FunciondeAgregado(Campo2) FROM Tabla GROUP BY Campo1

Diego A. Carrin Neira / Ing. Sistemas / 2012

HAVING: Selecciona o rechaza un grupo de registros retornados por GROUP BY: Para el siguiente caso, mostrar el campo1 y el valor de la funcion de agregado del campo2, en donde este ultimo valor sea mayor, menor, diferente o igual a un valor dado:
SELECT Campo1, FunciondeAgregado(Campo2) FROM Tabla GROUP BY Campo1 HAVING FunciondeAgregado(Campo2)<>!==5Valor

CHAR: Para convertir un cdigo ASCII en una cadena de caracteres: SELECT CHAR(CodigoASCII) RTRIM: Para quitar los espacios en blanco que hayan por la derecha: SELECT RTRIM('ABC ') LTRIM: Para quitar los espacios en blanco que hayan por la izquierda: SELECT LTRIM(' ABC') LEFT: Para mostrar primeros n caracteres de una cadena: SELECT LEFT('Mensaje', Numero) RIGHT: Para mostrar ltimos n caracteres de una cadena: SELECT RIGHT('Mensaje', Numero) UPPER: Para cambiar un campo a mayscula: SELECT UPPER(Campo) AS Campo FROM Tabla LOWER: Para cambiar un campo a minscula: SELECT LOWER(Campo) AS Campo FROM Tabla Para cambiar los datos de forma permanente en la tabla a mayscula o a minscula: UPDATE Tabla SET Campo = UPPER(Campo) UPDATE Tabla SET Campo = LOWER(Campo) REPLACE: Para reemplazar una posicin en una cadena de caracteres:
SELECT REPLACE(CadenaoNumero, Posicion, Reemplazo)

STUFF: Para insertar una cadena dentro de otra existente:


SELECT STUFF('cadenainicial', posinicial, longitud, 'cadenaainsertar')

REVERSE: Para mostrar una cadena, campo o numero invertido: SELECT REVERSE(Campo) AS 'Culquier Nombre' FROM Tabla REPLICATE: Para repetir n veces una cadena o un valor de un campo:
SELECT REPLICATE('Cadena', Cantidad)

Diego A. Carrin Neira / Ing. Sistemas / 2012

SUBSTRING: Para mostrar una parte de una cadena o valor de un campo:


SELECT SUBSTRING('Cadena', Posicion, CantidadaMostrar)

CAST: Para extraer y operar cada uno de los caracteres de una cadena VARCHAR primero se convierte a INT:
SELECT CAST(SUBSTRING(CampoCadena, Posicion, CantidadaMostrar) AS INT) FROM TABLA

Luego, para operar cada uno de los caracteres de un campo de una cadena se hace la misma conversin anterior:
SELECT Nombre, Cedula, CAST(SUBSTRING(CampoCadena, Posicion, CantidadaMostrar) AS INT) + CAST(SUBSTRING(CampoCadena, Posicion, CantidadaMostrar) AS INT) + CAST(SUBSTRING(CampoCadena, Posicion, CantidadaMostrar) AS INT) + AS 'Nombre Campo' FROM Tabla

SPACE: Para mostrar n espacios en blanco:


SELECT SPACE(Numero)

Para mostrar un mensaje separado por n espacios:


SELECT 'Hola' + SPACE(Numero)+ 'Mundo!'

ROUND: Para redondear un decimal:


SELECT ROUND(Decimal, Numero)

TOP: Para mostrar n registros de una tabla:


SELECT TOP Cantidad(Campo) FROM Tabla

O, para mostrar todos los campos:


SELECT TOP Cantidad * FROM Tabla

Para mostrar la fecha y hora actual del sistema:


SELECT SYSDATETIME() SELECT GETDATE()

Para mostrar solo el da actual:


SELECT DAY(GETDATE())

Para mostrar solo el mes actual:


SELECT MONTH(GETDATE())

Para mostrar solo el ao actual:


SELECT YEAR(GETDATE())

DATEPART: Retorna la parte especfica de una fecha: Para mostrar el ao actual:


SELECT DATENAME(YEAR, GETDATE())

Para mostrar solamente el nmero mes actual:


SELECT DATEPART(MONTH, GETDATE())

Para mostrar cuantas semanas han transcurrido hasta ahora:


SELECT DATEPART(WEEK, GETDATE())

Para mostrar el nmero de das transcurridos del ao:

Diego A. Carrin Neira / Ing. Sistemas / 2012

SELECT DATEPART(DAYOFYEAR, GETDATE())

Para mostrar el da del mes actual:


SELECT DATEPART(DAY, GETDATE())

Para mostrar cuantas horas lleva el da actual:


SELECT DATEPART(HOUR, GETDATE())

Para mostrar los minutos de la hora actual:


SELECT DATEPART(MINUTE, GETDATE())

Para mostrar los segundos que lleva el minuto de la hora actual:


SELECT DATEPART(SECOND, GETDATE())

Para mostrar los milisegundos que lleva el segundo del minuto de la hora actual:
SELECT DATEPART(MILLISECOND, GETDATE())

DATENAME: Retorna el nombre de la parte especfica de una fecha: Para mostrar el ao actual:
SELECT DATENAME(YEAR, GETDATE())

Para mostrar solamente el nombre mes actual:


SELECT DATENAME(MONTH, GETDATE())

Para mostrar el nmero de das transcurridos del ao:


SELECT DATENAME(DAYOFYEAR, GETDATE())

Para mostrar el da actual:


SELECT DATENAME(DAY, GETDATE())

Para mostrar el nombre del da actual:


SELECT DATENAME(WEEKDAY, GETDATE())

DATEADD: Para agregar aos, meses, das, etc., a una fecha dada: Para agregar n aos a una fecha:
SELECT DATEADD(YEAR, Cantidad, 'YYYY-MM-DD')

Para agregar n meses a una fecha:


SELECT DATEADD(MONTH, Cantidad, 'YYYY-DD-MM')

Para agregar n das a una fecha:


SELECT DATEADD(DAY, Cantidad, 'YYYY-DD-MM')

Para agregar n horas a la fecha actual:


SELECT DATEADD(HOUR, Cantida, GETDATE())

Para agregar n minutos a la fecha actual:


SELECT DATEADD(MINUTE, 5, GETDATE())

As sucesivamente para las dems. DATEDIFF: Para calcular el intervalo de tiempo entre dos fechas: Para calcular los aos que hay de diferencia:
SELECT DATEDIFF(YEAR, 'YYYY-DD-MM', 'YYYY-DD-MM')

Para calcular los meses que hay de diferencia:


SELECT DATEDIFF(MONTH, 'YYYY-DD-MM', 'YYYY-DD-MM')

Para calcular los das que hay de diferencia:


SELECT DATEDIFF(DAY, 'YYYY-DD-MM', 'YYYY-DD-MM')

Para calcular las horas que hay de diferencia:


SELECT DATEDIFF(HOUR, 'YYYY-DD-MM', 'YYYY-DD-MM')

Para convertir una fecha:


SELECT CAST(Fecha AS DATETIME)

Diego A. Carrin Neira / Ing. Sistemas / 2012

CAST: Para cambiar el tipo de dato de un campo:


SELECT CAST(Campo AS NuevoTipoDato(Tamao)) FROM Tabla

UNION: Consiste en tomar dos tablas y obtener una tabla con las filas de las dos tablas, en el resultado aparecern las filas de una tabla y, a continuacin, las filas de la otra tabla. Las dos tablas deben tener el mismo nmero de columnas y el mismo tipo de datos. La tabla resultante hereda los encabezados de la primera tabla y solo puede haber una nica clausula ORDER BY (si se quiere) al final:
SELECT Tabla1.Campo FROM Tabla1 UNION SELECT Tabla2.Campo FROM Tabla2 ORDER BY Campo

Si se desea hacer la unin con ms tablas, se agrega otro UNION con la misma sintaxis. EXCEPT: Aparecen en la tabla resultante los registros de la primera tabla que no aparecen en la segunda:
SELECT Tabla1.Campo FROM Tabla1 EXCEPT SELECT Tabla2.Campo FROM Tabla2

INTERCECT: En el resultado de la interseccin aparecen las filas que estn simultneamente en las dos tablas:
SELECT Tabla1.Campo FROM Tabla1 INTERSECT SELECT Tabla2.Campo FROM Tabla2

Se obtiene una tabla con los campos de la primera tabla unidos a los campos de la segunda tabla, y los registros de la tabla resultante son todas las posibles concatenaciones de los registros de la primera tabla con los registros de la segunda tabla. Se agrega un WHERE para relacionar las dos tablas, la PK de una tabla con la FK de la otra:
SELECT Tabla1.Campo, Tabla2.Campo FROM Tabla1, Tabla2 WHERE Tabla1.CampoPK=Tabla2.CampoFK

Diego A. Carrin Neira / Ing. Sistemas / 2012

Si se quiere relacionar con una tercera tabla, se aade un AND al final del WHERE con el nombre de la siguiente tabla con la misma sintaxis:
SELECT Tabla1.Campo, Tabla2.Campo, Tabla3.Campo FROM Tabla1, Tabla2 WHERE Tabla1.CampoPK=Tabla2.CampoFK AND Tabla2.CampoPK=Tabla3.CampoPK

Permite combinar registros de dos o ms tablas en una base de datos relacional. Los posibles tipos de JOIN son: CROSS, INNER, LEFT, RIGHT, SELF, OUTER FULL. CROSS JOIN: Retorna el producto cartesiano de dos o ms tablas, es decir, combina cada registro de una tabla con cada registro de otra tabla. CROSS JOIN no debera llevar la clausula ON:
SELECT * FROM Tabla1 CROSS JOIN Tabla2

El CROSS, casi no se utiliza, ya que solo se puede utilizar una coma (,) para separar las tablas:
SELECT * FROM Tabla1,Tabla2

INNER JOIN: Se utiliza para cuando quiera relacionar dos tablas que tienen campos en comn (mismo tipo de dato y tamao) en una o ms columnas:
SELECT Tabla1.Campo, Tabla2.Campo FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.CampoPK=Tabla2.CampoFK

Si se quiere relacionar con una tercera tabla, se aade INNER JOIN al final del ON con el nombre de la siguiente tabla y con la misma sintaxis:
SELECT Tabla1.Campo, Tabla2.Campo, Tabla3.Campo FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.CampoPK=Tabla2.CampoFK INNER JOIN Tabla3 ON Tabla2.CampoPK=Tabla3.CampoPK

LEFT JOIN: Se utiliza cuando hay registros de la primera tabla que no estn relacionados con los registros de la segunda tabla y nos interesa que salgan en el resultado:
SELECT Tabla1.Campo, Tabla2.Campo FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.CampoPK=Tabla2.CampoFK

RIGHT JOIN: Se utiliza cuando hay registros de la segunda tabla que no estn relacionados con los registros de la primera tabla y nos interesa que salgan en el resultado:
SELECT Tabla1.Campo, Tabla2.Campo FROM Tabla1 RIGHT JOIN Tabla2 ON Tabla1.CampoPK=Tabla2.CampoFK

OUTER JOIN FULL JOIN: Combina los resultados de dos o ms tablas, tengan o no coincidencia entre s:
SELECT Tabla1.Campo, Tabla2.Campo FROM Tabla1 FULL JOIN Tabla2 ON Tabla1.CampoPK=Tabla2.CampoFK

Diego A. Carrin Neira / Ing. Sistemas / 2012

SELF JOIN: Se utiliza cuando un campo de una tabla debe referenciar un campo diferente en la misma tabla.

Diego A. Carrin Neira / Ing. Sistemas / 2012

También podría gustarte