Está en la página 1de 30

Este documento contiene una gua paso a paso de como crear una base de datos en SQL SERVER 2008

EXPRESS , las instrucciones de como crear tablas y columnas con sus tipos de dominio, crear restricciones de llaves primarias , llaves forneas , y realizar las operaciones bsicas de consulta, insercin , actualizacin y eliminacin de registros en una tabla.

GUIAS DE LABORATORIO DE BASE DE DATOS PARA OPERACIONES DDL Y DML EN SQL SERVER 2008
Autor: Ing. Elmer Arturo Carballo Ruz.

Contenido
OBJETIVOS: .......................................................................................................................................... 2 CREACION DE BASE DE DATOS: ........................................................................................................... 2 CREACION DE TABLAS Y COLUMNAS................................................................................................... 5 CREACION DE LLAVES PRIMARIAS ................................................................................................... 6 CREACION DE LLAVES FORANEAS ....................................................................................................... 8 INSERTAR TUPLAS A LA TABLA .......................................................................................................... 11 OPERACIN DE ACTUALIZACIN....................................................................................................... 12 OPERACIN DE ELIMINACIN ........................................................................................................... 12 Modelo Lgico ................................................................................................................................... 15 Modelo Fsico .................................................................................................................................... 16 Creacin de Usuarios......................................................................................................................... 16 Creacin de Tablas ............................................................................................................................ 18 Restriccin Primary Key (PK) ............................................................................................................. 20 Restriccin Foreign Key (FK) .............................................................................................................. 20 Restriccin Default (Valores por Defecto) ........................................................................................ 21 Restriccin NOT NULL (Nulidad de una Columna) ............................................................................ 22 Restriccin Unique (Valores nicos) ................................................................................................. 23

GUIA DE LABORATORIO No. 1


OBJETIVOS:
Crear una base de Datos en Sql Server 2008 express. Crear tablas con diferentes tipos de dominios de datos Disear restricciones de llaves primarias, forneas, not null entre otros. Utilizar de la propiedad identidad en atributos de tabla. Realizar operaciones DML de Manipulacin de Datos o Insertar o Modificar o Eliminar

CREACION DE BASE DE DATOS:


1. Primeramente deber ingresar en su instancia de base de datos creada cuando realizo la instalacin, donde deber conectarse segn en la ventana que aparece abajo.

2. El siguiente paso es crear una base de datos que le denominaremos UNIVERSIDAD , para ello deber deber posicionarse sobre el Explorador de objetos presionar click derecho

sobre la carpeta Base de Datos y aparece un men y elija Nueva base de datos Como la figura abajo.

3. Posteriormente al seleccionar la opcin Nueva base de datos le aparecer la siguiente ventana. En el nombre de la base de datos deber colocar universidad.

4. Luego en el explorador de objetos deber aparecer algo como la figura siguiente. Donde Aparecer la Base de Datos anteriormente creada Universidad.

CREACION DE TABLAS Y COLUMNAS


5. En el explorador de Objetos colquese sobre la base de datos anteriormente creada, vyase a la carpeta Tablas y presione clic derecho y le aparecer un men emergente como el de la figura abajo y elija Nueva tabla.

6. Luego deber crear una Tabla que se denomine Universidad que contenga las siguientes caractersticas en la pgina siguiente.

En esta deber deschequear permitir valores null.

En especificacin de Identidad en Propiedades de la Columna, deber seleccionar la categora Especificacin de Identidad y cambiar el valor por default Identidad a SI. Con un incremento e Inicializacin de 1.

CREACION DE LLAVES PRIMARIAS


7. El siguiente paso es crear la llave primaria y deber colocarse en la columna que desea colocar como llave primaria y hacer clic derecho y aparecer el siguiente men. Deber elegir Establecer clave principal.

Al seleccionar se realizar el siguiente cambio.

8. El siguiente paso es colocar el nombre de la tabla que se ha creado deber colocarle el nombre de Universidad.

9. Luego deber verificar que la tabla Universidad ha sido creada. En el explorador de objetos deber aparecer la tabla en el esquema dbo.universidad.

10. Posteriormente cree la siguiente tabla denominada Facultad con las siguientes caractersticas:

Deber repetir los pasos del 5 al 9 respectivamente. 11. Luego para poder realizar una relacin de llave fornea deber realizar un diagrama de base de datos , deber seleccionar en el explorador de objetos.

CREACION DE LLAVES FORANEAS


Posteriormente deber presionar clic derecho sobre la la carpeta seleccionada Diagrama de base de datos, y aparecer un men emergente como el siguiente.

