You are on page 1of 5

DDL Práctica Base Datos SQL (Definición

)
use master go create database academia on (Name=Academia_data, filename='C:\......\mssql\data\academia_data.mdf', size=10, maxsize=100, filegrowth=5) LOG ON (Name=Academia_log, filename='C:\.......\mssql\data\academia_log.ldf', size=10, maxsize=25, filegrowth=5)

1. Generamos las tablas Alumnos, Cursos y Profesores
use academia create table profesores ( nombre char(20) unique not null, apellido1 char(20), apellido2 char(20), dni char(9) primary key, direccion char(40), titulo char(40), gana integer not null ); create table cursos ( nombre_curso char(20) unique not null, cod_curso smallint primary key, dni_profesor char(9), maximo_alumnos smallint, fecha_inicio date, fecha_fin date, num_horas int check (num_horas>0) foreign key(dni_profesor) references profesores(dni), check (fecha_fin>fecha_inicio) ); create table alumnos ( nombre char(20), apellido1 char(20), apellido2 char(20), dni char(9) primary key, direccion char(40), sexo char(1) check (sexo='H' or sexo='M'), fecha_nacimiento date, curso smallint not null, foreign key(curso) references cursos(cod_curso) )

2. Insertamos datos en las tres tablas:

direccion.'Alhamar 3'. '123523'. apellido2. Corrección del valor sexo: insert into alumnos (nombre. curso) values ('Manuel'. Fil. Inglesa'. Línea 1 Instrucción INSERT en conflicto con la restricción CHECK "CK__alumnos__sexo__117F9D94". 5400). dni. curso) values ('Antonia'. dni. fecha_inicio. 547. fecha_nacimiento. 'Arch'. '4896765'. 1). direccion. curso) values ('Lucas'. num_horas) values ('Administración Linux'. 'Juan Alfonso. 'Oliva'. '43215643'. '01/11/1979'. column 'sexo'. '123523'. sexo. apellido1. curso) values ('José'. '01/11/2000'. Alumnos insert into alumnos (nombre. 120). maximo_alumnos. fecha_inicio. apellido1. '03/02/1977'. Se terminó la instrucción. apellido2. dni. '32432455'. El conflicto ha aparecido en la base de datos "academia". 'Lda. 120). 2. sexo. '43215643'. fecha_nacimiento. apellido1. insert into alumnos (nombre. 'V'. Informática'. 547. titulo. 15. 'M'. titulo. fecha_fin.'Jarcha 5'. 'Pedrós'. '22/12/2000'. insert into cursos (nombre_curso. column 'sexo'. '32432455'. '3123689'. curso) values ('Lucas'. 'H'. El conflicto ha aparecido en la base de datos "academia". 4'. insert into alumnos (nombre. direccion. 2). num_horas) values ('Inglés Básico'. direccion. insert into alumnos (nombre.alumnos". 1. Nivel 16. apellido2. 'Manilva'. 'Manilva'.alumnos". apellido1. 'Pérez'. Se terminó la instrucción. apellido2. 'López'.Profesores insert into profesores (nombre. Nivel 16. 'Rubio'. dni_profesor. 'Alcántara'. dni. '01/11/1979'. 'H'. 'Puerta Negra. 7500). Línea 1 Instrucción INSERT en conflicto con la restricción CHECK "CK__alumnos__sexo__117F9D94". 2'. Cursos insert into cursos (nombre_curso. tabla "dbo. insert into profesores (nombre. fecha_nacimiento. tabla "dbo. gana) values ('María'. direccion. Mens. '2567567'. apellido1. sexo. direccion. apellido2. sexo. 'López'. Corrección del valor sexo: . 'V'. apellido1. sexo. 32'. apellido1. '01/09/2000'. dni_profesor. apellido2. 'Caballar'.'Alhamar 3'.'Julián.'Maniqui 21'. 'Lopez'. 'Ing. gana) values ('Juan'. 'Alcántara'. 1). Mens. cod_curso. direccion. dni. 1). 'López'. Estado 0. Estado 0. dni. cod_curso. apellido2. dni. 2).

