Академический Документы
Профессиональный Документы
Культура Документы
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
/* Creando CONSTRAINT
PRIMARY KEY Clave primaria
CHECK Chequea el valor que se va a ingresar en la columna
UNIQUE Los Valores de la columna deben ser nicas
Doc.: RONELD F. ORTIZ FIGUEROA
SQL 2000.
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
DECLARACIN DE VARIABLES
Locales: Se definen por los usuarios y empiezan con el signo @
/*VARIABLE LOCAL*/
DECLARE @NOM VARCHAR(25)
SET @NOM='%L%'
SELECT * FROM RONELD..DATOS WHERE NOMBRES LIKE @NOM
GO
/*VARIABLES LOCALES*/
DECLARE @NOM1 VARCHAR(25), @APE1 VARCHAR(25), @ED1 INT
SET @NOM1='%L%'
SET @APE1='%A'
SET @ED1=21
SELECT * FROM RONELD..DATOS WHERE NOMBRES LIKE @NOM1 AND
APELLIDOS LIKE @APE1 AND EDAD>@ED1
/*VARIABLE GLOBALES */
GO
SET DATEFORMAT DMY
SELECT GETDATE()
GO
SELECT GETDATE() AS 'DA Y HORA ACTUAL',
@@CONNECTIONS AS 'NMERO DE CONEXIN'
GO
SELECT @@CPU_BUSY AS 'TIEMPO EN MILESEGUNDOS DEL CPU',
GETDATE() AS 'HASTA LA HORA ACTUAL'
GO
SELECT @@LANGUAGE AS 'NOMBRE DEL LENGUAJE'
GO
--NMERO MXIMO DE CONEXIONES
SELECT @@MAX_CONNECTIONS
GO
SELECT @@VERSION
SQL 2000.
E-mail: roflu64@msn.com
GO
/*ELIMINAR TODA UNA TABLA */
DELETE RONELD..DATOS
GO
/*ELIMINAR REGISTROS SEGN CONDICIONES */
DECLARE @ED1 INT
SET @ED1=21
DELETE RONELD..DATOS WHERE EDAD=@ED1
GO
/*MODIFICAR REGISTROS */
UPDATE RONELD..DATOS SET EDAD=17,CODIGO='RON'
WHERE EDAD=25
GO
SELECT * FROM RONELD..DATOS
GO
/*MOSTRAR UN SELECT, ORDENANDO SEGN UNA COLUMNA*/
SELECT * FROM RONELD..DATOS ORDER BY NOMBRES
GO
--MOSTRANDO EN FORMA ASCENDENTE
SELECT * FROM RONELD..DATOS ORDER BY APELLIDOS ASC
GO
--MOSTRAR EN FORMA DESCENDENTE
SELECT * FROM RONELD..DATOS ORDER BY EDAD DESC
GO
/*TRABAJANDO CON FECHAS*/
--MOSTRAR EL DA ACTUAL DEL SISTEMA
SELECT DAY(GETDATE()) AS 'DA ACTUAL'
GO
--MOSTRAR EL MES ACTUAL DEL SISTEMA
SELECT MONTH(GETDATE()) AS 'MES ACTUAL'
GO
--MOSTRAR EL AO ACTUAL DEL SISTEMA
SELECT YEAR(GETDATE()) AS 'AO ACTUAL'
GO
--MOSTRAR UNA PARTE DE LA FECHA
SELECT DATEPART(MM,GETDATE()) AS 'DA MOSTRADO'
GO
--MOSTRAR EL NOMBRE DEL DA O MES
SELECT DATENAME(MONTH,GETDATE()) AS 'NOMBRE DEL MES'
Doc.: RONELD F. ORTIZ FIGUEROA
SQL 2000.
E-mail: roflu64@msn.com
FUNCIONES
/* PRINCIPALES FUNCIONES */
/* SUBSTRING ESTA FUNCIN PERMITE SUBTRAER DE UN CAMPO
DETERMINADO LA CANTIDAD DE CARACTERES, A PARTIR DE UNA
POSICIN DETERMINADA
SUBSTRING(TEXTO, POSICIN, CANTIDAD DE CARACTERES)*/
SELECT SUBSTRING(VENDEDOR,1,3) AS VENDEDOR FROM KARDEX
GO
/* ASCII= DEVUELVE EL CDIGO ASCII DE UN CARACTER*/
SELECT ASCII(SUBSTRING(VENDEDOR,1,1)) AS VENDEDOR FROM KARDEX
GO
/*CHAR= DEVUELVE EL CARACTER DE UN NMERO INGRESADO*/
SELECT CHAR(62)
GO
/* CASE= EVALA UNA SERIE DE CONDICIONES, EL CUAL
DEVUELVE UN RESULTADO DE ACUERDO A UNA CONDICIN*/
SELECT NOMBRES,TOTAL, 'SITUACIN DEL CLIENTE'=
CASE
WHEN (TOTAL=0)
THEN 'CLIENTE -- PUNTUAL'
WHEN (TOTAL>0 AND TOTAL<100)
THEN 'CLIENTE -- CASI PUNTUAL'
WHEN (TOTAL>=100 AND TOTAL<300)
THEN 'CLIENTE -- POCO PUNTUAL'
ELSE 'CLIENTE -- MOROSO'
END
FROM KARDEX
GO
/* CONVERT= CONVIERTE UN TIPO DE DATO A OTRO*/
SELECT 'ANSI:',CONVERT (VARCHAR(30),GETDATE(),102) AS STYLE UNION
SELECT 'JAPONES:',CONVERT (VARCHAR(30),GETDATE(),111) UNION
SELECT 'EUROPEO:',CONVERT (VARCHAR(30),GETDATE(),113)
GO
SELECT CONVERT(VARCHAR(30),FECHA,101) AS FECHA FROM KARDEX
GO
/* COUNT= DEVUELVE EL NMERO DE REGISTROS O ELEMENTOS*/
SELECT COUNT(*) AS 'TOTAL DE REGISTRO' FROM KARDEX
GO
/* DISTINCT= DEVUELVE EL NMERO DE REGISTROS QUE
SON NICOS EN UNA COLUMNA*/
SELECT COUNT(DISTINCT VENDEDOR) AS 'TOTAL DE NOMBRES' FROM
KARDEX
GO
/*DATEADD= DEVUELVE UN DATO TIPO FECHA AADIDO A UN
DETERMINADO
DATO QUE PUEDE SER= MES, DA, AO */
DECLARE @F1 DATETIME,@F2 DATETIME
SET @F1='16/05/2009'
Doc.: RONELD F. ORTIZ FIGUEROA
SQL 2000.
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
SENTENCIAS DE CONTROL
IF
/* SENTENCIA DE CONTROL IF */
IF EXISTS(SELECT * FROM SYSDATABASES WHERE NAME='TELESUP')
BEGIN
PRINT 'LA BASE DE DATOS TELESUP YA EXISTE'
END
ELSE
BEGIN
CREATE DATABASE TELESUP
ON PRIMARY
(NAME='TELESUP_DATA1',
FILENAME='C:\RONELD\TELESUP.MDF',
SIZE=1,
MAXSIZE=2,
FILEGROWTH=1),
(NAME='TELESUP_DATA2',
FILENAME='C:\RONELD\TELESUP.NDF',
SIZE=1,
MAXSIZE=2,
FILEGROWTH=1)
LOG ON
(NAME='TELESUP_LOG',
FILENAME='C:\RONELD\TELESUP.LDF',
SIZE=1,
MAXSIZE=2,
FILEGROWTH=1)
END
GO
USE TELESUP
GO
/* CREANDO UNA TABLA, PARA ELLO DETERMINAMOS
SI LA TABLA EXISTE O NO */
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME='ESTUDIANTE')
BEGIN
PRINT 'LA TABLA YA EXISTE'
END
ELSE
BEGIN
CREATE TABLE ESTUDIANTE
(ID_CODIGO CHAR(6) NOT NULL,
APELLIDOS VARCHAR(60) NOT NULL,
NOMBRES VARCHAR(60) NOT NULL,
FEC_NAC DATETIME NOT NULL,
ESPECIALIDAD VARCHAR(40) NOT NULL)
ALTER TABLE ESTUDIANTE
ADD CONSTRAINT PK_ESTUDIANTE_IDCODIGO
PRIMARY KEY (ID_CODIGO)
END
/* TRABAJAR O IMPORTAR LA HOJA KARDEX PARA CREAR
LA TABLA KARDEX$; LUEGO CAMBIE DE NOMBRE A "KARDEX" */
Doc.: RONELD F. ORTIZ FIGUEROA
SQL 2000.
E-mail: roflu64@msn.com
USE TELESUP
GO
SELECT * FROM KARDEX
GO
SELECT AVG(TOTAL) FROM KARDEX WHERE VENDEDOR = 'SANCHEZ
SANCHEZ JUAN'
GO
IF (SELECT AVG(TOTAL) FROM KARDEX WHERE VENDEDOR = 'SANCHEZ
SANCHEZ JUAN')<250
BEGIN
SELECT SUBSTRING(NOMBRES, 1, 35) AS NOMBRES
FROM KARDEX
WHERE VENDEDOR = 'SANCHEZ SANCHEZ JUAN'
END
ELSE
SELECT ROUND(AVG(TOTAL),2) AS 'PROMEDIO: ' FROM KARDEX
WHERE VENDEDOR = 'SANCHEZ SANCHEZ JUAN'
GO
WHILE
WHILE (SELECT MIN(TOTAL) FROM KARDEX) < 1000
BEGIN
SELECT MIN(TOTAL) FROM KARDEX
IF (SELECT MIN(TOTAL)FROM KARDEX) < 1000
BEGIN
PRINT 'PROBANDO CDIGO'
BREAK
END
ELSE
CONTINUE
END
PRINT 'TRMINAMOS DE EJECUTAR'
/* PROCEDIMIENTOS */
/* CREAR PROCEDIMIENTOS
CREATE PROCEDURE NOMBRE VARIABLES
AS
SENTENCIA O ACCIN A REALIZAR */
GO
CREATE PROCEDURE INGRESAR
@ID_CODIGO CHAR(6),
@APELLIDOS VARCHAR(60),
@NOMBRES VARCHAR(60),
@FEC_NAC DATETIME,
@ESPECIALIDAD CHAR(8)
AS
INSERT INTO ESTUDIANTE VALUES (
@ID_CODIGO,
@APELLIDOS,
@NOMBRES,
@FEC_NAC,
@ESPECIALIDAD)
/* EJECUTAR EL PROCEDIMIENTO
EXEC NOMBRE VALORES O VARIABLES A UTILIZAR */
Doc.: RONELD F. ORTIZ FIGUEROA
SQL 2000.
E-mail: roflu64@msn.com
EXEC
INGRESAR
'D-0001','ESCALANTE
RODRGUEZ','JORGE
ANTONIO','14/08/1975','COMPUTACIN E INFORMTICA'
GO
/* MOSTRAR SI SE EJECUTO EL PROCEDIMIENTO */
SELECT * FROM ESTUDIANTE
/* ELIMINAR EL PROCEDIMIENTO CREADO
DROP PROCEDURE NOMBRE DEL PROCEDIMIENTO */
DROP PROCEDURE INGRESAR
GO
CREATE PROCEDURE FILTRO
@VENDEDOR VARCHAR(60)
AS
SELECT * FROM KARDEX WHERE VENDEDOR=@VENDEDOR
EXEC FILTRO 'SANCHEZ SANCHEZ JUAN'
GO
CREATE PROCEDURE SUMA
@N1 INT, @N2 INT
AS
DECLARE @S INT
SET @S=@N1+@N2
SELECT @S
GO
EXEC SUMA 14,10
GO
/* CREAR UN PROCEDIMIENTO QUE CUENTE CUANTOS SON DGITOS
PARES, IMPARES O CEROS DE UN NMERO DE 4 DGITOS*/
CREATE PROCEDURE MIENTRAS @N INT
AS
DECLARE @PAR INT, @IMPAR INT, @CERO INT, @RES INT
SET @CERO=0
SET @PAR=0
SET @IMPAR=0
SET @RES=0
IF LEN(@N)>4
SELECT 'TIENE QUE INGRESAR UN NMERO DE 4 DGITOS'
ELSE
WHILE (@N<>0)
BEGIN
SET @RES=@N % 10
SET @N=@N / 10
IF @RES=0
SET @CERO=@CERO+1
ELSE
IF (@RES % 2)=0
SET @PAR=@PAR+1
ELSE
SET @IMPAR=@IMPAR+1
END
SELECT 'PAR'=@PAR,'IMPAR'=@IMPAR,'CERO'=@CERO
GO
EXEC MIENTRAS 3157
SQL 2000.
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
GO
/* ACTUALIZAR EL TOTAL DE DEUDA A LOS CLIENTES DEL "SECTOR 1"
EN UN 5% DE SU DEUDA*/
UPDATE VENTAS SET TOTAL=TOTAL+ROUND((TOTAL * 0.05),2)
FROM CLIENTES, VENTAS
WHERE CLIENTES.SECTOR='SECTOR 1' AND
CLIENTES.CODIGO=VENTAS.CODIGO
SQL 2000.
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
SQL 2000.
E-mail: roflu64@msn.com
SELECT
/*VISUALIZAR EL CODIGO, NOMBRES Y TOTAL DEL CLIENTE
DE LA TABLA KARDE */
SELECT CODIGO, NOMBRES, TOTAL
FROM KARDEX
WHERE
TOTAL=(SELECT MAX(TOTAL) FROM KARDEX)
INNER JOIN
/* VISUALIZAR EL CODIGO, NOMBRES, SUSCRIPCION Y TOTAL
DE LAS TABLAS CLIENTES Y KARDEX */
SELECT CLIENTES.CODIGO,CLIENTES.NOMBRES,KARDEX.SUSCRIPCION,
KARDEX.TOTAL
FROM CLIENTES INNER JOIN KARDEX
ON CLIENTES.CODIGO=KARDEX.CODIGO
CREAR TABLAS A PARTIR DE UN RESULTADO
/* Crear una tabla llamada Cientes1 a partir
de la tabla Clientes
Observe que se van a crear la tabla con los
respectivos campos*/
USE TELESUP
SELECT CODIGO AS COD, NOMBRES AS NOM, DIRECCION AS DIRE
INTO CLIENTES1
FROM CLIENTES
GO
SELECT * FROM CLIENTES1
INSTRUCCIN GROUP BY
/* USANDO LA CLAUSULA GROUP BY (PERMITE AGRUPAR DATOS)*/
/*CALCULAR EL TOTAL DE LA TABLA KARDEX DE CADA CLIENTE*/
GO
SELECT CODIGO, NOMBRES, MAX(TOTAL) AS 'VALOR MXIMO'
FROM KARDEX
GROUP BY CODIGO,NOMBRES
INSTRUCCIN GROUP BY Y HAVING
/* UTILIZANDO HAVING (PARA INCLUIR DATOS) Y GROUP BY */
SELECT CODIGO,NOMBRES,SUM(TOTAL) AS 'TOTAL'
FROM KARDEX
GROUP BY CODIGO,NOMBRES
HAVING SUM(TOTAL)>=3000
INSTRUCCIN GROUP BY Y ROLLUP
/* UTILIZANDO ROLLUP (RESUMIR VALORES) Y GROUP BY */
SELECT CODIGO,NOMBRES,SUM(TOTAL) AS 'TOTAL'
Doc.: RONELD F. ORTIZ FIGUEROA
SQL 2000.
E-mail: roflu64@msn.com
FROM KARDEX
GROUP BY CODIGO,NOMBRES
WITH ROLLUP
ORDER BY CODIGO
INSTRUCCIN GROUP BY Y CUBE
/* UTILIZANDO CUBE (POSIBLES COMBINACIONES) Y GROUP BY */
SELECT CODIGO,NOMBRES,SUM(TOTAL) AS 'TOTAL'
FROM KARDEX
GROUP BY CODIGO,NOMBRES
WITH CUBE
ORDER BY CODIGO
INSTRUCCIN COMPUTE
/* UTILIZANDO COMPUTE (FILAS DETALLADAS Y UN SOLO VALOR) */
SELECT CODIGO,NOMBRES,TOTAL
FROM KARDEX
ORDER BY CODIGO
COMPUTE SUM(TOTAL)
INSTRUCCIN COMPUTE BY
/* UTILIZANDO COMPUTE BY (FILAS DETALLADAS Y RESUMEN
MLTIPLES) Y GROUP BY */
SELECT CODIGO,NOMBRES,TOTAL
FROM KARDEX
ORDER BY CODIGO
COMPUTE SUM(TOTAL) BY CODIGO
CREAR VISTAS
/* CREAR UNA VISTA A PARTIR DE UNA TABLA
VISTA: HABILIDAD DE GUARDAR UN QUERY*/
CREATE VIEW VISTA_CLIENTES
AS
SELECT * FROM CLIENTES
/* VISUALIZAR LA VISTA CREADA */
SELECT * FROM VISTA_CLIENTES
/* CREANDO OTRAS VISTAS */
CREATE VIEW VISTA_RESUMEN1
AS
SELECT CODIGO,NOMBRES,SUM(TOTAL) AS 'TOTAL'
FROM KARDEX
GROUP BY CODIGO,NOMBRES
HAVING SUM(TOTAL)>=3000
GO
SELECT * FROM VISTA_RESUMEN1
/* CREE OTRAS VISTAS SEGN SU CRITERIO */
Doc.: RONELD F. ORTIZ FIGUEROA