12. Elegir las tablas que aparecen en la lista, como el de la figura abajo y presione el botn agregar. Una vez aparezca

13. Una vez haya seleccionado las tablas deber aparecerle un diagrama como el siguiente:

14. Deber elegir del men que aparece en la parte superior del men, como el siguiente y seleccionar el botn de relaciones.

15. Al presionar el botn de relaciones deber aparecer un men como el siguiente.

Dentro de esta opcin elija la Categora Especificacin de tablas y columnas como se muestra en la figura abajo. Y Presione sobre el botn que muestra la figura y flecha.

16. Elija la siguiente combinacin de Tablas con sus columnas respectivas.

Posteriormente una vez seleccionada las tablas y columnas presiona aceptar y cerrar. 17. Aparecer la figura del diagrama de la base de datos modificada como la siguiente. En este momento usted ya creo la llave fornea de Facultad que hace referencia a la llave primaria de Universidad.

18. Ingresar datos a la tabla Universidad y a la Tabla Facultad y verifique las validaciones de los constrainst creados. Para poder realizar esto deber ir al explorador de objetos , presionar clic derecho y seleccionar la opcin Editar las primeras 200 filas.

INSERTAR TUPLAS A LA TABLA


19. Inserte la siguiente informacin en la tabla Universidad.

Posteriormente de haber insertado los registros deber presionar clic en el botn ejecutar del men siguiente. Que se encuentra en la parte superior izquierda de su men. Deber presionar el botn de admiracin color rojo.

20. Inserte la informacin en la Tabla Facultad segn la figura siguiente. Repita los pasos 18 y 19 respectivamente.

OPERACIN DE ACTUALIZACIN
21. Intente modificar la Facultad de Ciencias Sociales con el IdUniversidad 4 le deber aparecer un mensaje como el siguiente

A que cree que se debe este mensaje? Es porque Universidad con cdigo 4 no existe en la tabla Universidad y la tabla Facultad hace referencia a esta tabla por llave fornea.

OPERACIN DE ELIMINACIN
22. Intente eliminar el registro de la tabla Universidad cuyo cdigo es 1 y el nombre es Universidad Tecnolgica. Que resultad debera dar? Aparecer el mensaje siguiente.

GUIA DE LABORATORIO No. 2


OBJETIVOS: Desarrollar el siguiente ejemplo aplicando lo visto en la gua anterior. Aplicar los conceptos de tablas , columnas y dominios de datos respectivos Crear las llaves primarias , forneas de las diferentes tablas Hacer las operaciones de Insercin , Modificacin y Eliminacin de registros.

GUIA DE LABORATORIO No. 3.


OPERACIONES DML.
Tabla Matricula y 8 en la Tabla Pagos. 2. Actualizar 2 notas en la Tabla Matricula. 3. Eliminar 1 pago en la tabla Pagos.

OBJETIVOS: 1. Insertar 4 registros en la Tabla Curso, 4 registros en la Tabla Alumno, 8 registros en la

4. Eliminar un curso que ya esta en matricula. Que mensaje le enva?. Interprete el resultado 5. Haga lo mismo con Alumno que ya tiene matricula.

GUIA DE LABORATORIO No. 4.


OBJETIVOS:

Creacin de un Esquema de Base de Datos

Aprender a leer Modelos lgicos y Fsicos de Base de Datos Crear usuarios de Base de Datos Crear login de base de Datos Otorgar privilegios de Base de Datos Crear Tablas de forma manual Crear restricciones de llaves primarias , llaves forneas, valores por defecto, restricciones check y not null de manera manual

Caso a Desarrollar
El siguiente modelo trata de una empresa que ofrece cursos de extensin, los participantes tienen la libertad de matricularse sin ninguna restriccin, y pueden tener facilidades de pago.

Modelo Lgico

Modelo Fsico

Creacin de Usuarios
Para la creacin de los usuarios se debe de haber instalado el SQL-Server 2008 con la opcin Autenticacin Modo Mixto y haber asignado una contrasea para el usuario sa. Primero se debe crear la base de datos le llamaremos egcc, con la siguiente sintaxis:
Script 4.1

Al entrar haga una nueva consulta

Y digite los siguientes comandos:


Use Master--Se debe usa Master para poder crear la Base de Datos GO Create database egcc; GO

Luego se crea el usuario para acceder a esta base de datos, para ello debemos ejecutar el siguiente script:

Script 4.2 --Creacin de usuario Use egcc--Se debe usar esta base para poder asignar a esta el usuario a crear GO Create login[egcc] with password='egcc123456',default_database=[egcc] --Se crea el login con ese usuario y se le asigna la base de datos por defecto GO Exec sp_grantdbaccess 'egcc' --Se crea el usuario para acceder a esta base de datos GO Exec sp_addrolemember 'db_owner','egcc' --Asignacin del rol para dueo de la base de datos a payroll GO

NOTA: La contrasea debe de contener al menos 8 caracteres entre letras, nmeros y smbolos. Para saber si hemos creado bien el usuario, debemos darle clic a nueva conexin en el Explorador de Objetos.

Luego aparecer la ventana de conexin al servidor. Se selecciona la opcin Autenticacin de SQL Server y se llenan los datos correspondientes como lo muestra la siguiente figura:

Al conectarse, observaran que en el explorador de objetos (siguiente figura) en la parte de Bases de Datos solo aparecer la base egcc ya que al momento de crear el usuario solo lo asignamos a esa base de datos en especifico. Si aparecen mas bases de datos no estarn accesibles para este usuario.

Creacin de Tablas
Sintaxis
Create Table [esquema].[NombreTabla]( [Columna1] [Tipo1] [ NULL | NOT NULL ], [Columna2] [Tipo2] [ NULL | NOT NULL ], [Columna3] [Tipo3] [ NULL | NOT NULL ], . . . . . . ) GO

Si no se coloca el esquema el gestor colocara automticamente el esquema por defecto asignado al usuario. En el caso de autenticacin de Windows el esquema es dbo y en el caso de un usuario ser el nombre del usuario por ejemplo en el caso del usuario egcc su esquema seria [egcc].Tabla, como lo muestra la siguiente figura:

La palabra reservada por GO separa los lotes del script Tabla Curso
Script 4.3 CREATE TABLE Curso( IdCurso char(4) NOT NULL, NomCurso varchar(40) NOT NULL, Vacantes numeric(2, 0) NOT NULL, Matriculados numeric(2, 0) NOT NULL, Profesor varchar(40) NULL, PreCurso numeric(8, 2) NOT NULL ) GO

Tabla Alumno Escriba el script para crear la tabla Alumno. Tabla Matricula Escriba el script para crear la tabla Matricula. Tabla Pago Escriba el script para crear la tabla Pago

Restriccin Primary Key (PK)


La restriccin Primary Key se utiliza para definir la clave primaria de una tabla, en el siguiente cuadro se especifica la(s) columna(s) que conforman la PK de cada tabla. Tabla Curso Alumno Matricula Pago Sintaxis
Alter Table NombreTabla Add Constraint PK_NombreTabla Primary Key ( Columna1, Columna2, . . . );

Primary Key Idcurso IdAlumno IdCurso, IdAlumno IdCurso, IdAlumno, Cuota

Tabla Curso
Script 4.4 Alter Table Curso Add Constraint PK_Curso Primary Key ( IdCurso ); GO

Tabla Alumno Escriba el script para crear la PK de la tabla Alumno. Tabla Matricula Escriba el script para crear la PK de la tabla Matricula. Tabla Pago Escriba el script para crear la PK de la tabla Pago.

Restriccin Foreign Key (FK)


La restriccin Foreign Key se utiliza para definir la relacin entre dos tablas, en el siguiente cuadro se especifica la(s) columna(s) que conforman la FK de cada tabla.

Foreign Key IdCurso Matricula IdAlumno Tabla

Tabla Referenciada Curso Alumno

Pago Sintaxis

IdCurso, IdAlumno

Matricula

Alter Table NombreTabla Add Constraint FK_NombreTabla_TablaReferenciada Foreign Key ( Columna1, Columna2, . . . ) References TablaReferenciada;

Es necesario que en la tabla referenciada est definida la PK, por que la relacin se crea entre la PK de la tabla referenciada y las columnas que indicamos en la clusula Foreign Key.

1ra FK La primera FK de esta tabla es IdCurso y la tabla referenciada es Curso, el script para crear esta FK es el siguiente:
Script 4.5 Alter table Matricula Add Constraint FK_Matricula_Curso Foreign Key ( IdCurso ) References Curso; GO

2da FK La segunda FK de esta tabla es IdAlumno y la tabla referenciada es Alumno, escriba usted el script para crear sta FK. Tabla Pago Esta tabla solo tiene una FK y esta compuesta por dos columnas: IdCurso e IdAlumno, y la tabla referenciada es Matricula, escriba usted el script para crear sta FK.

Restriccin Default (Valores por Defecto)


El Valor por Defecto es el que toma una columna cuando no especificamos su valor en una sentencia insert. Sintaxis

Alter table NombreTabla ADD CONTRAINT NombreContraint DEFAULT (Expresin) FOR Columna

