Sie sind auf Seite 1von 20

http://lvsistemas.blogspot.pe/p/vb.

html

CREAR BASE DE DATOS EN SQL

/*ESCRIPT PARA LA
CREACION UNA BASE DE DATOS */
CREATE DATABASE BD
ON
PRIMARY
(NAME=EJEMPLODATA,FILENAME='D:\VIDAL\LVIDAL\LVSISTEMAS\LV_SISTEMAS\Sist-Remot\BD\BD.MDF',
SIZE=10MB,
MAXSIZE=15MB,
FILEGROWTH=20%)
LOG ON
(NAME=EJEMPLOLOG,FILENAME='D:\VIDAL\LVIDAL\LVSISTEMAS\LV_SISTEMAS\Sist-Remot\BD\BD.LDF',
SIZE=5MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
COLLATE SQL_LATIN1_GENERAL_CP1_CI_AS
/* CREACION DE UNA TABLA Y ADICIONAR NUEVOS
CAMPOS
*/
USE BD
GO
CREATE TABLE DBO.USUARIO
(ID INT IDENTITY(1,1),
NOMBRE NVARCHAR(20) NULL,
CI NVARCHAR(09) NULL,
EMAIL NVARCHAR(30) NULL,
USUARIO NVARCHAR(20) NULL,
CLAVE NVARCHAR(20) NULL,
NIVEL NVARCHAR(15) NULL,
FECHA NVARCHAR(10) NULL,)
GO

CONSULTAS SQL - SELECT


/*--LA CONSULTA MUESTRA TODAS LAS TABLAS DE LA BASE DE DATOS*/

http://lvsistemas.blogspot.pe/p/vb.html

SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'


/*--LA CONSULTA MUESTRA TODAS LAS VISTAS DE LA BASE DE DATOS*/
SELECT NAME FROM SYSOBJECTS WHERE TYPE='V'
/*--LA CONSULTA MUESTRA TODOS LOS PROCEDIMIENTOS DE LA BASE DE DATOS*/
SELECT NAME FROM SYSOBJECTS WHERE TYPE='P'
/*--LA CONSULTA MUESTRA TODOS LOS TRIGGERS DE LA BASE DE DATOS*/
SELECT NAME FROM SYSOBJECTS WHERE TYPE='T'
/*--LA CONSULTA MUESTRA TODAS LAS LLAVES FORANEAS DE LA BASE DE DATOS*/
SELECT NAME FROM SYSOBJECTS WHERE TYPE='F'
/*--LA CONSULTA MUESTRA TODAS LAS LLAVES PRIMARIAS DE LA BASE DE
DATOS*/
SELECT NAME FROM SYSOBJECTS WHERE TYPE='K'
/*--LA CONSULTA MUESTRA TODOS LOS OBJETOS DEL SISTEMA DE LA BASE DE
DATOS*/
SELECT NAME FROM SYSOBJECTS WHERE TYPE='S'
/*--LA CONSULTA MUESTRA TODOS LOS OBJETOS DE LA BASE DE DATOS: TABLAS,
PROCEDIMIENTOS ALMACENADOS, ETC.*/
SELECT CAST(TABLE_NAME AS VARCHAR) FROM INFORMATION_SCHEMA.TABLES
/*--LA CONSULTA MUESTRA TODAS LAS BASES DE DATOS, PERO NO MUESTRA LAS DE
SISTEMA: MASTER,MODEL, MSDB Y TEMDB*/
SELECT NAME FROM MASTER.DBO.SYSDATABASES WHERE NAME NOT IN
('MASTER','MODEL','MSDB','TEMPDB')

QUERY SQL
/*--SQLQUERY_AGREGAR*/
USE INVENTARIO
GO
INSERT ZONAS (ID, DESCRIPCION,OBSERVACIONES,VENTAS)
VALUES (1,'MARACAIBO','VENTAS ALTAS',200)
GO
/*--SQLQUERY_AGREGAR CAMPOS*/

http://lvsistemas.blogspot.pe/p/vb.html
USE INVENTARIO
GO
ALTER TABLE ZONAS ADD MONTO MONEY NULL
/*--SQLQUERY_AGREGAR RERISTROS DEFAULT*/
USE INVENTARIO
GO
INSERT ZONAS (ID, DESCRIPCION,OBSERVACIONES,VENTAS)
VALUES (2,DEFAULT,DEFAULT,DEFAULT)
GO
/*--SQLQUERY_BORRAR BD*/
DROP DATABASE NOMINA
/*--SQLQUERY_BORRAR TABLA*/
USE INVENTARIO
GO
DROP TABLE CLIENTES
/*--SQLQUERY_CONSULTA CAMPO CALCULADOS*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,(SUELDO+SUELDO*0.40) AS
SUELDO_NUEVO
FROM EMPLEADOS
/*--SQLQUERY_CONSULTA MLTIPLES TABLAS*/
USE INVENTARIO
GO
SELECT CODIGO,
ARTICULOS.DESCRIPCION,
TIPO,
PRECIO,
CANTIDAD,
ARTICULOS.ID_CATALOGO,
CATALOGO.DESCRIPCION,
CATALOGO.OBSERVACIONES
FROM ARTICULOS,CATALOGO
WHERE (ARTICULOS.ID_CATALOGO=CATALOGO.ID_CATALOGO)
/*--SQLQUERY_CONTAR REGISTROS*/
USE INVENTARIO
GO
SELECT COUNT (ID_EMPLEADO) AS TOTAL_EMPLEADOS
FROM EMPLEADOS
/*--SQLQUERY_CREAR TABLA*/

http://lvsistemas.blogspot.pe/p/vb.html
USE INVENTARIO
GO
CREATE TABLE ZONAS (ID INT,DESCRIPCION VARCHAR(10) NOT
NULL,OBSERVACIONES TEXT NULL)
GO
/*--SQLQUERY_CREAR TABLA ESPECIAL*/
USE INVENTARIO
GO
CREATE TABLE CLIENTES (CODIGO UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(),
NOMBRE VARCHAR(20)NOT NULL, APELLIDO VARCHAR(20) NOT NULL)
/*--SQLQUERY_CREAR TIPOS DE DATOS*/
USE INVENTARIO
GO
EXEC SP_ADDTYPE NOTAS,'VARCHAR(10)',NULL
/*--SQLQUERY_ELIMINAR CAMPOS*/
USE INVENTARIO
GO
ALTER TABLE ZONAS DROP COLUMN MONTO
/*--SQLQUERY_ELIMINAR OR*/
USE INVENTARIO
GO
DELETE ZONAS WHERE (VENTAS= 100 OR VENTAS=120)
/*ELIMINA TODOS LOS REGISTROS DE LA TABLA ZONAS QUE
EN EL CAMPO VENTAS SEAN IGUAL A 100 O A 120*/
/*--SQLQUERY_ELIMINAR POR UN RANGO DE DATOS*/
USE INVENTARIO
GO
DELETE ZONAS WHERE (VENTAS>= 150 OR VENTAS<=250)
/*--SQLQUERY_ELIMINAR TABLA*/
USE INVENTARIO
GO
DROP TABLE ZONAS2
GO
/*--SQLQUERY_ESCALAR FUNCIONES*/
USE INVENTARIO
SELECT MIN(SUELDO) AS MINIMO,
MAX(SUELDO) AS MAXIMO,
AVG(SUELDO) AS PROMEDIO,

http://lvsistemas.blogspot.pe/p/vb.html
SUM(SUELDO) AS SUMATORIA
FROM EMPLEADOS
/*--SQLQUERY_FILTRO BETWEEN*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO
FROM EMPLEADOS
WHERE (SUELDO>=100 AND SUELDO<=500)
/* OTRA MANERA DE HACER EL MISMO FILTRO:
WHERE SUELDO BETWEEN 100 AND 500*/
/*--SQLQUERY_FILTRO CON% OPERADOR LIKE*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO
FROM EMPLEADOS
WHERE NOMBRE LIKE 'A%' AND SUELDO >=100
/*--SQLQUERY_FILTRO DE DISTINTINOS CAMPOS*/
USE INVENTARIO
GO
SELECT DISTINCT CARGO
FROM EMPLEADOS
ORDER BY CARGO
/*--SQLQUERY_FILTRO DE LOS 3 PRIMEROS REGISTROS*/
USE INVENTARIO
GO
SELECT TOP 3 ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO
FROM EMPLEADOS
ORDER BY APELLIDO ASC
/*PARA FILTRAR EL PRIMER REGISTRO
USE INVENTARIO
GO
SELECT TOP 1 ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO
FROM EMPLEADOS*/
/*--SQLQUERY_FILTRO DOBLE*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,CARGO
FROM EMPLEADOS
WHERE (ID_EMPLEADO=1)
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,CARGO
FROM EMPLEADOS

http://lvsistemas.blogspot.pe/p/vb.html
WHERE (CARGO='GERENTE')
GO
/*--SQLQUERY_FILTRO ORDER BY*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO
FROM EMPLEADOS
ORDER BY SUELDO DESC
/*ASC
DESC*/
/*--SQLQUERY_FILTRO POR WHERE IN*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,CARGO
FROM EMPLEADOS
WHERE CARGO IN ('GERENTE','ANALISTA')
/*--SQLQUERY_FILTRO UNIENDO COLUMNAS*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO AS CODIGO,NOMBRE+' '+ APELLIDO AS EMPLEADO, SUELDO
AS SUELDO,CARGO
FROM EMPLEADOS
WHERE CARGO IS NULL
/*FILTRADO PARA UNIR DOS CAMPOS EN UNO SOLO ES DECIR EN ESTE EJEMPLO
APARECE EL NOMBRE Y EL APELLIDO EN UNA MISMA COLUMNAS*/
/*--SQLQUERY_FILTRO USO DE LITERALES*/
USE INVENTARIO
GO
SELECT NOMBRE,APELLIDO,'CODIGO DEL EMPLEADO',ID_EMPLEADO
FROM EMPLEADOS
GO
/*--SQLQUERY_FILTRO X CAMPOS NULL*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO, NOMBRE, APELLIDO, SUELDO, CARGO
FROM EMPLEADOS
WHERE CARGO IS NULL
/*SI SE LE COLOCA * A LADO DE SELECT TOMARIA TODOS LOS CAMPOS DE LA
TABLA*/
/*--SQLQUERY_INSERT TRANSACTION*/

http://lvsistemas.blogspot.pe/p/vb.html

USE INVENTARIO
GO
BEGIN TRANSACTION
/*PRIMERA TRANSACCIN*/
INSERT INTO ZONAS (DESCRIPCION,OBSERVACIONES,VENTAS)
VALUES ('MARGARITA','EXCELENTES VENTAS',800)
/*SEGUNDA TRANSACCION*/
INSERT INTO ZONAS (DESCRIPCION,OBSERVACIONES,VENTAS)
VALUES ('PUERTO ORDAZ','MALAS VENTAS',50)
COMMIT TRANSACTION
/*--SQLQUERY_INSERT TRANSACTION_ROLLBACK TRANSACTION*/
USE INVENTARIO
BEGIN TRANSACTION
INSERT INTO CATALOGO(ID_CATALOGO,DESCRIPCION,OBSERVACIONES)
VALUES ('PERFUMERIA','COSMETICOS','INFORMACION ERRADA')
INSERT INTO CATALOGO(ID_CATALOGO,DESCRIPCION,OBSERVACIONES)
VALUES ('OTROS','ARTICULOS','SIN INFORMACION')
/*ROLLBACK TRANSACTION: SE UTILIZA PARA QUE NO REALIZAR LA OPERACION*/
COMMIT TRANSACTION
/*--SQLQUERY_INSERTAR CON SELECT (APPEN FROM)*/
USE INVENTARIO
GO
INSERT ZONAS2 SELECT ID,DESCRIPCION,OBSERVACIONES,VENTAS FROM ZONAS
WHERE (VENTAS>100)
GO
/*INSERTA EN LA TABLA ZONAS2 TODOS LOS REGISTROS MAYOR QUE 100
EXISTENTES EN LA TABLA ZONAS*/
/*--SQLQUERY_MODIFICAR CON CONDICION*/
USE INVENTARIO
GO
UPDATE ZONAS SET DESCRIPCION='CARACAS',
OBSERVACIONES='VENTAS REGULARES',
VENTAS=200
WHERE (ID=21)
/*--SQLQUERY_MODIFICAR CON CONDICION REALIZANDO RANGOS DE
REGISTROS*/

http://lvsistemas.blogspot.pe/p/vb.html

USE INVENTARIO
GO
UPDATE ZONAS SET VENTAS=VENTAS+VENTAS*0.50
WHERE (VENTAS>=100 AND VENTAS<=400)
/*ACTUALIZA POR RANGOS DE DATOS*/
/*--SQLQUERY_MODIFICAR Y COLOCAR %*/
USE INVENTARIO
GO
UPDATE ZONAS SET VENTAS=VENTAS+VENTAS*0.20
GO
/*MODIFICA LAS VENTAS Y LE SUMAN UN 20% A CADA UNO DE LOS REGISTROS*/
/*--SQLQUERY_PROMEDIO*/
USE INVENTARIO
GO
SELECT COUNT(SUELDO) AS CONTEO,
SUM(SUELDO) AS SUMATORIA,
AVG(SUELDO) AS PROMEDIO
FROM EMPLEADOS
/*--SQLQUERY_RESPALDO BD*/
BACKUP DATABASE PRUEBA
TO DISK='C:\RESPALDO SQL LV\PRUEBA_LV.BAK'
WITH
FORMAT
/*--SQLQUERY_RESTAURACION BD*/
RESTORE DATABASE PRUEBA FROM DISK='C:\RESPALDO SQL LV\PRUENA_LV.BAK'
/*--SQLQUERY_SELECT CALCULO DEL SUELDO X DIAS*/
USE INVENTARIO
GO
SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,DIAS,(SUELDO*DIAS) AS
TOTAL_A_COBRAR
FROM EMPLEADOS
WHERE (DIAS>=5)
/*--SQLQUERY_SELECT INSERT*/
USE INVENTARIO
GO
SELECT ID AS CODIGO,DESCRIPCION AS CONCEPTO,OBSERVACIONES AS
COMENTARIOS,VENTAS AS MONTO,(VENTAS*2) AS VENTABOBLE
INTO RESPALDOZONAS FROM ZONAS
GO

http://lvsistemas.blogspot.pe/p/vb.html

/*--SQLQUERY (ELIMINAR TODO LOS REGISTROS DE UNA TABLA)*/


USE INVENTARIO
GO
TRUNCATE TABLE ZONAS2
GO

/*ELIMINA TODOS LOS REGISTRO DE LA TABLA*/

SINTAXIS SQL
SELECT

SELECT "NOM DE COLOMNA" FROM "NOMBRE_TABLA"


DISTINCT
SELECT DISTINCT "NOMBRE_COLUMNA"
FROM "NOMBRE_TABLA"
WHERE
SELECT "NOMBRE_COLUMNA"
FROM "NOMBRE_TABLA"
WHERE "CONDITION"
AND/OR
SELECT "NOMBRE_COLUMNA"
FROM "NOMBRE_TABLA"
WHERE "CONDICIN SIMPLE"
{[AND|OR] "CONDICIN SIMPLE"}+
IN
SELECT "NOMBRE_COLUMNA"
FROM "NOMBRE_TABLA"
WHERE "NOMBRE_COLUMNA" IN ('VALOR1', 'VALOR2', ...)
BETWEEN
SELECT "NOMBRE_COLUMNA"
FROM "NOMBRE_TABLA"
WHERE "NOMBRE_COLUMNA" BETWEEN 'VALOR1' AND 'VALOR2'
LIKE
SELECT "NOMBRE_COLUMNA"
FROM "NOMBRE_TABLA"
WHERE "NOMBRE_COLUMNA" LIKE {PATRN}

http://lvsistemas.blogspot.pe/p/vb.html
ORDER BY
SELECT "NOMBRE_COLUMNA"
FROM "NOMBRE_TABLA"
[WHERE "CONDICIN"]
ORDER BY "NOMBRE_COLUMNA" [ASC, DESC]
COUNT
SELECT COUNT("NOMBRE_COLUMNA")
FROM "NOMBRE_TABLA"
GROUP BY
SELECT "NOMBRE_COLUMNA 1", SUM("NOMBRE_COLUMNA 2")
FROM "NOMBRE_TABLA"
GROUP BY "NOMBRE_COLUMNA 1"
HAVING
SELECT "NOMBRE_COLUMNA 1", SUM("NOMBRE_COLUMNA 2")
FROM "NOMBRE_TABLA"
GROUP BY "NOMBRE_COLUMNA 1"
HAVING (CONDICIN DE FUNCIN ARITMTICA)
CREATE TABLE
CREATE TABLE "NOMBRE_TABLA"
("COLUMNA 1" "TIPO_DE_DATOS_PARA_COLUMNA_1",
"COLUMNA 2" "TIPO_DE_DATOS_PARA_COLUMNA_2",
... )
DROP TABLE
DROP TABLE "NOMBRE_TABLA"
TRUNCATE TABLE
TRUNCATE TABLE "NOMBRE_TABLA"
INSERT INTO
INSERT INTO "NOMBRE_TABLA" ("COLONNE 1", "COLONNE 2", ...)
VALORS ("VALOR 1", "VALOR 2", ...)
UPDATE
UPDATE "NOMBRE_TABLA"
SET "COLONNE 1" = [NUEVO VALOR]
WHERE {CONDITION}
DELETE FROM
DELETE FROM "NOMBRE_TABLA"

http://lvsistemas.blogspot.pe/p/vb.html
WHERE {CONDICIN}

BACKUP SQL

/*--SQLQUERY_BACKUP COPIA DE SEGURIDAD DE UNA BASE DE DATOS*/


/*
BACKUP COPIA DE SEGURIDAD DE UNA BASE DE DATOS
NOTA: SE DEBE CAMBIAR EL MODELO DE RECUPERANCION DE LA BASE DE DATOS A
LA HORA DE RECUPERAR:
IR A:
CLIC DERECHO EN LA BASE DE DATOS
>>PROPIEDADES
>>OPCIONES
>>MODELO DE RECUPERACION --> COMPLETA
*/
-- EJEMPO 1:
-- SCRIT PARA LA CREACION DE RESPALDOS DIRECTOS
-- SIN LA CREACION DE DISPOSITIVOS O VOLUMENES LOGICAS
USE MASTER
BACKUP DATABASE EJEMPLO
TO DISK='C:\LVIDAL(SQL CURSO INTERMEDIOAVANZADO)\SQLQUERY\RESPALDO.BAK'
-- EJEMPLO 2:
-- SCRIPT PARA LA CREACION DE RESPALDOS HACIENDO
-- USO EXCLUSIVO DE DIDPOSITIVOS DE ALMACENAMIENTO
USE MASTER
EXEC SP_ADDUMPDEVICE 'DISK','EJEMPLOBACKUP2','C:\LVIDAL(SQL CURSO
INTERMEDIO-AVANZADO)\SQLQUERY\RESPALDO2.BAK'
BACKUP DATABASE EJEMPLO TO EJEMPLOBACKUP2
-- EJEMPLO 3:
-- SCRIPT PARA EL RESPALDO DIFERENCIAL DE LA BASE DE DATOS
-- RESPALDA LOS UNTIMOS CAMBIOS DE LA BASE DE DATOS COM
-- UN RESPALDO COMPLETO YA REALIZADO
BACKUP DATABASE EJEMPLO
TO DISK='C:\LVIDAL(SQL CURSO INTERMEDIOAVANZADO)\SQLQUERY\RESPALDO_DIFERENCIAL.BAK' WITH DIFFERENTIAL
-- EJEMPLO 4:
-- SCRIPT PARA LA CREACION DE RESPALDOS DEL LOG DE TRANSACCIONES
-- HACIENDO USO EXTENSIVO DE DISPOSITIVOS DE ALMACENAMIENTO

