Vous êtes sur la page 1sur 2

TP 2 : La clause ALTER sous SQL SERVER

Partie 1 Rappel de la clause CREATE ET ALTER


Create database STAGIAIRES

1. Année vaut 1 ou 2
alter table Groupe add constraint c_annee check(Annee in(1,2))

-- 2. Tél_Fixe commence par 05 et Tél_Portable par 06, les deux ne peuvent pas dépasser
10 chiffres
alter table Stagiaire add constraint c_fixe check (Tel_Fixe like '05________')
alter table Stagiaire add constraint c_portable check (Tel_Portable like '06________')

-- 3. L’e-mail doit contenir @ et .


alter table Stagiaire add constraint c_email check (E_Mail like '%@%.%')

-- 4. Les colonnes (Nom_Stgr, Prénom_Stgr, Date_Naissance) ne peuvent pas être, toutes


les trois, redondantes
alter table Stagiaire add constraint c_coordonnes unique
(Nom_Stgr,Prenom_Stgr,Date_Naissance)

-- 5. Code_Groupe dépend de l’année, s’il s’agit d’un groupe de première année alors le
code ressemble à
-- G[un caractère entre A et H] et G[un chiffre entre 1 et 8]
alter table Groupe add constraint c_groupes check((Annee=1 and Code_Groupe like 'G[A-H]')
or (Annee=2 and Code_Groupe like 'G[1-8]'))

-- 6. Note_1, Note_2 et Note_3 sont comprises entre 0 et 20, s’elles ne sont pas remplies
elles valent 0
alter table Note add default 0 for Note_1
alter table Note add default 0 for Note_2
alter table Note add default 0 for Note_3
alter table Note add constraint c_notes check(Note_1 between 0 and 20 and Note_2 between 0
and 20 and Note_3 between 0 and 20)

-- 7. Ajouter une colonne Moyenne à la table Note qui vaut : (Note_1 + Note_2 + Note_3)/3
alter table Note add Moyenne as (Note_1+Note_2+Note_3)/3

Partie 2 Exercice d’application


-- 1. 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.
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.
6. 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.
7. Supprimer la contrainte df_Nom que vous avez défini dans la question

Vous aimerez peut-être aussi