Crear Base de Datos en SQL

23
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\ LV-SISTEMAS\LV_SISTEMAS\Sist-Remot\BD\BD.MDF', SIZE=10MB, MAXSIZE=15MB, FILEGROWTH=20%) LOG ON (NAME=EJEMPLOLOG,FILENAME='D:\VIDAL\LVIDAL\LV- SISTEMAS\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

description

base datos

Transcript of Crear Base de Datos en SQL

Page 1: Crear Base de Datos en SQL

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

CREAR BASE DE DATOS EN SQL/*ESCRIPT PARA LACREACION UNA BASE DE DATOS */

CREATE DATABASE BDONPRIMARY (NAME=EJEMPLODATA,FILENAME='D:\VIDAL\LVIDAL\LV-SISTEMAS\LV_SISTEMAS\Sist-Remot\BD\BD.MDF', SIZE=10MB,MAXSIZE=15MB,FILEGROWTH=20%)LOG ON(NAME=EJEMPLOLOG,FILENAME='D:\VIDAL\LVIDAL\LV-SISTEMAS\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 BDGOCREATE 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,)GOCONSULTAS SQL - SELECT /*--LA CONSULTA MUESTRA TODAS LAS TABLAS DE LA BASE DE DATOS*/

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'

Page 2: Crear Base de Datos en SQL

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

/*--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 INVENTARIOGOINSERT ZONAS (ID, DESCRIPCION,OBSERVACIONES,VENTAS)VALUES (1,'MARACAIBO','VENTAS ALTAS',200)GO

/*--SQLQUERY_AGREGAR CAMPOS*/

USE INVENTARIOGOALTER TABLE ZONAS ADD MONTO MONEY NULL

/*--SQLQUERY_AGREGAR RERISTROS DEFAULT*/

USE INVENTARIOGOINSERT ZONAS (ID, DESCRIPCION,OBSERVACIONES,VENTAS)VALUES (2,DEFAULT,DEFAULT,DEFAULT)GO

/*--SQLQUERY_BORRAR BD*/

DROP DATABASE  NOMINA  /*--SQLQUERY_BORRAR TABLA*/

Page 3: Crear Base de Datos en SQL

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

USE INVENTARIOGODROP TABLE CLIENTES

/*--SQLQUERY_CONSULTA CAMPO CALCULADOS*/

USE INVENTARIOGOSELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,(SUELDO+SUELDO*0.40) AS SUELDO_NUEVOFROM EMPLEADOS

/*--SQLQUERY_CONSULTA MÚLTIPLES TABLAS*/

USE INVENTARIOGOSELECT  CODIGO,ARTICULOS.DESCRIPCION,TIPO,PRECIO,CANTIDAD,ARTICULOS.ID_CATALOGO,CATALOGO.DESCRIPCION,CATALOGO.OBSERVACIONESFROM ARTICULOS,CATALOGOWHERE (ARTICULOS.ID_CATALOGO=CATALOGO.ID_CATALOGO)

/*--SQLQUERY_CONTAR REGISTROS*/

USE INVENTARIOGOSELECT COUNT (ID_EMPLEADO) AS TOTAL_EMPLEADOSFROM EMPLEADOS

/*--SQLQUERY_CREAR TABLA*/

USE INVENTARIOGOCREATE TABLE ZONAS (ID INT,DESCRIPCION VARCHAR(10) NOT NULL,OBSERVACIONES TEXT NULL)GO   /*--SQLQUERY_CREAR TABLA ESPECIAL*/

USE INVENTARIOGO

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 INVENTARIOGO

Page 4: Crear Base de Datos en SQL

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

EXEC SP_ADDTYPE  NOTAS,'VARCHAR(10)',NULL

/*--SQLQUERY_ELIMINAR CAMPOS*/

USE INVENTARIOGOALTER TABLE ZONAS DROP COLUMN MONTO

/*--SQLQUERY_ELIMINAR OR*/

USE INVENTARIOGODELETE ZONAS WHERE (VENTAS= 100 OR VENTAS=120)

/*ELIMINA TODOS LOS REGISTROS DE LA TABLA ZONAS QUEEN EL CAMPO VENTAS SEAN IGUAL A 100 O A 120*/

/*--SQLQUERY_ELIMINAR POR UN RANGO DE DATOS*/

USE INVENTARIOGODELETE ZONAS WHERE (VENTAS>= 150 OR VENTAS<=250)

/*--SQLQUERY_ELIMINAR TABLA*/

USE INVENTARIOGODROP TABLE ZONAS2GO

/*--SQLQUERY_ESCALAR FUNCIONES*/

USE INVENTARIOSELECT  MIN(SUELDO) AS MINIMO,MAX(SUELDO) AS MAXIMO,AVG(SUELDO) AS PROMEDIO,SUM(SUELDO) AS SUMATORIAFROM EMPLEADOS

/*--SQLQUERY_FILTRO BETWEEN*/

USE INVENTARIOGOSELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDOFROM EMPLEADOSWHERE (SUELDO>=100 AND SUELDO<=500)

/* OTRA MANERA DE HACER EL MISMO FILTRO:WHERE SUELDO BETWEEN 100 AND 500*/

/*--SQLQUERY_FILTRO CON% OPERADOR LIKE*/

USE INVENTARIOGOSELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO

Page 5: Crear Base de Datos en SQL

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

FROM EMPLEADOSWHERE NOMBRE LIKE 'A%' AND SUELDO >=100

/*--SQLQUERY_FILTRO DE DISTINTINOS CAMPOS*/

USE INVENTARIOGOSELECT DISTINCT CARGOFROM EMPLEADOSORDER BY CARGO

/*--SQLQUERY_FILTRO DE LOS 3 PRIMEROS REGISTROS*/

USE INVENTARIOGOSELECT TOP 3 ID_EMPLEADO,NOMBRE,APELLIDO,SUELDOFROM EMPLEADOSORDER BY APELLIDO ASC

/*PARA FILTRAR EL PRIMER REGISTROUSE INVENTARIOGOSELECT TOP 1 ID_EMPLEADO,NOMBRE,APELLIDO,SUELDOFROM EMPLEADOS*/

/*--SQLQUERY_FILTRO DOBLE*/

USE INVENTARIOGOSELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,CARGOFROM EMPLEADOSWHERE (ID_EMPLEADO=1)GO   SELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,CARGOFROM EMPLEADOSWHERE (CARGO='GERENTE')GO 

/*--SQLQUERY_FILTRO ORDER BY*/

USE INVENTARIOGOSELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDOFROM EMPLEADOSORDER BY SUELDO DESC

/*ASCDESC*/

/*--SQLQUERY_FILTRO POR WHERE IN*/

USE INVENTARIOGOSELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,CARGOFROM EMPLEADOS

Page 6: Crear Base de Datos en SQL

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

WHERE CARGO IN ('GERENTE','ANALISTA')

/*--SQLQUERY_FILTRO UNIENDO COLUMNAS*/

USE INVENTARIOGOSELECT ID_EMPLEADO AS CODIGO,NOMBRE+' '+ APELLIDO AS EMPLEADO, SUELDO AS SUELDO,CARGOFROM EMPLEADOSWHERE CARGO IS NULL

/*FILTRADO PARA UNIR DOS CAMPOS EN UNO SOLO ES DECIR EN ESTE EJEMPLOAPARECE EL NOMBRE Y EL APELLIDO EN UNA MISMA COLUMNAS*/

/*--SQLQUERY_FILTRO USO DE LITERALES*/

USE INVENTARIOGOSELECT NOMBRE,APELLIDO,'CODIGO DEL EMPLEADO',ID_EMPLEADOFROM EMPLEADOSGO

/*--SQLQUERY_FILTRO X CAMPOS NULL*/

USE INVENTARIOGOSELECT ID_EMPLEADO, NOMBRE, APELLIDO, SUELDO, CARGOFROM EMPLEADOSWHERE CARGO IS NULL

/*SI SE LE COLOCA * A LADO DE SELECT TOMARIA TODOS LOS CAMPOS DE LA TABLA*/

/*--SQLQUERY_INSERT TRANSACTION*/

USE INVENTARIOGOBEGIN TRANSACTION

/*PRIMERA TRANSACCIÓN*/

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 INVENTARIOBEGIN TRANSACTIONINSERT INTO CATALOGO(ID_CATALOGO,DESCRIPCION,OBSERVACIONES)

Page 7: Crear Base de Datos en SQL

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

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 INVENTARIOGOINSERT 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 INVENTARIOGOUPDATE ZONAS SET DESCRIPCION='CARACAS',OBSERVACIONES='VENTAS REGULARES',VENTAS=200WHERE (ID=21)

/*--SQLQUERY_MODIFICAR CON CONDICION REALIZANDO RANGOS DE REGISTROS*/

USE INVENTARIOGOUPDATE ZONAS SET VENTAS=VENTAS+VENTAS*0.50WHERE (VENTAS>=100 AND VENTAS<=400)

/*ACTUALIZA POR RANGOS DE DATOS*/

/*--SQLQUERY_MODIFICAR Y COLOCAR %*/

USE INVENTARIOGOUPDATE ZONAS SET VENTAS=VENTAS+VENTAS*0.20GO

/*MODIFICA LAS VENTAS Y LE SUMAN UN 20% A CADA UNO DE LOS REGISTROS*/

/*--SQLQUERY_PROMEDIO*/

USE INVENTARIOGOSELECT COUNT(SUELDO) AS CONTEO,SUM(SUELDO) AS SUMATORIA,

Page 8: Crear Base de Datos en SQL

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

AVG(SUELDO) AS PROMEDIOFROM EMPLEADOS

/*--SQLQUERY_RESPALDO BD*/

BACKUP DATABASE PRUEBATO DISK='C:\RESPALDO SQL LV\PRUEBA_LV.BAK'WITHFORMAT

/*--SQLQUERY_RESTAURACION BD*/

RESTORE DATABASE PRUEBA FROM DISK='C:\RESPALDO SQL LV\PRUENA_LV.BAK'  /*--SQLQUERY_SELECT CALCULO DEL SUELDO X DIAS*/

USE INVENTARIOGOSELECT ID_EMPLEADO,NOMBRE,APELLIDO,SUELDO,DIAS,(SUELDO*DIAS) AS TOTAL_A_COBRARFROM EMPLEADOSWHERE (DIAS>=5)

/*--SQLQUERY_SELECT INSERT*/

USE INVENTARIOGOSELECT ID AS CODIGO,DESCRIPCION AS CONCEPTO,OBSERVACIONES AS COMENTARIOS,VENTAS AS MONTO,(VENTAS*2) AS VENTABOBLEINTO RESPALDOZONAS FROM ZONASGO

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

USE INVENTARIOGOTRUNCATE TABLE ZONAS2GO

/*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

Page 9: Crear Base de Datos en SQL

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

SELECT "NOMBRE_COLUMNA"FROM "NOMBRE_TABLA"WHERE "CONDITION"

AND/OR

SELECT "NOMBRE_COLUMNA"FROM "NOMBRE_TABLA"WHERE "CONDICIÓN SIMPLE"{[AND|OR] "CONDICIÓN 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 {PATRÓN}

ORDER BY

SELECT "NOMBRE_COLUMNA"FROM "NOMBRE_TABLA"[WHERE "CONDICIÓN"]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 (CONDICIÓN DE FUNCIÓN ARITMÉTICA)

Page 10: Crear Base de Datos en SQL

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

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"WHERE {CONDICIÓN}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 MASTERBACKUP DATABASE EJEMPLO

Page 11: Crear Base de Datos en SQL

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

TO DISK='C:\LVIDAL(SQL CURSO INTERMEDIO-AVANZADO)\SQLQUERY\RESPALDO.BAK'

-- EJEMPLO 2:

-- SCRIPT PARA LA CREACION DE RESPALDOS HACIENDO-- USO EXCLUSIVO DE DIDPOSITIVOS DE ALMACENAMIENTO

USE MASTEREXEC 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 EJEMPLOTO DISK='C:\LVIDAL(SQL CURSO INTERMEDIO-AVANZADO)\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

EXEC SP_ADDUMPDEVICE 'DISK','EJEMPLOBACKUP','C:\LVIDAL(SQL CURSO INTERMEDIO-AVANZADO)\SQLQUERY\EJEMPLOBACKUPLOG'BACKUP DATABASE EJEMPLO TO EJEMPLOBACKUP2BACKUP 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 SQLCONNECTIONSTRINGBUILDERCSB.DATASOURCE = ME.TXTSERVIDOR.TEXTCSB.INITIALCATALOG = ME.TXTBASE.TEXTCSB.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

Page 12: Crear Base de Datos en SQL

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

                        "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 TRYEND USINGFILTROS SQL

FILTROS SQL

 'DEPENDE UN POCO DE LA ESTRUCTURA QUE TENGAN TUS TABLAS Y DE CUÁNDO CONSIDERAS QUE HAY DIFERENCIAS.

'SI IMAGINAMOS DOS TABLAS (TABLA1 Y TABLA2) CON LA ESTRUCTURA ID, CAMPO1,CAMPO2 DONDE ID ES LA CLAVE PRIMARIA, PODRÍAS: 

1) ENCONTRAR LOS REGISTROS DE TABLA1 QUE NO EXISTEN EN TABLA2 DE LA SIGUIENTE MANERA:

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 SEGÚN LAS TABLAS

TABLA1.CAMPO, TABLA2.CAMPO, TABLA3.CAMPO, TABLA4.CAMPO

FROM

 TABLA1

 INNER JOIN TABLA2

Page 13: Crear Base de Datos en SQL

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

 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 SEGÚN LA 

CANTIDAD DE TABLAS QUE DESEAS UNIR SCRIPT PARA LA CREACIÓN DE UN STORE PROCEDURE CON PASE DE PARAMETROS /*SCRIPT PARA LA CREACIÓN DE UN STORE PROCEDURE CON PASE DE PARAMETROS Y VALORES DE RETORNO DE SALIDA PARA CONSULTAR UN REGISTRO EN UNA BASE DE DATOS*/

USE EJEMPLOGOCREATE PROCEDURE DBO.CONSULTA_SUELDO@P_ID NCHAR(10)ASSELECT ID,NOMBRE,APELLIDO,SUELDOFROM EMPLEADOS WHERE ID=@P_IDGO-- PARA LLAMARLO SERIA:

--1 FORMA DE LLAMARLO

USE EJEMPLOGOEXEC CONSULTA_SUELDO@P_ID=99

--2 FORMA DE LLAMARLO

USE EJEMPLOGOEXEC

CONSULTA_SUELDO '99'CREACIÓN Y EJECUCIÓN DE UN PROCEDIMIENTO ALMACENADO /*--SQLQUERY_SCRIPT PARA LA CREACIÓN Y EJECUCIÓN DE UN PROCEDIMIENTO ALMACENADO*/

Page 14: Crear Base de Datos en SQL

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

/*SCRIPT PARA LA CREACION DE UN PROCEDIMIENTO ALMACENADOUSANDO LA SENTENCIA SELECT*/

 --CREACIÓN DEL PROCEDIMIENTO ALMACENADO

USE EJEMPLOGOCREATE PROCEDURE DBO.CONSULTAEMPLEADOS2ASSELECT ID,NOMBRE,APELLIDO,SUELDOFROM EMPLEADOS WHERE SUELDO>1000GO

--EJECUCIÓN DEL PROCEDIMIENTO ALMACENADO

USE EJEMPLOGOEXEC CONSULTAEMPLEADOS2EXEC SP_HELPCREACION Y USO DE VARIABLES CON EL LENGUAJE TRANSACT-SQL  /*--SQLQUERY_CREACION Y USO DE VARIABLES CON EL LENGUAJE TRANSACT-SQL*/

USE EJEMPLOGODECLARE @ID NCHAR(10),@NOMBRE NCHAR(10)SET @NOMBRE='LEONARDA'SET @ID='06'

SELECT * FROM EMPLEADOS WHERE ID=@IDSELECT * FROM EMPLEADOS WHERE NOMBRE LIKE @NOMBRE+'%'SELECT * FROM EMPLEADOSCREACION Y USO DE VARIABLES CON EL LENGUAJE TRANSACT-SQL  /*--SQLQUERY_CREACION Y USO DE VARIABLES CON EL LENGUAJE TRANSACT-SQL*/

USE EJEMPLOGODECLARE @ID NCHAR(10),@NOMBRE NCHAR(10)SET @NOMBRE='LEONARDA'SET @ID='06'

SELECT * FROM EMPLEADOS WHERE ID=@IDSELECT * FROM EMPLEADOS WHERE NOMBRE LIKE @NOMBRE+'%'SELECT * FROM EMPLEADOS

Page 15: Crear Base de Datos en SQL

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

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... ENDBLOQUES IF... ELSEQLOQUES WHILE */

DECLARE @N TINYINTSET @N=04IF (@N BETWEEN 04 AND 06)BEGINWHILE(@N>0)BEGINSELECT @N AS 'NUMBER',CASEWHEN(@N %2)=0THEN 'PAR'ELSE 'IMPAR'END AS 'TYPE'SET @N=@N-1ENDENDELSEPRINT 'NO HAY ANALISIS'GOELIMINAR UN DESENCADENADOR /*--SQLQUERY_ELIMINAR  UN DESENCADENADOR*/

/*ELIMINAR DE UN DESENCADENADOR*/

USE EJEMPLOGODROP TRIGGER BORRAR_EMPLEADOFUNCIONAMIENTO DE UN DESENCADENADOR UPDATE /*--SQLQUERY_FUNCIONAMIENTO DE UN DESENCADENADOR UPDATE*/

/*FUNCIONAMIENTO DE UN DESENCADENADOR UPDATETRIGGER QUE SE EJECUTA CUANDO SE LLEVA A CABO UN UPDATE ENUNA TABLA Y NO PERMITE QUE SE MODIFIQUE UN CAMPO EN LA TABLA */

USE EJEMPLO

Page 16: Crear Base de Datos en SQL

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

GOCREATE TRIGGER TR_ORDEN ON PEDIDOFOR UPDATEASIF UPDATE(ORDEN)BEGINBEGIN TRANSACTION PRINT('NO SE PUEDE MODIFICAR EL NUMERO DE LA ORDEN')ROLLBACK TRANSACTIONEND

 --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*/

USE EJEMPLOGODROP PROCEDURE CONSULTAEMPLEADOS2MODIFICAR PROCEDIMIENTO ALMACENADO /*--SQLQUERY_SCRIPT PARA MODIFICAR UN PROCEDIMIENTO ALMACENADO*/

USE EJEMPLOGOALTER PROCEDURE DBO.CONSULTAEMPLEADOS2ASSELECT ID,NOMBRE,SUELDOFROM EMPLEADOS WHERE SUELDO>1000 ORDER BY NOMBREGO 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 EJEMPLOGOSELECT AVG(SUELDO) AS SUELDO_PROMEDIO FROM EMPLEADOSGOSELECT DB_NAME() AS 'DATABASE'GOSELECT MIN(SUELDO) AS SUELDO_MINIMO, MAX(SUELDO) AS SUELDO_MAXIMO FROM EMPLEADOSFUNCIONES EN SQL /*FUNCIONES DE AGREGADO:

AVG()

Page 17: Crear Base de Datos en SQL

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

BINARY_CHECKSUM()CHECKSUM()CHECKSUM_AGG()COUNT()COUNT_BIG()GROUPING()MAX()MIN()STDEV()STDEVP()SUM()VAR()VARP()

FUNCIONES MATEMÁTICAS:

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 CONDICIONESSELECT*/

USE EJEMPLOGOSELECT ID,NOMBRE,APELLIDO,SUELDO INTO EMPLEADO_MAYORFROM EMPLEADOS WHERE SUELDO>1000GOCREAR TABLA CON CAMPOS ENCRIPTADOS /*--SQLQUERY_ CREAR TABLA Y ADICIONAR NUEVOS CAMPOS (CAMPOS ENCRIPTADOS)*/

Page 18: Crear Base de Datos en SQL

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

USE EJEMPLOGOCREATE TABLE DBO.CLIENTE(ID UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(),NOMBRE NVARCHAR(20) NOT NULL)GOAGREGAR TIPOS DE DATOS /*--SQLQUERY_AGREGAR TIPOS DE DATOS*/

--EJECUTAR UN UP DEL SISTEMA PARA AGREGAR TIPOS DE DATOSUSE EJEMPLOGOEXEC SP_ADDTYPE CIUDAD,'NVARCHAR(15)',NULL

EXEC SP_ADDTYPE PAIS,'NVARCHAR(15)',NULLELIMINAR TIPOS DE DATOS /*--SQLQUERY_ELIMINAR TIPOS DE DATOS*/

--EJECUTAR UN UP DEL SISTEMA PARA ELIMINAR TIPOS DE DATOSUSE EJEMPLOGOEXEC SP_DROPTYPE PAISELIMINAR UNA BASE DE DATOS /*--SQLQUERY_ELIMINAR UNA BD*/

--ELIMINAR UNA BDUSE MASTERGODROP DATABASE EJEMPLOREDUCIR EL TAMAÑO DE UNA BASE DE DATOS /*--SQLQUERY_REDUCIR EL TAMAÑO DE UNA BASE DE DATOS*/

-- COMANDO PARA REDUCIR EL TAMAÑO DE UNA BASE DE DATOS COMPLETA

USE EJEMPLOGODBCC SHRINKDATABASE (EJEMPLO,10)CONSULTAR EL ESPACIO DE UNA BASE DE DATOS /*--SQLQUERY_CONSULTAR EL ESPACIO DE BD*/

/*SCRIPT QUE PERMITE INVOCAR LOS PROCEDIMIENTOS DELSISTEMA PARA CONSULTAR EL ESPACIO CONSUMIDO PORLA BASE DE DATOS REGISTRADA EN LA INSTACIA DE SQL*/

EXEC SP_HELPDBEXEC SP_HELPDB EJEMPLOUSE EJEMPLO

Page 19: Crear Base de Datos en SQL

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

GOEXEC SP_SPACEUSED EMPLEADOSAGREGAR UN ARCHIVO DE DATOS /*--SQLQUERY_AGREGAR UN ARCHIVO DE DATOS*/

--COMADO PARA ADICIONAR UN ARCHIVO DE DATOS DE UNA BD ACTIVA

ALTER DATABASE EJEMPLOADD FILE(NAME=EJEMPLODATA2,FILENAME='C:\LVIDAL(SQL CURSO INTERMEDIO-AVANZADO)\SQL BD (LV-SISTEMAS)\EJEMPLO2.NDF',SIZE=15MB,MAXSIZE=20MB)GOMODIFICAR EL TAMAÑO DEL ARCHIVO DE TRANSACCIONES /*--SQLQUERY_MODIFICAR EL TAMAÑO DEL ARCHIVO DE TRANSACCIONES DE UNA BD*/

/*COMANDO PARA MODIFICAR EL TAMAÑODEL ARCHIVO DE TRANSACCIONESDE UNA BD*/

ALTER DATABASE EJEMPLOMODIFY FILE (NAME='EJEMPLOLOG',SIZE=15MB)MOSTRAR LA INFORMACIÓN DE BASE DE DATOS SQL /*--SQLQUERY_MOSTRAR LA INFORMACIÓN DE LA BD*/

EXEC SP_HELPDBGOSP_HELPDB EJEMPLO

/*SQLQUERY_AYUDA INFORMACION DE LA BD*/

EXEC SP_HELPDB INVENTARIOACTUALIZAR REGISTROS EN SQL

/*--SQLQUERY_ACTUALIZAR CON CONDICION*/

USE INVENTARIOGOUPDATE ZONAS SET OBSERVACIONES='VENTAS EXCELENTES',VENTAS=800WHERE (ID=18 AND DESCRIPCION='CARACAS')GO

/*--SQLQUERY_ACTUALIZAR WHERE ID*/

Page 20: Crear Base de Datos en SQL

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

USE INVENTARIOGOUPDATE ZONAS SET VENTAS=VENTAS+VENTAS*0.05WHERE (ID>18)