Exercices Sql Server

Exercice 6 BDD SQLSERVER

  1. Créer la base de données GestionLogement
  2. Créer les cinq tables en désignant les clés primaires mais pas les clés étrangères.
  3. Créer les contraintes permettant de préciser les clés étrangères avec suppression et modification en cascade.
  4. Modifier la colonne N_TELEPHONE de la table INDIVIDU pour qu’elle n’accepte pas la valeur nulle.
  5. Créer une contrainte df_Nom qui permet d’affecter ‘SansNom’ comme valeur par défaut à la colonne Nom de la table INDIVIDU.
  1. Créer une contrainte ck_dateNaissance sur la colonne DATE_DE_NAISSANCE qui empêche la saisie d’une date postérieure à la date d’aujourd’hui ou si l’âge de l’individu ne dépasse pas 18 ans.
  2. Supprimer la contrainte df_Nom que vous avez défini dans la question 5.

===> Exercice 7 Corrigé

use exercice_6
create table COMMUNE(idCommune int primary key, nomCommune varchar(10), distance float, nbrHabit int)

create table QUARTIER( idQuartier int primary key, idCommune int ,libelle varchar(30))

create table TYPE_DE_LOGEMENT(TypeLogement varchar(30) primary key, chargesForf varchar(30))

create table LOGEMENT(nLogement int primary key, typeLogement varchar(30),idQuartier int ,noLogement int, rue varchar(30), superficie float, loyer float)

create table INDIVIDU(nIdentification int primary key, nLogement int,nom varchar(30), prenom varchar(30), dateNaissance date, numTelephone varchar(30))
go
--

--Q3--Créer les contraintes permettant de préciser les clés étrangères avec suppression et modification en cascade.****************************
alter table QUARTIER 
add constraint  constr_idCommune foreign key (idCommune) references COMMUNE(idCommune)  on delete cascade on update cascade

alter table LOGEMENT 
add constraint constr_typeLogement foreign key (typeLogement) references TYPE_DE_LOGEMENT(typeLogement)  on delete cascade on update cascade

alter table LOGEMENT
add constraint constr_idQuartier foreign key (idQuartier) references QUARTIER(idQuartier) on delete cascade on update cascade

alter table INDIVIDU
add constraint constr_nLogement foreign key (nLogement) references LOGEMENT(nLogement) on delete cascade on update cascade

--Q4--Modifier la colonne N_TELEPHONE de la table INDIVIDU pour qu’elle n’accepte pas la valeur nulle.
alter table INDIVIDU
alter column numTelephone  varchar(30) not null
go

--Q5--Créer une contrainte df_Nom qui permet d’affecter ‘SansNom’ comme valeur par défaut à la colonne Nom de la table INDIVIDU.
alter table INDIVIDU
add constraint df_Nom default 'sansNom' for nom
go

--Q6--Créer une contrainte ck_dateNaissance sur la colonne DATE_DE_NAISSANCE qui empêche la saisie d’une date postérieure à la date d’aujourd’hui ou si l’âge de l’individu ne dépasse pas 18 ans.
alter table INDIVIDU
add constraint ck_dateNaissance check (dateNaissance <= getdate() and datediff(yy, dateNaissance, getdate())>18)
go

--Q7--Supprimer la contrainte df_Nom que vous avez défini dans la question 5.
alter table INDIVIDU
drop constraint df_Nom 
go

===> Exercice 7 Corrigé

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.