http://lvsistemas.blogspot.pe/p/vb.html

EXEC SP_ADDUMPDEVICE 'DISK','EJEMPLOBACKUP','C:\LVIDAL(SQL CURSO


INTERMEDIO-AVANZADO)\SQLQUERY\EJEMPLOBACKUPLOG'
BACKUP DATABASE EJEMPLO TO EJEMPLOBACKUP2
BACKUP LOG EJEMPLO TO EJEMPLOBACKUP
BACKUP DESDE .NET:
DIM SBACKUP AS STRING = "BACKUP DATABASE " & ME.TXTBASE.TEXT & _
" TO DISK = N'" & ME.TXTBACKUP.TEXT & _
"' WITH NOFORMAT, NOINIT, NAME =N'" & ME.TXTBASE.TEXT & _
"' -FULL DATABASE BACKUP',SKIP, STATS = 10"
DIM CSB AS NEW SQLCONNECTIONSTRINGBUILDER
CSB.DATASOURCE = ME.TXTSERVIDOR.TEXT
CSB.INITIALCATALOG = ME.TXTBASE.TEXT
CSB.INTEGRATEDSECURITY = TRUE
USING CON AS NEW SQLCONNECTION(CSB.CONNECTIONSTRING)
TRY
CON.OPEN()
DIM CMDBACKUP AS NEW SQLCOMMAND(SBACKUP, CON)
CMDBACKUP.EXECUTENONQUERY()
MESSAGEBOX.SHOW("SE HA CREADO UN BACKUP DE LA BASE DE DATOS
SATISFACTORIA
"COPIA DE SEGURIDAD DE BASE DE DATOS", _
MESSAGEBOXBUTTONS.OK, MESSAGEBOXICON.INFORMATION)
CON.CLOSE()
CATCH EX AS EXCEPTION
MESSAGEBOX.SHOW(EX.MESSAGE, _
"ERROR AL COPIAR LA BASE DE DATOS", _
MESSAGEBOXBUTTONS.OK, MESSAGEBOXICON.ERROR)
END TRY
END USING