Ejemplo

El nmero de vacantes por defecto para cualquier curso debe ser 20.
Script 4. 6 ALTER TABLE [Curso] ADD CONSTRAINT [DF_Curso_Vacantes] DEFAULT ((20)) FOR [Vacantes] GO

Para probar el default insertemos un registro en la tabla curso.


Script 4. 7 INSERT INTO Curso (IdCurso,NomCurso,Matriculados,Profesor ,PreCurso) VALUES ('C001','Oracle 9i- Nivel inicial', 10,'Gustavo Coronel', 350) GO

No se ha especificado valor para Vacantes asi que por defecto se le asigna el nmero 20. Para verificar ejecutamos
SELECT * FROM curso

Restriccin NOT NULL (Nulidad de una Columna)


Es muy importante determinar la nulidad de una columna, y es muy importe para el desarrollador tener esta informacin a la mano cuando crea las aplicaciones.
Sintaxis Alter Table NombreTabla Alter Column NombreColumna TipoColumna [NULL|NOT NULL]

Ejemplo En la tabla alumno, la columna Telfono no debe aceptar valores nulos.


Script 4. 8 ALTER TABLE Alumno ALTER COLUMN Telefono varchar(15) NOT NULL

Para verificar la definicin de la tabla Alumno y corroborar los cambios, utilizamos el procedimiento almacenado sp_help y como argumento ponemos el nombre de la tabla de la cual queremos ver su estructura.
exec sp_help 'Alumno'

Si queremos insertar un alumno tendramos que ingresar datos para todas las columnas.
Script 4. 9 INSERT INTO Alumno VALUES (10001,'Ricardo Marcelo', 'Ingeniera', NULL)

Obtenemos

Mens. 515, Nivel 16, Estado 2, Lnea 1 No se puede insertar el valor NULL en la columna 'Telefono', tabla 'egcc.dbo.Alumno'. La columna no admite valores NULL. Error de INSERT. Se termin la instruccin.

El mensaje de error claramente nos indica que no se puede insertar valores nulos en la columna TELEFONO, de la tabla ALUMNO.

Restriccin Unique (Valores nicos)


En muchos casos debemos garantizar que los valores de una columna conjunto de columnas de una tabla acepten solo valores nicos.
Sintaxis Alter Constraint NombreTabla Add Constraint U_NombreTabla_NombreColumna Unique ( Columna1, Columna2, . . . );

Ejemplo No puede haber dos alumnos con nombres iguales.


Script 4.10 Alter Table alumno

Add Constraint U_Alumno_NomAlumno Unique (NomAlumno) GO

Para probar la restriccin insertemos datos.


Script 4.11 Insert Into Alumno Values( 10001, 'Sergio Matsukawa', 'San Miguel', '456-3456' ); GO Insert Into Alumno Values( 10002, 'Sergio Matsukawa', 'Los Olivos', '521-3456' ); GO

Como ingresamos un nombre repetido, nos tira el siguiente mensaje de error ya que hemos definido el Constraint UNIQUE.
(1 filas afectadas) Mens. 2627, Nivel 14, Estado 1, Lnea 1 Infraccin de la restriccin UNIQUE KEY 'U_Alumno_NomAlumno'. No se puede insertar una clave duplicada en el objeto 'dbo.Alumno'. Se termin la instruccin.

Restriccin Check (Reglas de Validacin)


Las reglas de validacin son muy importantes por que permiten establecer una condicin a los valores que debe aceptar una columna.
Sintaxis Alter Table NombreTabla Add Constraint CK_NombreTable_NombreColumna Check (Condicin);

Ejemplo El precio de un curso no puede ser cero, ni menor que cero.


Script 4.12 Alter Table Curso Add Constraint CK_Curso_PreCurso Check ( PreCurso > 0 ) GO

Probemos el constraint ingresando datos.


Script 4.13 Insert Into Curso

Values( 'C002', 'Asp.NET', 20, 7, 'Ricardo Marcelo', -400.00 )

Al intentar ingresar un curso con precio negativo, inmediatamente nos muestra el mensaje de error indicndonos que se est violando la regla de validacin.
Mens. 547, Nivel 16, Estado 0, Lnea 1 Instruccin INSERT en conflicto con la restriccin CHECK "CK_Curso_PreCurso". El conflicto ha aparecido en la base de datos "egcc", tabla "dbo.Curso", column 'PreCurso'. Se termin la instruccin.

GUIA DE LABORATORIO No. 5.


OBJETIVOS:

Operaciones de Lenguajes de Manipulacin de Datos INSERT, UPDATE, DELETE y TRUNCATE.

