Professional Documents
Culture Documents
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
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.
6. Luego deber crear una Tabla que se denomine Universidad que contenga las siguientes caractersticas en la pgina siguiente.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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
No se ha especificado valor para Vacantes asi que por defecto se le asigna el nmero 20. Para verificar ejecutamos
SELECT * FROM curso
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.
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.
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.
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);
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;
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) );
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;
R/0 Seleccionando las Filas a Eliminar Creando una tabla de prueba Script 5.12
select *
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
R/63
R/0