FILTROS SQL

FILTROS SQL

'DEPENDE UN POCO DE LA ESTRUCTURA QUE TENGAN TUS TABLAS Y DE CUNDO


CONSIDERAS QUE HAY DIFERENCIAS.
'SI IMAGINAMOS DOS TABLAS (TABLA1 Y TABLA2) CON LA ESTRUCTURA ID,
CAMPO1,CAMPO2 DONDE ID ES LA CLAVE PRIMARIA, PODRAS:
1) ENCONTRAR LOS REGISTROS DE TABLA1 QUE NO EXISTEN EN TABLA2 DE
LA SIGUIENTE MANERA:

http://lvsistemas.blogspot.pe/p/vb.html

SELECT [TABLA1].* FROM [TABLA1] LEFT JOIN [TABLA2] ON [TABLA1].[ID] =


[TABLA2].[ID] WHERE [TABLA2].[ID] IS NULL
2) ENCONTRAR LOS REGISTROS DE TABLA2 QUE NO EXISTEN EN TABLA1 DE
LA SIGUIENTE MANERA:
SELECT [TABLA2].* FROM [TABLA1] RIGHT JOIN [TABLA2] ON [TABLA1].[ID] =
[TABLA2].[ID] WHERE [TABLA1].[ID] IS NULL
3) ENCONTRAR LOS REGISTROS DE TABLA1 Y TABLA2 QUE, CON LA MISMA
CLAVE, TIENEN ALGUNA DIFERENCIA EN EL VALOR DE ALGUNO DE LOS
OTROS CAMPOS, DE LA SIGUIENTE MANERA:
SELECT [TABLA1].*, [TABLA2].* FROM [TABLA1] INNER JOIN [TABLA2] ON
[TABLA1].[ID] = [TABLA2].[ID] WHERE [TABLA1].[CAMPO1]