Crear un nuevo esquema denominado HR Aprender a insertar tuplas a las tablas de un esquema Actualizar datos existentes en las tablas del esquema Eliminar registros de las tablas Verificar los conceptos de integridad de dominio, de tablas y referencial

A. Primeramente deber crear un usuario y darle los privilegios correspondiente segn los pasos de la gua 4 , ejecutar los pasos 4.1 y 4.2 creando una base de datos que se denomine HR , login HR y pasword HR03. B. Leer el script de base de datos 11_Readme_Bases_SQLServer.txt. C. Una vez haya realizado los pasos anteriores deber ejecutar el script 12_creacion_hr_SQL.txt . Este script permitir crear la base de datos de HR. D. Posteriormente ingresara datos en la base de datos con el script 13_datos_hr_SQL.txt.

MODIFICANDO DATOS INSERTANDO FILAS Inserciones una Sola Fila Script 5.1
insert into DEPARTMENTS values (300, 1800,'Departamento 300',100)

INSERTANDO FILAS CON VALORES NULOS Script 5.2 Mtodo Implcito: Se omiten las columnas que aceptan valores nulos.
insert into departments(department_id, department_name) values(301, 'Departamento 301');

Script 5.3 Mtodo Explicito: Especificamos la palabra clave NULL en las columnas donde queremos insertar un valor nulo.
insert into departments (department_id, department_name, LOCATION_ID, MANAGER_ID) values(302, 'Departamento 302', NULL, NULL);

INSERTANDO VALORES ESPECIALES Script 5.4


insert into employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) values(250, 'Gustavo', 'Coronel', 'gcoronel@miempresa.com', '511.481.1070', CURRENT_TIMESTAMP , 'FI_MGR', 14000, NULL, 102, 100);

Insertando Valores Especficos de Fecha Script 5.5


insert into employees(employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) values(251, 'ricardo', 'marcelo', 'rmarcelo@techsoft.com', '511.555.4567', cast('04/02/2005 00:00:00 am' as datetime), 'ac_account', 11000, null, 100, 30);

Modificando Datos Actualizando una Columna de una Tabla Script 5.6 Incrementar el salario de todos los empleados en 10%.
update employees set salary = salary * 1.10;

Seleccionando las Filas a Actualizar Script 5.7 Ricardo Marcelo (Employee_id=251) ha sido trasladado de departamento de Compras (Department_id = 30) al departamento de Ventas (Department_id = 80).
select employee_id, first_name, department_id, salary from employees where employee_id = 251;

update employees set department_id = 80 where employee_id = 251;

select employee_id, first_name, department_id, salary from employees where employee_id = 251;

Script 5..8 Este script crea la tabla resumen_det e inserta los departamentos.
create table resumen_dept ( department_id numeric(4) primary key, emps numeric(4), planilla numeric(10,2) );

insert into resumen_dept (department_id) select department_id from departments;

Script 5.9 Este script actualiza la tabla resumen_dept.


update resumen_dept set ((emps, planilla) = (select count(*), sum(salary) from employees))

Error de Integridad Referencial Script 5.10


update employees set department_id = 55 where department_id = 110;

Error 06/12/2009 17:20:38 0:00:00.328 SQL Server Database Error: Instruccin UPDATE en conflicto con la restriccin FOREIGN KEY "FK_EMPLOYEE_DEPART_EM_DEPARTME". El conflicto ha aparecido en la base de datos "hr", tabla "dbo.DEPARTMENTS", column 'DEPARTMENT_ID'. 154 0 Eliminar Todas la Filas de una Tabla Script 5.11
select count(*) from test;

R/30
delete from test;

select count(*) from test;

R/0 Seleccionando las Filas a Eliminar Creando una tabla de prueba Script 5.12
select *

into copia_emp from employees;

Eliminando una sola fila Script 5.13


delete from copia_emp where employee_id = 190;

Eliminando un grupo de filas Script 5.14


delete from copia_emp where department_id = 50;

Error de Integridad Referencial Script 5.15


delete from departments where department_id = 50;

Error 06/12/2009 17:41:47 en conflicto con la restriccin conflicto ha aparecido en 'DEPARTMENT_ID'. 181 Truncando una Tabla Script 5.16

0:00:00.265 SQL Server Database Error: Instruccin DELETE REFERENCE "FK_EMPLOYEE_DEPART_EM_DEPARTME". El la base de datos "hr", tabla "dbo.EMPLOYEES", column 0

select count(*) from copia_emp;

R/63

truncate table copia_emp;

select count(*) from copia_emp;

R/0