20 Déc2015
Définition des données- Base de données LOGEMENTS
Objectif: Écrire les instructions SQL de définition des données.
Soit le schéma relationnel suivant:
Travail à faire:
Donnez les requêtes SQL permettant de réaliser les opérations suivantes :
- Créer la base de données GestionLogement
- Créer les cinq tables en désignant les clés primaires mais pas les clés étrangères.
- Créer les contraintes permettant de préciser les clés étrangères avec suppression et modification en cascade.
- Modifier la colonne N_TELEPHONE de la table INDIVIDU pour qu’elle n’accepte pas la valeur nulle.
- Créer une contrainte df_Nom qui permet d’affecter ‘SansNom’ comme valeur par défaut à la colonne Nom de la table INDIVIDU.
- 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.
- Supprimer la contrainte df_Nom que vous avez défini dans la question 5.
//Source : www.exelib.net
//Auteur: CHAOULID
//Copyright: Exelib.net
//Q1 create database LOGEMENTS go use LOGEMENTS //Q2 create table INDIVIDU(N_IDENTIFICATION int primary key,N_LOGEMENT int,NOM varchar(30),PRENOM varchar(30),DATE_DE_NAISSANCE date,N_TELEPHONE varchar(30)) create table LOGEMENT(N_LOGEMENT int primary key,TYPE_LOGEMENT varchar(30),ID_QUARTIER int,NO int,RUE varchar(30),SUPERFICIE float,LOYER float) create table QUARTIER(ID_QUARTIER int primary key,ID_COMMUNE int,LIBELLE_QUARTIER varchar(30)) create table TYPE_DE_LOGEMENT(TYPE_LOGEMENT varchar(30) primary key,CHARGES_FORFAITAIRES varchar(30)) create table COMMUNE(ID_COMMUNE int primary key,NOM_COMMUNE varchar(30),DISTANCE_AGENCE float ,NOMBRE_D_HABITANTS int) //Q3 alter table INDIVIDU add constraint fk_INDIVIDU foreign key (N_LOGEMENT) references LOGEMENT(N_LOGEMENT) on delete cascade on update cascade alter table LOGEMENT add constraint fk1_LOGEMENT foreign key (TYPE_LOGEMENT) references TYPE_DE_LOGEMENT(TYPE_LOGEMENT) on delete cascade on update cascade alter table LOGEMENT add constraint fk2_LOGEMENT foreign key (ID_QUARTIER) references QUARTIER(ID_QUARTIER) on delete cascade on update cascade alter table QUARTIER add constraint fk_QUARTIER foreign key (ID_COMMUNE) references COMMUNE(ID_COMMUNE) on delete cascade on update cascade //Q4 alter table INDIVIDU alter column N_TELEPHONE varchar(30) not null //Q5 alter table INDIVIDU add constraint Def_Nom default 'SansNom' for NOM //Q6 alter table INDIVIDU add constraint ck_dateNaissance check (DATEDIFF(YEAR,DATE_DE_NAISSANCE, GETDATE())>=18) //Q7 alter table INDIVIDU drop constraint Def_Nom