UNIR 4 O MAS TABLAS EN UN INNER JOIN


COMO UNIR 4 O MAS TABLAS EN UN INNER JOIN
SELECT
//AQU COLOCA LOS CAMPOS QUE DESEAS VISUALIZAR SEGN LAS TABLAS
TABLA1.CAMPO, TABLA2.CAMPO, TABLA3.CAMPO, TABLA4.CAMPO
FROM
TABLA1
INNER JOIN TABLA2
ON TABLA1.CAMPO = TABLA2.CAMPO
INNER JOIN TABLA3
ON TABLA3.CAMPO = TABLA2.CAMPO
INNER JOIN TABLA4
ON TABLA4.CAMPO = TABLA3.CAMPO
//SE CONTINUAN AGREGANDO LOS INNER JOIN SEGN LA
CANTIDAD DE TABLAS QUE DESEAS UNIR

SCRIPT PARA LA CREACIN DE UN STORE PROCEDURE


CON PASE DE PARAMETROS

/*
SCRIPT PARA LA CREACIN DE UN STORE PROCEDURE CON PASE DE
PARAMETROS Y VALORES DE RETORNO DE SALIDA PARA CONSULTAR
UN REGISTRO EN UNA BASE DE DATOS

http://lvsistemas.blogspot.pe/p/vb.html
*/
USE EJEMPLO
GO
CREATE PROCEDURE DBO.CONSULTA_SUELDO
@P_ID NCHAR(10)
AS
SELECT ID,NOMBRE,APELLIDO,SUELDO
FROM EMPLEADOS WHERE ID=@P_ID
GO
-- PARA LLAMARLO SERIA:
--1 FORMA DE LLAMARLO
USE EJEMPLO
GO
EXEC CONSULTA_SUELDO
@P_ID=99
--2 FORMA DE LLAMARLO
USE EJEMPLO
GO
EXEC
CONSULTA_SUELDO '99'

