ADMINISTRATION DES BASES DE DONNEES
Première partie : Présentation de SQL server
Deuxième partie : Prise en main de SQL server
Troisième partie : Travaux pratique
ADMINISTRATION DES BASES DE DONNEES
PRESENTATION DE SQL SERVER
INTRODUCTION
Microsoft SQL server est un SGBDR développé et commercialisé par Microsoft.
C’est un logiciel permettant le stockage de donnée de façon cohérente et organisé, de manière
à pouvoir facilement consulter et modifier leur contenu.
Il utilise le TSQL (Transact SQL) pour ses requêtes : c’est une implémentation du
SQL qui prend en charge les procédures stockées ainsi que les déclencheurs. SQL Server
utilise le format TDS (Tabular Data Stream ou protocole de communication entre les clients
et le serveur)
La première version de SQL server est sortie en 1986, aujourd’hui il est à la version 19.
Mais dans de le cadre de ce cours nous utiliserons SQL server 2017 version 17.9
I. FONCTIONNEMENT
On distingue 2 types de serveur sur lesquels l’environnement SQL peut être déployé :
- Le serveur OLTP (Online transactionnal processing) qui est un serveur transactionnel
c’est-à-dire un serveur sur lequel un certain nombre de transaction de type LMD
peuvent être exécuté. La plupart du temps les systèmes OLTP sont utilisés pour la
saisie des commandes, des transactions financières, la gestion de la relation clients
etc. ces systèmes comptent un grand nombre d’utilisateur qui effectue des requêtes
courtes et retourne relativement peu d’enregistrement.
En résumer un serveur OLTP possède les caractéristiques suivantes :
Les transactions impliquent de petites quantités de donnée
Possède un grand nombre d’utilisateur
Les temps de réponse sont assez rapides
Demande une grande disponibilité
- Le serveur OLAP (Online Analytical .Processing) est un serveur décisionnel. Il
permet de consolider les données venant de source multiple grâce à un ETL
(extraction, transformation, loading)
OLAP effectue une analyse Multi dimensionnel des données de l’entreprise et offre la
possibilité d’effectué des calculs complexes. Il est utilisé en entreprise pour la gestion de la
performance, la planification, les prévisions, les rapports financiers etc. il fournit au analyste
et manager les informations donc ils ont besoin pour prendre des décisions.
ADMINISTRATION DES BASES DE DONNEES
En résumé un serveur OLAP permet :
Une analyse rapide de donnée
Permet d’organiser et de comparer les données
Optimise le reporting
D’effectuer des calculs complexes
De manipuler un nombre important de donnée pouvant aller à plusieurs Téra octet
II. LES COMPOSANTS DE SQL SERVER
Microsoft SQL Server est composée de plusieurs logiciels qui s’exécutent sous forme
de service. Certains possèdent des interfaces graphiques, d’autre sont accessible via une
ligne de commande. SQL server est composée de 5 principaux services :
- SQL SERVER : c’est le service moteur de base de données et correspond à une
instance SQL SERVER. Ce composant s’exécute en tant que service Windows et est
référencé sous le nom MS SQL SERVER pour l’instance par défaut et MS SQL
SERVER $NOMDELINSTANCE Pour une instance nommée. Le nom d’une instance
est défini lors de l’installation.
- SQL SERVER INTEGRATION SERVICE : (SSIS) c’est l’outil SQL SERVER
d’import-export de transfert et de transformation de donnée
- SQL SERVER ANALYSIS SERVICE : (SSAS) c’est le projet idéal pour les projets
décisionnels et de data meanning. Il permet de construire les cubes OLAP.
- SQL SERVER REPORTING SERVICE : (SSRS) c’est grâce à ce composant que
nous pouvons restituer nos données provenant de notre entrepôt de donnée sous forme
de rapport (tableaux, graphiques, etc.)
- L’AGENT SQL : il est en charge de la surveillance de SQL SERVER, ce composant
gère également l’examinassions des tâches planifiées, et le suivie des alertes. Il est
directement lié à une instance SQL et est référencé par défaut dans le gestionnaire des
services Windows sous le nom : SQL SERVER AGENT. Et par
$SQLSERVERAGENT (nom de l’instance) dans le cas d’une instance nommée.
III. LES OUTILS
Les différents outils que l’on peut trouver dans SQL server sont :
- SQL SERVER MANAGEMENT STUDIO (SSMS): il permet de réaliser toutes les
opérations au niveau du moteur de base de données
- LE GESTIONNAIRE DE CONFIGURATION SQL SERVER : il permet de gérer
tous les services liés à SQL SERVER.
- SQL SERVER PROFILER : il permet de suivre et d’analyser la charge de travail
d’une instance SQL server
- L’ASSISTANT DE PARAMETRAGE DU MOTEUR DE BASE DE DONNEE :
permet une optimisation du fonctionnement du monteur
ADMINISTRATION DES BASES DE DONNEES
- LE SQL CMD : il permet d’exécuté les requêtes, les scripts de commande
IV. TACHE D’UN ADMINISTRATEUR DE BASE DE DONNE SQL SERVER
Un administrateur de base de donnée doit être capable de :
- Installer, configurer le server et administré les bases de données ;
- Veiller à l’intégrité des données stockées dans les bases de données ;
- Mettre en place des plans de sauvegarde ;
- Mettre en place des solutions de maintiens de la continuité de la production ;
- Veillez au maintien de la performance de l’accès aux donnée ;
- Participer à la veille technologique.
V. STRUCTURE D’UNE BASE DE DONNEE SQL SERVER
Une base de données SQL SERVER est composée de 2 types de fichiers
- Les fichiers de données ;
- Les fichiers journaux.
LES FICHIERS DE DONNEES
Il en existe deux types :
Les fichiers primaires de données : qui sont obligatoires et d’extensions .mdf et qui
renferme le catalogue de la base de donnée ;
Les fichiers secondaires de données : facultatif et d’extensions .ndf qui renferme les
objets et les données des utilisateurs.
Noté bien :
Chaque base de données comprend un seul fichier de donnée primaire.
LES FICHIERS JOURNAUX
Avec pour extension .ldf, il enregistre toutes les modifications de la base de donnée.
Ils contiennent les informations qui seront utilisées pour la restauration de la base de données,
chaque base de données doit posséder au moins un fichier journal.
ADMINISTRATION DES BASES DE DONNEES
DEUXIEME PARTIE : PRISE EN MAIN DE SQL SERVER
1. SE CONNECTER A UNE INSTANCE DE SQL SERVER
- Démarrer SQL MANAGEMENT STUDIO
- AU NIVEAU DE LA RUBRIQUE TYPE DE SERVER, sélectionner MOTEUR DE
BASE DE DONNEE ;
- Pour le nom du server, entrée le nom de votre instance SQL ;
- Au niveau de la rubrique authentification, sélectionner authentification Windows ;
- Cliquer sur se connecter
2. CREATION D’UNE BASE DE DONNEE
Pour créer une base de donnée, on peut soit utilisé soit le TSQL, soit SSMS.
1. Utilisation de SSMS
- Dans l’explorateur d’objet, connecter vous a une instance du moteur de base de
données ;
- Cliquez avec le bouton droit sur base de données, puis cliquer sur Nouvelle base de
données ;
- Dans nouvelle base de données, entrez le nom de votre base de donnée ;
- Pour créer la base de données en acceptant toutes les valeurs par défauts, cliquer sur
OK ;
- Pour modifier les valeurs par défaut des fichiers primaires et des fichiers journaux,
cela se fait dans la grille fichiers de la base de données, cliquer sur la cellule
approprié, puis entrer la nouvelle valeur ;
- Pour modifier les options de la base de données, sélectionner l’onglet option, puis
apporter les modifications de votre choix ;
- Pour ajouter une propriété étendue à la base de données, sélectionner propriété
étendu :
Dans la colonne NOM, entrez le nom de la propriété étendue ;
Dans la colonne VALEUR, entrez le texte de la propriété étendue.
2. UTILISATION DU TSQL
Dans la barre d’outils standard cliquez sur nouvelle requête
USE master;
GO
CREATE DATABASE GL
ON
(NAME = GL_dat,
ADMINISTRATION DES BASES DE DONNEES
FILENAME = ‘C:\Program Files\Microsoft SQL
Server\[Link]\MSSQL\DATA\GL_dat.mdf’,
SIZE=10,
MAXSIZE = 50,
FILEGROWTH = 5)
LOGON
(NAME = GL_log,
FILENAME = ‘C:\Program Files\Microsoft SQL
Server\[Link]\MSSQL\DATA\
GL_log.ldf’,
SIZE = 5 // en MO,
MAXSIZE = 25,
FILEGROUWTH = 5);
GO
3. SUPPRIMER UNE BASE DE DONNEE
a) Utilization de SSMS
- Dans l’explorateur d’objet, connectez-vous à une instance d’objet du moteur de base
de données ;
- Développé le dossier base de données, cliquer avec le bouton droit sur la base de
donnée à supprimer, puis cliquer sur SUPPRIMER ;
- Vérifier que la base de donnée correcte est sélectionnée puis cliquer sur OK.
b) Utilisation de transact sql (TSQL)
Supprimer base de données
USE master ;
GO
DROP DATABASE GL ;
GO
ADMINISTRATION DES BASES DE DONNEES
4. RENOMMER UNE BASE DE DONNEE
a) Avec ssms
- Toujours vérifier qu’il n’y a aucune connexion ouverte à la base de donnée ; il faut
donc définir la base de donnée en mode mono-utilisateur, pour ainsi fermer toutes les
connexions ouvertes et empêcher les autres utilisateurs de se connecter pendant le
nom de la base de donnée est modifiée.
Pour se faire :
Cliquer avec le bouton droit sur la base de donnée à modifier, puis cliquer sur
PROPRIETE ;
Dans la boite de dialogue propriété, cliquer sur OPTION
Dans l’option restreindre l’accès, sélectionner utilisateur unique ;
Si d’autre utilisateur sont connectées à la base de données, un message ouvrir
les connexions apparaît pour appliquer la propriété et fermer toute les autres
connexions, cliqué sur oui
- Dans l’explorateur d’objet développé sur base de données, cliquer avec le bouton
droit sur la base de données à renommer, puis cliquez sur renommer.
- Entrez le nom de la base de données puis cliquez sur OK.
b) Avec TSQL
USE master;
GO
ALTER DATABASE GL SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE GL MODIFY NAME=GLCOPY;
GO
ALTER DATABASE GLCOPY SET MULTI_USER;
GO
5. SUPPRIMER LES FICHIERS DE DONNEE OU DE JOURNAUX
a) AVEC SSMS (SQL SERVER MANAGEMENT SYSTEM)
- Développer le dossier base de données, cliquer avec le bouton droit sur la base de
données sur laquelle vous souhaités supprimer le fichier, puis cliquez sur propriété ;
- Sélectionner fichier ;
- Dans la grille fichier à supprimer sélectionner OK.
USE master;
GO
ADMINISTRATION DES BASES DE DONNEES
ALTER DATABASE GLCOPY REMOVE FILE GL_dat;
GO
6) CREATION D’UN TABLE
1. AVEC SSMS
- Dans l’explorateur d’objet développé le nœud base de données, puis sélectionner la
base de données qui va contenir la nouvelle table
- Cliquez avec le bouton droit sur le nœud table, puis cliquez sur nouvelle table
- Entrez les noms des colonnes, choisissez le type de donnée, et spécifiez si les valeurs
NULL sont autorisés pour chaque colonne ;
- Pour spécifier d’avantages de propriété pour une colonne, cliquez sur la colonne et
choisissez les propriétés appropriées dans l’onglet propriété de la colonne ;
- Pour spécifier une colonne comme clé primaire, cliquez avec le bouton droit sur la
colonne et sélectionner définir la clé primaire ;
- Pour créer les relations de clé étrangère, de contrainte ou d’index, cliquez avec le
bouton droit dans le volet concepteur de table et sélectionner un objet dans la liste ;
Par défaut, la table est contenue dans le schéma DBO. Pour spécifier un schéma
différent, cliquer avec le bouton droit dans le volet concepteur de table, et sélectionné
propriété.
Dans la liste déroulante schéma, sélectionner le schéma approprié
- Dans le menu fichier, choisissez enregistrer nom de la table
- Dans la boite de dialogue, choisissez un nom pour la table, et cliquez sur OK
2. LES TYPES DE DONNEES SOUS SQL SERVER
- Les valeurs numériques exactes :
Int
Small Int
TINY Int
BIG Int
DECIMAL
NUMERIC
MONEY
MORE MONEY
- Les valeurs numériques:
FLOAT
ADMINISTRATION DES BASES DE DONNEES
REAL
- Date et heure
DATE
TIME
DATETIME
SMALL DATE TIME
DATE TIME 2
DATETIME OFFSET
- Le type chaine de caractère
CHAR
VARCHAR
TEXT
- Les chaines de caractère Unicode
NVARCHAR
NCHAR
NTEXT
- Les chaines binaires
TYPE IMAGE
TYPE BINARY
TYPE VARBINARY
3. AVEC TSQL
Use nom_bd ;
GO
CREATE TABLE schema (DBO)
4. Supprimer une table
Vous ne pouvez pas supprimer une table ayant une contrainte, vous devez au préalable
supprimer la contrainte. Lorsqu’ une table est supprimée les règles et valeurs qui lui sont
associées sont supprimées automatiquement
ADMINISTRATION DES BASES DE DONNEES
La suppression d’une table entraine automatiquement celle de toute les relations qu’elle
entretient
a) SOUS SSMS
- Dans l’explorateur d objet développer le nœud base de données, sélectionner la base
de données, puis le nœud table
- Cliquer avec le bouton droit sur la table, puis dans le menu contextuel cliquez sur
supprimer
- Un message vous demande de confirmer la suppression cliquez sur ok
5. RENOMMER UNE TABLE
a) SOUS SSMS
- Dans l’explorateur d’objet cliquer avec le bouton droit sur la table a renommé
Use GL ;
Go
Exec sp_rename ‘[Link]’, ‘cours’;
Go
6. AJOUTER DES COLONNES A UNE TABLE
a) Avec SSMS
- Dans l’explorateur d’objet, développer le nœud base de données, sélectionner la base
de donner puis cliquer sur la table sur laquelle vous souhaiter ajouter des colonnes
- Faire un clic droit sur la rubrique colonne puis cliquer sur nouvelle colonne
- Entrez les nouvelles colonnes avec leur type puis valider
b) Avec TSQL
ALTER TABLE [Link] ADD NOM_COLONNE TYPES1 …. ,
GO
7. SUPPRIMER UNE COLONNE
a) SOUS SSMS
- Recherché la table donc vous souhaités supprimer les colonnes, développer la pour
exposer les noms des différentes colonnes
- Cliquer avec le bouton droit sur la colonne à supprimer puis cliquer sur supprimer
- Dans la boite de dialoguer supprimer un objet cliquer sur ok
- Si la colonne contient des contraintes ou d’autre dépendance, un message s’affichera
dans la boite de dialogue supprimé un objet. Résolvez l’erreur en supprimant les
contraintes référencées
- Vous ne pouvez pas supprimer une colonne ayant une contrainte check, vous devez
d’abord supprimer la contraint
ADMINISTRATION DES BASES DE DONNEES
- Vous ne pouvez pas supprimer une colonne ayant des contraintes, primary key ou
foreign key ou d’autre dépendance, sauf si vous utilisés le concepteur de table
b) TSQL
ALTER TABLE [Link]
DROP COLUMN NOM_COLONNE ;
DROP CONSTRAINT NOM_COLONNE ;
GO
8. RENOMMER UNE COLONNE
a) SSMS
- Dans l’explorateur d’objet, cliquer avec le bouton droit sur la colonne à renommer et
choisissez renommer
- Entrez un nouveau nom à colonne puis validez
b) TSQL
USE NOM_BD ;
GO
EXEC SP_RENAME
‘SCHEMA.NOM_TABLE.NOM_ANCIENNECOLONNE’ ,
‘NOM_NOUVELLECOLONNE’, ‘COLUMN’ ;
9. INSERER DES LIGNES DANS UNE TABLE
10. Cas pratique
Créer une base de données Gest_Etudiant avec 3 trois extension un fichier primaire, un
secondaire et
ADMINISTRATION DES BASES DE DONNEES
Créer les tables
Remplissez cette bd à l’aide du tableau ci-dessous.
Affichez les toutes les tables,
ADMINISTRATION DES BASES DE DONNEES
1. Création base de données
USE master ;
GO
CREATE DATABASE GEST_ETUDIANT
ON
(NAME = GEST_ETUDIANT_dat,
FILENAME = "C:\Program Files\Microsoft SQL
Server\[Link]\MSSQL\DATA\GEST_ETUDIANT.mdf",
SIZE=10,
MAXSIZE = 50,
FILEGROWTH = 5),
ADMINISTRATION DES BASES DE DONNEES
(NAME = GEST_ETUDIANT_dat2, FILENAME =
"C:\Program Files\Microsoft SQL
Server\[Link]\MSSQL\DATA\GEST_ETUDIANT.ndf",
SIZE=10,
MAXSIZE = 50,
FILEGROWTH = 5)
LOG ON
(NAME = GEST_ETUDIANT_dat,
FILENAME = "C:\Program Files\Microsoft SQL
Server\[Link]\MSSQL\DATA\GEST_ETUDIANT.ldf",
SIZE = 5 ,
MAXSIZE = 25,
FILEGROWTH = 5);
GO
Suite du TD
/*CONNNEXION A LA BASE DE DONNEE GEST_ETUDIANT*/
USE GEST_ETUDIANT;
GO
/* CREATION DE LA TABLE ETUDIANT EN DBO*/
CREATE TABLE [Link] (
num_etud INT PRIMARY KEY IDENTITY(01234567,1),
nom NVARCHAR(20) NULL,
prenom NVARCHAR(20) NULL,
date_naiss DATE,
sect VARCHAR(20) NULL,
age INT
);
ADMINISTRATION DES BASES DE DONNEES
/* CREATION DE LA TABLE code mat EN DBO*/
CREATE TABLE DBO.Code_mat (
code_mat INT PRIMARY KEY,
nom_mat NVARCHAR(20) NULL,
coef INT CHECK(coef > 0),
);
/* CREATION DE LA TABLE NOTE EN DBO*/
CREATE TABLE [Link](
num_etud INT,
code_mat INT,
note FLOAT CHECK( note> 0 and note <20),
FOREIGN KEY(num_etud) REFERENCES [Link](num_etud),
FOREIGN KEY(code_mat) REFERENCES DBO.Code_mat(code_mat)
);
GO
SELECT DISTINCT * FROM [Link]
INNER JOIN [Link]
ON
[Link].num_etud = [Link].num_etud
WHERE
[Link].code_mat = 12518;
ADMINISTRATION DES BASES DE DONNEES
Afficher la liste des etudiants dont le nom a‘O’
Use Gest_Etudiant ;
Go
Select*from [Link] like Nom like ‘%[O]%’;
Go
Nom de l’étudiant qui a la plus grande note ?
Nb lorsqu’ on est face à une requette il faut se poser la question qu’est ce que je suis sensé
faire et quelle sont les tables à utiliser ?
Use Gest_Etudiant
Go
Select Top(1)* from [Link] e
Inner join note n on([Link]-Etud=n.num_Etud)
order by [Link] DESC;
go
oubien
select nom from [Link] e inner join [Link] n on ([Link]-Etud=n.num_Etud)
where [Link]= (select max (note) from [Link]);
go
Pour chaque section le nombre d’étudiant inscrit ?
Use Gest_Etudiant
Go
Select section, count (*) as nombre etudiant from [Link]
Group by ([Link] .section);
Go
Nombre d’étudiant née en 1988
Use Gest_Etudiant
ADMINISTRATION DES BASES DE DONNEES
Go
Select count (*) as Nes_en_1988 from [Link] where year(date_naiss)=1988;
Go
Afficher la moyenne de chaque étudiant
Use Gest_Etudiant
Go
Select nom, isnull(note*coef/sum(coef),0)as moyenne from [Link] e
Left join [Link] n on([Link]-etud=n.num_etud)
Left join [Link] m on(n.code_mat=m.code_mat)
Group by nom;
go
TD”2 Gest_Directeur
afficher la liste de client appartenant à la catégorie1 par ordre décroissant
select *from client where num_cat=1 order by nom_cl;
liste des clients qui a pour directeur Inno ?
slect*from [Link] C inner join [Link] D on (D.Num_directeur=C.Num_directeur)
where nom_directeur=’ HInaud’ ;
go
afficher la liste des directeur,
pour chaque chef de secteur le nombre de departement qu’il a à sa tete
selsct chef_secteu, count(*) as nombre_depart
from [Link]
group by ([Link].chef_secteur);
go
liste des directeurs ayant pour chef secteur Fisher
select* from [Link]
inner join [Link]
on
ADMINISTRATION DES BASES DE DONNEES
[Link].num_dir= [Link].num_direct
inner join [Link]
on [Link].code_dep= [Link].code_dep
where
[Link].chef_secteur=’FISHER’ ;
go
la liste des clients qui bénéficie de 2%
select*from [Link]
inner join [Link]
on
client.num_cat = categorie.num_cat
where [Link] =’2%’;
go
LISTE DES CHEFS SECETEUR QUI ONT AU MOINS 2 DEPARTEMENTS A LEUR
TETE
Select chef_secteur ,count(nom_dep) from [Link] group by
Chef_secteur having count (nom_dep)> =2;
go
Liste des client qui appartient àdes collecteivité
Select nom_cl from [Link] C inner join dbo,categorie ca
On (c.num_cat = ca.num_cat) where nom_cat=’collectivité’;
Go
Nom des departement dont la 3ème lettre est ‘L’
Select nom_dep from [Link] where nom_dep like’_ _ L%’
ADMINISTRATION DES BASES DE DONNEES
Go
Liste des directeurs dont l’âge est supérieur à la moyenne des âges
Select nom_directeur from [Link] where age >(select AVG(age)from directeu);
Go
Nb structure de
Select nom_champ, fonction
From dbo.nom_table
Clause (Where
Order by
Group by
Having)
Condition
Go
7) Supprimer une table
- Vous ne pouvez pas supprimer une table qui est référencer par une contrainte foreign key
vous devez au préalable supprimer la contrainte ou la table qui la référence
- Lorsqu’une table est supprimée les règles et les valeurs par défauts sont supprimer et toutes
les contraintes qui lui sont associes sont automatiquement supprimer
- La suppression d’une table entraine automatiquement celles de toutes les relations qu’elle
entretient
A – sous SSMS
- Dans l’explorateur d’objet développer le nœud base de données puis sélectionner la base de
données ensuite le nœud table
- Cliquez avec le bouton droit sur la table puis dans le menu contextuel cliquer sur supprimer
- Un message vous demander de confirmer la suppression cliquer sur ok
b- Sur TSQL
Requête :
Use Nom_de la BD
Go
ADMINISTRATION DES BASES DE DONNEES
Drop table nom_schema.nom_table
Go
Renommer une table
a. Avec SSMS
- Cliquer avec le boutton droit sur la rable a renommer
- Puis entrez un nouveau nom a la colonne puis valider
b. Avec TSQL
Use Nom_de_la bd
go
EXEC SP_Rename [schema.ancien_nom, nouveau_nom]
9. ajouter des colonnes a une table
a) Avec SSMS
- Dans l’explorateur d’objet développer le nœud base de données , sélectionner la base de
donner puis cliquer sur la table sur la quel vous voulez ajouter des colonnes
- Faire un cliquer droit sur nouvelles colonnes entrez les nouvelles colonnes avec leurs types
et valider
b) Avec TSQL
Alter table schema.nom_table ADD nom_colonne type go ;
10. supprimer une colonne
a) SOUS SSMS
- Recherchez la table donc vous souhaitez supprimer les colonnes, développez la pour exposez
le nom des différentes colonnes
- Cliquer sur le bouton droit de la colonnes a supprimer puis choisissez supprimer
- Dans la boite de dialogue afficher cliquer sur OK
- Si la colonne contient des contraintes ou d’autres dépendance un message d’erreur
s’afficheras dans la boite de dialogue supprimer un objet. Résolvez l 'erreur en supprimant
les contraintes référencer
NB : vous ne pouvez pas supprimer un colonnes avec une contrainte check vous devez d’abord
supprimer la contrainte
- Vous ne pouvez pas supprimer une colonnes comportant une contrainte primary key ou
foreign key ou d’autre dépendance sauf si vous utilisez le concepteur de table, dans le cas
contraire vous devez d’abord supprimer tout les dépendances de la colonne
ADMINISTRATION DES BASES DE DONNEES
b) SOUS TSQL
11) Renommer une colonne
A) Avec SSMS
- Dans l’explorateur d’objet cliquer avec le bouton droit sur la colonne à renommer et
choisissez renommer
- Entrez un nouveau nom à la colonne puis valider
B) AVEC TSQL
- Vous faite
o USE nom_bd
EXEC SP_RENAME ‘SCHEMA.nom_Table.nom_encienne_colonne’,
‘nom_nouvelle_colonne’ , ‘column’ ;
o Go
12) insérer des lignes dans une table
INSERT INTO DBO.nom_table
Values (valeur (correspondant au type du champ` ))
II. Les Procédures Stocker
Une procédure stoker dans SQL server est un groupe d’une ou plusieurs instructions TSQL pour être
réutiliser plus facilement. Les procédures stoker ressemble à des instructions d’autre langage de
programmation car elles peuvent :
- Accepter des paramettres d’entres et retourner plusieurs valeus sous la forme de parmatre
de sortir au programme appelant
- Contenir des instructions de programmation qui effectue des operations qui effectue des
operations dans la base de donnes
Les procedures stockes donnes les avantages suivants :
- Elle garantissent un temps de reponse plus rapide et une meilleur performance du système
- Elle permettent de ne plus ecrires les memes instructions
- Il est possible de donner aux utilisateurs le droit d’executer les procedures stoker sans
qu’elle est le droit sur les objets qu’elle manipule
a. Les tyoes de procedures stockes
- Les procédures stokes definis par l’utilisateur
ADMINISTRATION DES BASES DE DONNEES
- Une procedure definir par l’utilisateur peut etre cree dans une base de donnnes definir par
celui-ci ou toute autre base de donnees syteme a l’exception de la base de donnes nommer
resource
Les Pocedures Temporaire
o Les sont une autre forme de procédures stoker défini par l’utilisateur. Il en existe
deux types :
Les procedures temporaires locale
Les procedures temporaires globale
le premier caractere du nom des procedues temporaires locale est un #. Ces procedures sont
disponible seulement pendant la connexion de l’utilisateur et sont supprimer des que la connexion
est fermer.
Par contre les oms des procédures temporaires globales débute avec ## . ces procedures sont visible
a toute utilisateur et sont supprimer a la fin de la dernier session qui utilise la procédure
Les Procedures système
Elles sont inclussent dans SQL Server et elle sont stoker physiquement dans la base de
données ressources mais apparaissent logiquement dans le schema SYS defini soit pas le
système soit par l’utilisateur. La base de donnee MSBD contient egalement les procedures
stoker système dans le schema dbo utiliser pour planifier les alertes
NB :
- Etant donner que les procedures stoker Système commence par le préfix sp_ il est
recommande de ne pas utiliser ce préfix quand vous nommer vos procédures etant donner
- Si un user cree une procedure stocker potant le meme nom qu’une procedure système cette
procedure ne s’exectera jamais
- La programmation d’une procedure stoker difere celon que cette procedure ne recois aucun
paramettre , recois des paramettres en entre, renvoi des paramettre de sortir ou retourne
une valeur
c. Cree une procédure Stocker
- Sous SSMS
Connectez vous a une instance du moteur de base de donnees
Develloper base de donnees
Ensuite cliquer sur programmabilite
Cliquer avec le boutton droit sur procedure stoker
Dans le menu requete cliquer sur specifier les valeurs de parametre du model
Dans la boite de dialogue entrez les valuers suivantes :
ADMINISTRATION DES BASES DE DONNEES
Paaramettre Valeurs
Auteur Votre nom
Date de Creation Date du jour
Description Donnee qui retourne ce que fait votre Procedure
Procedure_name Nom de la procedure stocke
@param @nom du param 1
@datetype_from_param1 Type de parametre 1
@default_value_from_param1 Valeur par default tu parametre 1
@param 2 //
@datetype_from_param2 //
Default_value_from_param2 //
Cliquer sur Ok puis dans l’éditeur de requête écrivez votre requete . ensuite pour tester la syntaxe
dans le menu requete cliquer sur analyse. Si un sms d’erreur est retourner comparer les
insstructions avec les instructions propose et apporter les corrections nécessaire
Pour executer la procedure cliquer sur le boutton droit sur le nom de la procedure et selectionner
executer la procedure stocke e entrant les paramettres correspondant.
- Avec TSQL
Create PROCEDURE [schema]. nom_procedure
@param1 type,
@param n type n
As
SET NOCOUNT ON;
// instruction TSQL
Go
Exo
Procédure stocké qui affiche la classe et le niveau de l’étudiant en fonction de la procédure
Use gest_etudiant
Create procedure [Link]
@Mat varchar (11)
ADMINISTRATION DES BASES DE DONNEES
As
Set Nocount on;
Select [Link], [Link]
From [Link] E, [Link] C, [Link] N, dbo.Niv_et_classe NIV
Where [Link] =@Mat AND
[Link] =[Link] AND C.code_classe=NIV.code_classee and
N.id_numero=NIV.id_numero ;
GO
Déclaration d’une variable
DECLARE @ nom_de_la_Variable type
Affectation d’une valeur à une variable
SELECT @NOM_VARIABLE = VALEUR
OU
SET @NOM_VARIABLE = VALEUR
Affectation Des informations
PRINT(……)
Utilisation des structureS alternativeS
- Le If else
If condition
BEGIN
// instruction
END
ELSE
BEGIN
ADMINISTRATION DES BASES DE DONNEES
// instruction
END
Exple afficher erreur lorsque l’utilisateur entre un nom qui n’est pas ds la bd.
Use Gest_etud
Create procedure [Link]
@penom varchar(25)
DECLARE @Pre varchar(25)
AS
Set nocount on;
Select @Pre=(select prenom from [Link] where prenom=@Prenom);
If (@Pre is not null)
BEGIN
Select nom_etud,mat_etu
From [Link]
Where Prenom=@prenom,
END
Else
Begin
Print’le prenom n’existe pas
END
Go
Exo je souhaite vérifier qu’un étudiant a une note en SQL server. Si c’est le cas on affiche la
note de l’étudiant si ce n’est pas le cas on affiche ‘ l’étudiant tel n’a pas de note’
Correction
Use Gest_etudiant ;
ADMINISTRATION DES BASES DE DONNEES
Go
Create procedure dbo.not_sql
@nom varchar (25), @matier varchar (25)
AS
SET NOCOUNT ON
Declare @note float
Set @note= (select note from [Link])
Le CASE when condition 1 then resultat 1
When condition n then résultat n
Else resultat
END
Expel afficher la liste des etudiants (nom et prénom avec en plus une colonne genre qui
affiche masculine , feminine en function du sexe de l’étudiant)
CREATE PROCEDURE [Link]
AS
SET NOCOUNT ON ;
SELECT nom, prenom, ‘genre’=
CASE
WHEN sexe= ‘M’ THEN ‘MASCULIN’
WHEN sexe= ‘F’ THEN ‘FEMININ’
ELSE ‘AUTRES’
END
FROM [Link]
GO
EXO
Afficher la liste des étudiants et indiquer dans chaque colonne type s’il est
MINEUR ou MAJEUR
Use
Go
ADMINISTRATION DES BASES DE DONNEES
Create procédure dbo.get_type
As
Set nocount on;
Select nom,prénom, ‘type’=
CASE
WHEN (year (getdate ()) – year (date_naiss)<18) THEN ‘MINEUR’
WHEN (year (getdate()) – year (date_naiss)>=18) THEN ‘MAJEUR’
END
From dbo.étudiants
Go
Gestion des transactions
Une transaction permet d’exécuter un groupe d’instruction, si pour une raison quelconque
l’une de ces instructions n’a pas été exécutée, tout le groupe d’instruction est annulé :
Pour déclarer une transaction, on utilise l’instruction BEGIN TRAN.
Pour valider la transaction, et rendre les traitements qui lui sont associés effectifs, on
utilise l’instruction COMMIT TRAN.
Pour interrompre une transaction en cour qui n’a pas encore été validée, on utilise
l’instruction ROLLBACK TRAN
Syntaxe :
BEGIN TRAN nom
//Instruction.
COMMIT TRAN
Exple :
BEGIN TRAN exple
Delete from commande where numCom=5
Delete from ligneCommande where numCom=5
COMMIT TRAN
ADMINISTRATION DES BASES DE DONNEES
La gestion des messages d’erreur
Lorsqu’une erreur est rencontrée, le moteur de BD associe à celle-ci un message. Si
l’erreur n’existe pas dans la table [Link] de la bd master, elle obtient le code
50000. Le moteur ajoute également une notion de sévérité (degré de gravité d’une erreur),
qui est notée par une valeur :
De 0 à 9 : cela veut dire que les messages d’informations signalent des erreurs qui
ne sont pas très graves (avertissements).
Sévérité 10 : Les messages d’informations signalent des erreurs peut graves, et le
moteur de bd convertis une gravité 10 en gravité 0.
Gravité 11 : Indique que l’objet ou l’entité n’existe pas.
Sévérité 12 : Utilisé pour des requêtes qui n’ont pas de verrou.
Sévérité 13 : Indique des erreurs de blocage liées aux transactions.
Sévérité 14 : Indique des erreurs liées à la sécurité, tel qu’une autorisation refusée.
Sévérité 15 : Indique des erreurs de syntaxe.
Sévérité 16 : Indique des erreurs générales.
De 17 à 19 : Indique des erreurs logicielles qui ne peuvent pas être corrigées par
l’utilisateur.
De 20 à 24 : Indique une défaillance du système, et des erreurs fatales qui peuvent
endommager la BD.
Utilisation du RAISERROR :f
Elle permet d’afficher un message erreur.
RAISERROR ({msg_id | msg_str| @local_variable},
{severité, état},
[argument [1,..n]]
[with option [1,..n]])
Message_id indique le numéro du message pour faire appel à un message déjà disponible
dans la table [Link].
Message_str : Il affiche le message personnalisé par l’utilisateur.
@local_variable : Permet d’appeler la variable initialisée par l’utilisateur.
Sévéérité : Représente le niveau de gravité d’une erreur. Seul l’administrateur peut ajouter
des messages avec un niveau de gravité situé entre 19 et 24.
Létat : Entier compris entre 0 et 255, et identifie la source à partir de laquelle l’erreur a été
émise.
ADMINISTRATION DES BASES DE DONNEES
Argument : Ce sont des paramètres servant à la substitution des variables définis dans le
message.
With OPTION : C’est une option personnalisée pour l’erreur.
La gestion des curseurs.