martes, 2 de marzo de 2010

Script de Base de Datos - Ejemplo SQL Server 2005

SET DATEFORMAT DMY 
USE master

IF EXISTS(SELECT name FROM sysdatabases WHERE name='ENERGIA')
   DROP DATABASE ENERGIA
CREATE DATABASE ENERGIA
USE ENERGIA

CREATE TABLE Operacion (CodOpe char(2) not null,
Nombre varchar(40) not null,CostoManoObra decimal(6,2))

CREATE TABLE Cliente (CodCli char(4) not null,
Nombre varchar(60) not null, Direccion varchar(70) not null,
TipoCorriente char(1),Tarifa char(1), NroSuministro char(10),
Estado char(1))

CREATE TABLE Realizaciones(CodRea int not null,CodCli char(4),
CodOpe char(2),FechaProgramada datetime,FechaRealizacion datetime)

CREATE TABLE Consumo(CodRea int not null,CodRec char(2) not null,
ConsumoEstimado int,ConsumoReal int)

CREATE TABLE Recurso(CodRec char(2) not null,Nombre varchar(30) not null,
CostoUnitario decimal(4,2),Estado char(1))


ALTER TABLE Operacion ADD PRIMARY KEY(CodOpe)
ALTER TABLE Cliente ADD PRIMARY KEY(CodCli)
ALTER TABLE Realizaciones ADD PRIMARY KEY(CodRea)
ALTER TABLE Consumo ADD PRIMARY KEY(CodRec,CodRea)
ALTER TABLE Recurso ADD PRIMARY KEY(CodRec)


ALTER TABLE Realizaciones ADD FOREIGN KEY(CodOpe) REFERENCES Operacion
ALTER TABLE Realizaciones ADD FOREIGN KEY(CodCli) REFERENCES Cliente

ALTER TABLE Consumo ADD FOREIGN KEY(CodRec) REFERENCES Recurso
ALTER TABLE Consumo ADD FOREIGN KEY(CodRea) REFERENCES Realizaciones

ALTER TABLE Cliente ADD CONSTRAINT CK_TIPO CHECK (TipoCorriente='M' OR TipoCorriente='T')
ALTER TABLE Cliente ADD CONSTRAINT CK_TARIFA CHECK (Tarifa='I' OR Tarifa='R')
ALTER TABLE Cliente ADD CONSTRAINT CK_ESTADOC CHECK (Estado='A' OR Estado='I')
ALTER TABLE Recurso ADD CONSTRAINT CK_ESTADOR CHECK (Estado='A' OR Estado='I')

INSERT OPERACION VALUES('1','CONEXION DE SERVICIO',50)
INSERT OPERACION VALUES('2','CORTE DE SERVICIO',100)
INSERT INTO OPERACION(CODOPE,NOMBRE) VALUES('3','REPARACION DE SERVICIO')

INSERT CLIENTE VALUES('1000','ROBERTO GONZALES','PANAMERICANA NORTE KM 770','T','I','1000','A')
INSERT CLIENTE VALUES('2000','WILLIAM URBINA','PANAMERICANA NORTE KM 760','M','R','1001','A')
INSERT CLIENTE VALUES('3000','RENZO CHIROQUE','PANAMERICANA NORTE KM 790','M','R','1002','A')
INSERT CLIENTE VALUES('4000','DIANA GONZALES','PANAMERICANA NORTE KM 778','M','R','1003','I')
INSERT CLIENTE VALUES('5000','FAUSTO LA BARRERA','PANAMERICANA NORTE KM 772','T','I','1004','A')

INSERT RECURSO VALUES('10','RECURSO 1',2,'A')
INSERT RECURSO VALUES('20','RECURSO 2',6,'A')
INSERT RECURSO VALUES('30','RECURSO 3',3,'I')

INSERT REALIZACIONES VALUES(1,'1000','1','1/3/2006','1/3/2006')
INSERT REALIZACIONES VALUES(2,'2000','1','2/3/2006','10/3/2006')
INSERT REALIZACIONES VALUES(3,'3000','1','10/3/2006','11/3/2006')
INSERT REALIZACIONES VALUES(4,'4000','1','15/3/2006','15/3/2006')
INSERT REALIZACIONES VALUES(5,'2000','1','15/3/2006','16/3/2006')
INSERT REALIZACIONES VALUES(6,'1000','2','16/3/2006','20/3/2006')
INSERT REALIZACIONES VALUES(7,'3000','3','1/5/2006','')
INSERT REALIZACIONES VALUES(8,'2000','3','3/5/2006','')
INSERT REALIZACIONES VALUES(9,'1000','3','4/5/2006','')

INSERT CONSUMO VALUES(1,'10',1500,1200)
INSERT CONSUMO VALUES(1,'20',1800,1500)
INSERT CONSUMO VALUES(2,'10',1500,1200)
INSERT CONSUMO VALUES(2,'20',1500,1200)
INSERT CONSUMO VALUES(4,'10',1500,1200)
INSERT CONSUMO VALUES(5,'20',1500,1200)

SELECT * FROM OPERACION
SELECT * FROM CLIENTE
SELECT * FROM REALIZACIONES
SELECT * FROM CONSUMO
SELECT * FROM RECURSO

No hay comentarios:

Publicar un comentario