CREACIN Y EJECUCIN DE UN PROCEDIMIENTO


ALMACENADO
/*--SQLQUERY_SCRIPT PARA LA CREACIN Y EJECUCIN DE
UN PROCEDIMIENTO ALMACENADO*/
/*
SCRIPT PARA LA CREACION DE UN PROCEDIMIENTO ALMACENADO
USANDO LA SENTENCIA SELECT
*/
--CREACIN DEL PROCEDIMIENTO ALMACENADO
USE EJEMPLO
GO
CREATE PROCEDURE DBO.CONSULTAEMPLEADOS2
AS
SELECT ID,NOMBRE,APELLIDO,SUELDO
FROM EMPLEADOS WHERE SUELDO>1000
GO
--EJECUCIN DEL PROCEDIMIENTO ALMACENADO
USE EJEMPLO

http://lvsistemas.blogspot.pe/p/vb.html
GO
EXEC CONSULTAEMPLEADOS2
EXEC SP_HELP

CREACION Y USO DE VARIABLES CON EL LENGUAJE


TRANSACT-SQL
/*--SQLQUERY_CREACION Y USO DE VARIABLES CON EL LENGUAJE
TRANSACT-SQL*/
USE EJEMPLO
GO
DECLARE @ID NCHAR(10),@NOMBRE NCHAR(10)
SET @NOMBRE='LEONARDA'
SET @ID='06'
SELECT * FROM EMPLEADOS WHERE ID=@ID
SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE @NOMBRE+'%'
SELECT * FROM EMPLEADOS

