jueves, 28 de mayo de 2015

Query para crear una Base de Datos en Sql Server



Buenas noches amigos en esta oportunidad les voy a compartir un Query en donde vamos a crear una base Biblioteca con seis tablas, sus respectivas relaciones, constraints e índices, el ejemplo está realizado en SQLServer.
Obviamente para “copiar” este ejemplo debes tener una idea de que es una Base de Datos; este ejemplo fue tomado, (Solo le modifique para que se ejecute en Sql Server) de la guía didáctica de Base de Datos avanzada de la Universidad Técnica Particular de Loja.

/******Inicio creación de la Base******/
USE master ;
GO
CREATE DATABASE Biblioteca
ON
( NAME = Biblioteca_dat,
    --FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\saledat.mdf'
    FILENAME = 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Biblioteca_dat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Biblioteca_log,
    FILENAME = 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Biblioteca_log.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO
/******Fin creacion de la Base******/


/******Inicio creación Tablas ******/

USE Biblioteca
GO
/* INICIO TABLA TIPO_USUARIO*/
CREATE TABLE TIPO_USUARIO
(
idTipoUsuario numeric(4),
descTipoUsuario nvarchar(20) NOT NULL,
CONSTRAINT PK_TIPOUSUARIO PRIMARY KEY (idTipoUsuario)--Definimos la clave primaria
);
/* FIN TABLA TIPO_USUARIO*/

/* INICIO TABLA USUARIO*/
CREATE TABLE USUARIO
(
idUsuario varchar (8) NOT NULL,
idTipoUsuario numeric(4) NOT NULL,
apelUsario varchar (35)NOT NULL,
nomUsuario varchar (35)NOT NULL,
direccion varchar (50) NULL, --Por defecto los campos aceptan valores nulos por lo que no haria falta --poner null
habilitado bit  NOT NULL,
fechaExpCarnet datetime NOT NULL,
fechaEmiCarnet datetime NOT NULL,
CONSTRAINT PK_USUARIO_idUsuario PRIMARY KEY (idUsuario),
CONSTRAINT FK_USUARIO_idTipoUsuario  FOREIGN KEY (idTipoUsuario) REFERENCES TIPO_USUARIO  (idTipoUsuario)
);
/* FIN TABLA USUARIO*/

/* INICIO MAT_BIBLIO*/
CREATE TABLE MAT_BIBLIO
(
idMatBiblio varchar (20)NOT NULL,
tituloMatBiblo varchar (150) NOT NULL,
editorial varchar (50),
pais varchar (20),
anio datetime,
numPag numeric,
existencia numeric NOT NULL,
CONSTRAINT PK_MAT_BIBLIO_idMatBiblio PRIMARY KEY (idMatBiblio)
);
/* FIN TABLA MAT_BIBLIO*/

/* INICIO TABLA PRESTAMO*/
REATE TABLE PRESTAMO
(
codOper varchar (7) PRIMARY KEY,--Esta es otra forma de definir la clave primaria
idMatBiblio varchar(20) NOT NULL,
idUsuario varchar(8) NOT NULL,
fechaPres datetime NOT NULL,
fechaDev datetime NOT NULL,
numDias numeric NOT NULL,
CONSTRAINT FK_PRESTAMO_idMatBiblio1 FOREIGN KEY (idMatBiblio) REFERENCES MAT_BIBLIO(idMatBiblio),
CONSTRAINT FK_PRESTAMO_idMatBiblio2 FOREIGN KEY (idUsuario) REFERENCES USUARIO(idUsuario)
);
/* FIN TABLA PRESTAMO*/

/* INICIO TABLA AUTOR*/
CREATE TABLE AUTOR
(
idAutor varchar (4) NOT NULL,
nomAutor varchar (50) NOT NULL,
CONSTRAINT PK_AUTOR_idAutor PRIMARY KEY(idAutor)
);
/* FIN TABLA AUTOR*/

/* INICIO TABLA MB_AUTOR*/
CREATE TABLE MB_AUTOR
(
idMatBiblio varchar (20) NOT NULL,
idAutor varchar (4) NOT NULL,
CONSTRAINT PK_MB_AUTOR_idMatBiblio_idAutor PRIMARY KEY (idMatBiblio,idAutor),
CONSTRAINT FK_MB_AUTOR_idMatBiblio FOREIGN KEY (idMatBiblio) REFERENCES MAT_BIBLIO (idMatBiblio),
CONSTRAINT FK_MB_AUTOR_idAutor FOREIGN KEY (idAutor) REFERENCES AUTOR (idAutor)
);
/* FIN TABLA MB_AUTOR*/

/******Fin creación Tablas ******/


Si el script se ejecuta correctamente les debe quedar esto: una Base de Datos llamada Biblioteca con seis tablas.

 

Si necesitas ayuda con respecto a este tema no dudes en escribirme al Twitter.

Saludos:
Fernando

No hay comentarios:

Publicar un comentario