Línea 1 Infracción de la restricción PRIMARY KEY 'PK__alumnos__D87608A60F975522'.alumnos'.'Jose Gomez 1'. direccion. apellido2. apellido2. tabla "dbo. 8. Línea 1 No se puede insertar el valor NULL en la columna 'curso'. 2627. alter table alumnos drop constraint CK__alumnos__sexo__117F9D94. apellido1. Error de INSERT. 3.alumnos'. Estado 1. Mens. 'Pérez'.'Jarcha 5'. Mens. Error de INSERT. 'H'. Añadimos el campo edad de tipo numérico a la tabla profesores alter table profesores add edad smallint. Nivel 16. '03/02/1977'. dni. Mens. Nivel 16. 'Retal'. 'Navas'.dbo. '4896765'. 515. 5. Mens. apellido1. Estado 2. dni y curso insert into alumnos (nombre. apellido2. 'Retal'. 4. 'Navas'. apellido2. '123524'. apellido1. Se terminó la instrucción. insert into alumnos (nombre.alumnos'. 'H'. 'Prieto'. Eliminar restricción que controla los valores permitidos para el atributo sexo. El conflicto ha aparecido en la base de datos "academia". Inserción restricción no nula en el campo fecha_inicio de cursos alter table cursos add constraint CK_fecha_inicio check (fecha_inicio<>null). La columna no admite valores NULL. curso) values ('Sergio'. Probar restricción en tabla alumnos en no poner curso insert into alumnos (nombre. Eliminar restricción not null del atributo gana alter table profesores alter column gana integer null. La columna no admite valores NULL. 'Huber'. fecha_nacimiento. 7. sexo. Línea 1 No se puede insertar el valor NULL en la columna 'curso'. 'Caballar'.dbo. alter table cursos add constraint CK_num_horas check (num_horas>100). No se puede insertar una clave duplicada en el objeto 'dbo. column 'sexo'. 1). '52364970L'. 1). 515. direccion. Corrección del valor sexo. apellido1. tabla 'academia. Nivel 16. 6. dni. Se terminó la instrucción. 'P'). . 9. tabla 'academia. 'H'). Se terminó la instrucción. curso) values ('José'. '123523'. dni. sexo) values ('Diego'. sexo) values ('Sergio'. 547. Estado 0. Línea 1 Instrucción INSERT en conflicto con la restricción CHECK "CK__alumnos__sexo__117F9D94".alumnos". Estado 2. alter table cursos add constraint CK_maximo_alumnos check (maximo_alumnos>=10).insert into alumnos (nombre. Añadir restricciones alter table profesores add constraint CK_edad check (edad>=18 and edad<=65). Se terminó la instrucción. dni. Nivel 14. sexo.

'789678'. Corrección curso: insert into alumnos (nombre. dni. insert into alumnos (nombre. dni. 13.10. direccion. apellido1. '789678'.'Martos 5'. apellido2. 150). dni. 'Sevilla'. fecha_nacimiento. sexo.Inserción registros tabla profesores y alumnos insert into profesores (nombre. 'Lopez'.'Martos 5'. '43215643'. 12. titulo) values ('José'. update alumnos set curso=5 where nombre='Antonia' and apellido1='López'. maximo_alumnos. sexo. 3). '01/11/2000'. apellido2. direccion. '32432455'. . alter table cursos drop constraint FK__cursos__dni_profesor__0BC6C43E. curso) values ('María'. 'Jaén'. Informática'). apellido1. dni_profesor. 5. 15. alter table profesores add constraint pk_nombre_apellidos primary key clustered (nombre. Da error al no existir el código 5 del curso Creamos un curso para que se pueda corregir el curso insert into cursos (nombre_curso. '10/03/1977'. fecha_inicio.Eliminar la profesora Laura Jiménez delete from profesores where nombre='Laura' and apellido1='Jiménez'. curso) values ('María'. num_horas) values ('Inglés Avanzado'. cod_curso. 11. 'Jaén'. 14. fecha_fin. 'Ing. apellido1. 'Arch'.Cambiar la clave primaria de Profesor al nombre y apellidos. alter table profesores drop constraint PK__profesor__D87608A67F60ED59. apellido2. 'Sevilla'. la correcta es 23/12/1976 update alumnos set fecha_nacimiento='23/12/1976' where nombre='Antonia' and apellido1='López'. 2). 'M'. direccion.Cambiar a Antonia López al curso de código 5. apellido1.'Puerta Negra 4'.La fecha de nacimiento Antonio López es incorrecta. update alumnos set curso=5 where nombre='Antonia' and apellido1='López'. '30/12/2000'. 'M'. '10/03/1977'. fecha_nacimiento. apellido2).

nombre_alumnos. curso into nombre_alumnos from alumnos. direccion. sexo. profesores. dni. Borrar las tablas Delete Delete Delete Delete * * * * from from from from alumnos.Tabla temporal nombre de alumnos select nombre_completo=nombre+' '+apellido1+' '+apellido2. cursos. . 16. fecha_nacimiento.15.