CREACION Y USO DE VARIABLES CON EL LENGUAJE


TRANSACT-SQL
/*--SQLQUERY_CREACION Y USO DE VARIABLES CON EL LENGUAJE
TRANSACT-SQL*/
USE EJEMPLO
GO
DECLARE @ID NCHAR(10),@NOMBRE NCHAR(10)
SET @NOMBRE='LEONARDA'
SET @ID='06'
SELECT * FROM EMPLEADOS WHERE ID=@ID
SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE @NOMBRE+'%'
SELECT * FROM EMPLEADOS

ELEMENTOS DEL LENGUAJE DE PROGRAMACION CON


TRANSACT-SQL
/*--SQLQUERY_ELEMENTOS DEL LENGUAJE DE PROGRAMACION CON
TRANSACT-SQL*/
/*
ELEMENTOS DEL LENGUAJE DE PROGRAMACION CON TRANSACT-SQL
BLOQUES BEGIN... END
BLOQUES IF... ELSE
QLOQUES WHILE
*/
DECLARE @N TINYINT
SET @N=04
IF (@N BETWEEN 04 AND 06)
BEGIN
WHILE(@N>0)
BEGIN

http://lvsistemas.blogspot.pe/p/vb.html
SELECT @N AS 'NUMBER',CASE
WHEN(@N %2)=0
THEN 'PAR'
ELSE 'IMPAR'
END AS 'TYPE'
SET @N=@N-1
END
END
ELSE
PRINT 'NO HAY ANALISIS'
GO

