Exercices Sql Server

Exercice 2 BDD SQLSERVER

Soit le modèle relationnel suivant relatif à la gestion des notes annuelles d'une promotion d'étudiants :

  1. Créer la base de données avec les clés primaire et étrangère.

  2. Ajouter la colonne date de naissance dans Etudiant : DateN.

  3. Ajouter la colonne Groupe : Groupe not null.

  4. Ajouter la contrainte unique pour les deux attributs (NEtudiant, CodeMat).

  5. Ajouter une colonne Age calculé automatiquement à partir de DateN.

  6. Ajouter une contrainte, valeur entre 0 et 20 pour la note.

===> Exercice 3 Corrigé

USE MASTER 
CREATE DATABASE Exercice2
GO
--
--Matiere(codeMat[PK],libelleMat,coeffMat)
--Etudiant(numEt , nomEt , prenomEt , dateN, groupe, age)
--Evaluer(numEt , codeMat , dateEval, note )
--

--Ceation du tables--Q1
USE TP2S1
CREATE TABLE Matiere(codeMat INT PRIMARY KEY, libelleMat VARCHAR(10), coeffMat INT)
CREATE TABLE Etudiant(numEt INT PRIMARY KEY, nomEt VARCHAR(10), prenomEt VARCHAR(10))
CREATE TABLE Evaluer(numEt INT FOREIGN KEY REFERENCES Etudiant(numEt), codeMat INT FOREIGN KEY REFERENCES Matiere(codeMat), dateEval DATE, note DECIMAL(4,2))
GO

--Affichage des tableaux vides--
SELECT * FROM Matiere
SELECT * FROM Etudiant
SELECT * FROM Evaluer
GO

--Ajoute de dateN et groupe table Etudiant--Q2 et Q3
ALTER TABLE Etudiant
ADD dateN DATE
ALTER TABLE Etudiant
ADD groupe VARCHAR(10) NOT NULL
GO

--Affichage des tableaux vides après l'ajoute de dateN et groupe
SELECT * FROM Etudiant
GO

--Contrainte unique--Q4
ALTER TABLE Etudiant
ADD CONSTRAINT unique_constr_Etudiant_numEt UNIQUE (numEt)
--
ALTER TABLE Matiere
ADD CONSTRAINT unique_constr_Matiere_codeMat  UNIQUE (codeMat)
GO

--Ajoute d'age au table Etudiant--Q5
ALTER TABLE Etudiant
ADD age AS YEAR(GETDATE())-YEAR(Etudiant.dateN)
GO

--Affichage des tableaux vides après l'ajoute d'age--
SELECT * FROM Etudiant
GO

--Contraint sur la note--Q6
ALTER TABLE Evaluer
ADD CONSTRAINT check_constr_Evaluer_note CHECK(note>=0AND note<=20)
GO

--Insertion des données
INSERT INTO Matiere VALUES (1,'Matiere 1',1)
INSERT INTO Matiere VALUES (2,'Matiere 2',2)
INSERT INTO Matiere VALUES (3,'Matiere 3',3)
GO
--ERREUR--le code est unique
INSERT INTO Matiere VALUES (1,'Matiere 4',4)
Go

--
INSERT INTO Etudiant VALUES(1, 'nomEt 1', 'prenomEt 1', '1996/01/12', 'groupe 1')
INSERT INTO Etudiant VALUES(2, 'nomEt 2', 'prenomEt 2', '1997/01/12', 'groupe 2')
INSERT INTO Etudiant VALUES(3, 'nomEt 3', 'prenomEt 3', '1998/01/12', 'groupe 3')
GO

--
INSERT INTO Evaluer VALUES(1,1,'2019/10/27', 0)
INSERT INTO Evaluer VALUES(1,2,'2019/10/27', 11)
INSERT INTO Evaluer VALUES(1,3,'2019/10/27', 12)
INSERT INTO Evaluer VALUES(2,1,'2019/10/27', 13)
INSERT INTO Evaluer VALUES(3,1,'2019/10/27', 20)
GO
--ERREUR--note<0 ou >20
INSERT INTO Evaluer VALUES(2,2,'2019/10/27', -1)
GO

--Affichage des tableaux--age calculé autaumatiquement
SELECT * FROM Matiere
SELECT * FROM Etudiant
SELECT * FROM Evaluer
GO

===> Exercice 3 Corrigé

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.