Crear Base de Datos en SQL

Post on 09-Jul-2016

244 views 0 download

description

base datos

Transcript of 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'

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

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

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

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

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)

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,

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

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)

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

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

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

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

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

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

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()

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

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

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

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

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