ELIMINAR UN DESENCADENADOR

/*--SQLQUERY_ELIMINAR UN DESENCADENADOR*/
/*
ELIMINAR DE UN DESENCADENADOR
*/
USE EJEMPLO
GO
DROP TRIGGER BORRAR_EMPLEADO

FUNCIONAMIENTO DE UN DESENCADENADOR UPDATE

/*--SQLQUERY_FUNCIONAMIENTO DE UN DESENCADENADOR UPDATE*/


/*
FUNCIONAMIENTO DE UN DESENCADENADOR UPDATE
TRIGGER QUE SE EJECUTA CUANDO SE LLEVA A CABO UN UPDATE EN
UNA TABLA Y NO PERMITE QUE SE MODIFIQUE UN CAMPO EN LA TABLA
*/
USE EJEMPLO
GO
CREATE TRIGGER TR_ORDEN ON PEDIDO
FOR UPDATE
AS
IF UPDATE(ORDEN)
BEGIN
BEGIN TRANSACTION
PRINT('NO SE PUEDE MODIFICAR EL NUMERO DE LA ORDEN')
ROLLBACK TRANSACTION
END
--PARA PROBARLO:
UPDATE PEDIDO SET ORDEN='02'
UPDATE PEDIDO SET DESCRIPCION='COMPRAS' WHERE ORDEN='ORD01'

ELIMINAR UN PROCEDIMIENTO ALMACENADO

/*--SQLQUERY_SCRIPT PARA ELIMINAR UN PROCEDIMIENTO


ALMACENADO*/

http://lvsistemas.blogspot.pe/p/vb.html
USE EJEMPLO
GO
DROP PROCEDURE CONSULTAEMPLEADOS2

MODIFICAR PROCEDIMIENTO ALMACENADO

/*--SQLQUERY_SCRIPT PARA MODIFICAR UN PROCEDIMIENTO


ALMACENADO*/
USE EJEMPLO
GO
ALTER PROCEDURE DBO.CONSULTAEMPLEADOS2
AS
SELECT ID,NOMBRE,SUELDO
FROM EMPLEADOS WHERE SUELDO>1000 ORDER BY NOMBRE
GO

PROMEDIO DE SUELDO SQL

/*--SQLQUERY_USO DE FUNCIONES EN TRANSACT-SQL (SUELDO MIN,MAX Y


PROMEDIO DE SUELDO)*/
/*
USO DE FUNCIONES EN TRANSACT-SQL (SUELDO MIN,MAX Y PROMEDIO DE SUELDO)
*/
USE EJEMPLO
GO
SELECT AVG(SUELDO) AS SUELDO_PROMEDIO FROM EMPLEADOS
GO
SELECT DB_NAME() AS 'DATABASE'
GO
SELECT MIN(SUELDO) AS SUELDO_MINIMO, MAX(SUELDO) AS SUELDO_MAXIMO
FROM EMPLEADOS

FUNCIONES EN SQL

/*
FUNCIONES DE AGREGADO:
AVG()
BINARY_CHECKSUM()
CHECKSUM()
CHECKSUM_AGG()
COUNT()
COUNT_BIG()
GROUPING()
MAX()
MIN()
STDEV()
STDEVP()
SUM()
VAR()
VARP()
FUNCIONES MATEMTICAS:

http://lvsistemas.blogspot.pe/p/vb.html
ABS()
ACOS()
ASIN()
ATAN()
ATN2()
CEILING()
COS()
COT()
DEGRES()
EXP()
FLOOR()
LOG()
LOG10()
PI()
POWER()
RADIANS()
RAND()
ROUND()
SIGN()
SIN()
SQRT()
SQUARE()
TAN()
*/

COPIAR UNA TABLA EN SQL

/*--SQLQUERY_COPIA EXACTA DE UNA TABLA CON CONDICIONES


SELECT*/
USE EJEMPLO
GO
SELECT ID,NOMBRE,APELLIDO,SUELDO INTO EMPLEADO_MAYOR
FROM EMPLEADOS WHERE SUELDO>1000
GO

CREAR TABLA CON CAMPOS ENCRIPTADOS

/*--SQLQUERY_ CREAR TABLA Y ADICIONAR NUEVOS CAMPOS (CAMPOS


ENCRIPTADOS)*/
USE EJEMPLO
GO
CREATE TABLE DBO.CLIENTE
(ID UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(),NOMBRE NVARCHAR(20) NOT
NULL)
GO

AGREGAR TIPOS DE DATOS

/*--SQLQUERY_AGREGAR TIPOS DE DATOS*/


--EJECUTAR UN UP DEL SISTEMA PARA AGREGAR TIPOS DE DATOS
USE EJEMPLO
GO
EXEC SP_ADDTYPE CIUDAD,'NVARCHAR(15)',NULL

http://lvsistemas.blogspot.pe/p/vb.html
EXEC SP_ADDTYPE PAIS,'NVARCHAR(15)',NULL

ELIMINAR TIPOS DE DATOS

/*--SQLQUERY_ELIMINAR TIPOS DE DATOS*/


--EJECUTAR UN UP DEL SISTEMA PARA ELIMINAR TIPOS DE DATOS
USE EJEMPLO
GO
EXEC SP_DROPTYPE PAIS

ELIMINAR UNA BASE DE DATOS


/*--SQLQUERY_ELIMINAR UNA BD*/
--ELIMINAR UNA BD
USE MASTER
GO
DROP DATABASE EJEMPLO

REDUCIR EL TAMAO DE UNA BASE DE DATOS

/*--SQLQUERY_REDUCIR EL TAMAO DE UNA BASE DE DATOS*/


-- COMANDO PARA REDUCIR EL TAMAO DE UNA BASE DE DATOS COMPLETA
USE EJEMPLO
GO
DBCC SHRINKDATABASE (EJEMPLO,10)

CONSULTAR EL ESPACIO DE UNA BASE DE DATOS


/*--SQLQUERY_CONSULTAR EL ESPACIO DE BD*/

/*
SCRIPT QUE PERMITE INVOCAR LOS PROCEDIMIENTOS DEL
SISTEMA PARA CONSULTAR EL ESPACIO CONSUMIDO POR
LA BASE DE DATOS REGISTRADA EN LA INSTACIA DE SQL
*/
EXEC SP_HELPDB
EXEC SP_HELPDB EJEMPLO
USE EJEMPLO
GO
EXEC SP_SPACEUSED EMPLEADOS

AGREGAR UN ARCHIVO DE DATOS


/*--SQLQUERY_AGREGAR UN ARCHIVO DE DATOS*/
--COMADO PARA ADICIONAR UN ARCHIVO DE DATOS DE UNA BD ACTIVA
ALTER DATABASE EJEMPLO
ADD FILE
(NAME=EJEMPLODATA2,FILENAME='C:\LVIDAL(SQL CURSO INTERMEDIOAVANZADO)\SQL BD (LV-SISTEMAS)\EJEMPLO2.NDF',SIZE=15MB,MAXSIZE=20MB)
GO

MODIFICAR EL TAMAO DEL ARCHIVO DE TRANSACCIONES

http://lvsistemas.blogspot.pe/p/vb.html
/*--SQLQUERY_MODIFICAR EL TAMAO DEL ARCHIVO DE TRANSACCIONES
DE UNA BD*/
/*
COMANDO PARA MODIFICAR EL TAMAO
DEL ARCHIVO DE TRANSACCIONES
DE UNA BD
*/
ALTER DATABASE EJEMPLO
MODIFY FILE (NAME='EJEMPLOLOG',SIZE=15MB)

MOSTRAR LA INFORMACIN DE BASE DE DATOS SQL


/*--SQLQUERY_MOSTRAR LA INFORMACIN DE LA BD*/
EXEC SP_HELPDB
GO
SP_HELPDB EJEMPLO
/*SQLQUERY_AYUDA INFORMACION DE LA BD*/
EXEC SP_HELPDB INVENTARIO

ACTUALIZAR REGISTROS EN SQL


/*--SQLQUERY_ACTUALIZAR CON CONDICION*/
USE INVENTARIO
GO
UPDATE ZONAS SET OBSERVACIONES='VENTAS EXCELENTES',
VENTAS=800
WHERE (ID=18 AND DESCRIPCION='CARACAS')
GO
/*--SQLQUERY_ACTUALIZAR WHERE ID*/
USE INVENTARIO
GO
UPDATE ZONAS SET VENTAS=VENTAS+VENTAS*0.05
WHERE (ID>18)

Das könnte Ihnen auch gefallen