SQL Server
SQL Server
SQL Server
Les Objectifs
1. Comprendre des notions de SQL SERVER.
2. Maitriser les Aspects du langage SQL sous SQL SERVEUR
3. Ecrire et lire des Requêtes SQL simples et complexes.
4. Interroger efficacement une Base des données Relationnelle conçue dans SQL Server
PLAN DU COURS
CHAP.I. INTRODUCTION GENERALE
CHAP II. LA SYNTAXE DU LANGAGE SQL et LANGAGE SQL COMME LANGAGE DE
DEFINITION DES DONNEES
CHAP III. LANGAGE SQL COMME LANGAGE DE MANIPULATION DES DONNEES.
CHAP.IV. SQL COMME LANGAGE D'INTERROGATION ET CONTROLE DES DONNEES
BIBLIOGRAPHIE
1. Livres
Cristian Soutou, SQL pour Oracle : Application avec Java, Php et XML, Eyrolles
, Paris, 2006.
• Cristian Soutou, Apprendre SQL avec MySQL Eyrolles, 3ieme Edition, Paris, 2008.
• Jérôme GABILLAUD, SQL Server 2008 Express: Administrez et développez vos bases
de données, Eyrolles, Paris, octobre 2009
• Rudi Bruchez, OPTIMISER SQL, Dimensionnement, supervision, performances du
moteur et du code SQL, Dunod, Paris, 2008, ISBN 978-2-10-053750-1
2. Cours
• Cyril Gruau, Notes de Cour: SQL Server 2000: Analysis Services et DTS, 2014
• Tony Archambeau, Cours SQL : Base du langage SQL et des bases de données, 2014
3. Autres Sources
• Articles en ligne sur Developpez.com. (2005a). LE SQL de A à Z : Le simple ( ?) SELECT
et les fonctions SQL. (http : // sql.developpez.com/ sqlaz/ select).
• Articles en ligne sur Developpez.com. (2005b). LE SQL de A à Z : Les jointures, ou
comment interroger plusieurs tables. (http : // sql.developpez.com/ sqlaz/ jointures).
• Articles en ligne sur Developpez.com. Les fonctions dans
SQL (http://sqlpro.developpez.com/cours/sqlaz/fonctions/).
• http://blog.dbi-services.com/il-tait-une-fois-sql-server/
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
ii
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
1
On utilise la base de données comme service. SQL server 2008 R2 propose un ensemble
d’améliorations connu sous le nom d’AMM (Application and Multi-server Management) visant
à réduire le coût et la complexité de la gestion des serveurs de bases de données et applications.
SQL 2008 R2 a également un ensemble de nouveaux outils comme Power Pivot pour Excel et
SharePoint, Master Data Services, StreamInsight, ReportBuilder 3.0 ou encore Reporting
Services Add-in pour SharePoint.
La version 2008 de SQL Server (nom de code Katmaï) est sortie en août 2008. La version mineure
2008 R2 est sortie en 2010.
La version 2012 de SQL Server est sortie en avril 2012.
La version 2014 de SQL Server est sortie le 1er avril 2014 avec un moteur « in memory »
complémentaire au moteur relationnel.
La version 2016 de SQL Server est actuellement disponible sous forme de bêta test (RC 2.1)
Lors du développement de la version 2005, le projet était à l'époque l'un des plus grands projets
informatiques du monde. Plus de 1 600 développeurs ont participé au codage du noyau et l'on
estime que plus de 10 000 autres personnes y ont travaillé de près ou de loin (Interactions homme-
machine, documentation, traduction...)
1.0.2 Brève Historique du langage SQL
En 1970, Edgar Frank Codd (E.F. CODD), Directeur de recherche du centre IBM de San José,
invente le modèle relationnel qui repose sur une algèbre relationnelle. Ce modèle provoque une
révolution dans l’approche des bases des données.
En 1977, création du langage SEQUEL (Structured English Query Language) et mise en place
du Système R, prototype de base de données reposant sur la théorie de CODD.
SEQUEL continue de s’enrichir pour devenir SQL (Structured Query Language).
C’est IBM, à tout seigneur tout honneur, qui, avec System-R, a implanté le modèle relationnel au
travers du langage SEQUEL (Stuctured English as QUEry Language), rebaptisé par la suite SQL
(Structured Query Language).
La première norme (SQL1) date de 1987. Elle était le résultat de compromis entre constructeurs,
mais elle était fortement influencée par le dialecte d’IBM.
SQL2 a été normalisée en1992. Elle comporte de nombreuses parties (concepts objets, entrepôts
de données, séries temporelles, accès à des sources non SQL, réplication des données, etc.).
NB. : SQL est désormais un langage incontournable pour tout SGBD moderne.
Par contre, bien qu’une norme existe, on assiste à une prolifération de dialectes propres à chaque
produit : soit des sous-ensembles de la norme (certaines fonctionnalités n’étant pas implantées),
soit des sur-ensembles (ajout de certaines fonctionnalités, propres à chaque produit).
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
3
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
4
L’édition développeur est la même que l’édition Entreprise mais ne peut pas être mise sur un
environnement de production.
Il existe une version d’évaluation de 180 jours pour pouvoir effectuer des tests et voir toute la
panoplie de fonctionnalités de +SQL Server.
Les différentes éditions ont également des caractéristiques (limites) matériels et logiciels dont
voici un petit tableau non exhaustif des 5 principales caractéristiques. Ces différences sont
également dans chaque composant serveur.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
5
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
6
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
7
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
8
Les tables système sont utilisées directement par le moteur de SQL Server. Les applications qui
utilisent SQL Server ne doivent en aucun cas accéder directement à ces tables, même en lecture.
En effet, comme la structure de ces tables évolue avec les versions de SQL Server, si certaines
applications accèdent de façon directe aux tables système, on peut se trouver dans l’impossibilité
de migrer vers une nouvelle version de SQL Server tant que l’application n’a pas été réécrite.
1.6 Installer SQL Server
L’installation de SQL Server permet de présenter les différentes éditions de SQL Server ainsi que
de détailler les options d’installation possibles. Un point tout particulier sera mis en place pour
détailler l’exécution des services associés à SQL Server (logiciels serveur). Une fois le serveur
installé, il faut s’assurer que l’installation s’est déroulée correctement puis il faut configurer le
serveur et certains outils clients pour réaliser les différentes étapes d’administration. Bien que
facile à réaliser, l’installation de SQL Server doit être une opération réfléchie. En effet, de
nombreuses options d’installation existent et leur choix doit correspondre à un réel besoin, ou
permettre de couvrir une évolution future du système.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
9
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
10
Le processus d’installation de SQL Server 2008 commence par exécuter un certain nombre de
règles afin de valider la configuration de la plateforme.
On commence par lancer l’installation :
Le système va effectuer des tests pour chercher les éventuels problèmes qui pourraient compromettre
l’installation. : À noter qu’on peut également utiliser l’outil d’identification des problèmes avant
d’effectuer l’installation. Celui-ci se trouvant dans l’onglet Outils du programme d’installation qu’on
peut voir si dessus.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
11
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
12
On choisit la version à installer : ici la version est Express with Advanced Services :
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
13
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
14
Le système nous résume l’espace disque nécessaire ainsi que les répertoires où vont être installé
les composants :
On configure les services SQL de la manière suivante : On utilise le compte de « service réseau
» pour démarrer le service SQL Server Database Engine (ne nécessite pas de mot de passe) et on
automatise le démarrage du service SQL Server Browser.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
15
C’est Le mot de passe de l’utilisateur sa qui est fourni ici. Il convient de ne pas l’oublier puisque
c’est avec ce mot de passe qu’on pourra accéder aux bases de données.
L’installation continue :
Il suffit de cliquer sur suivant pour passer les différents écrans qui se finaliseront par le bouton «
Installer ». Le programme d’installation exécutera un dernier test pour déterminer s’il sera bloqué
ou non lors de l’installation.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
16
L’installation est réussite. Il ne reste plus qu’à cliquer sur Suivant et Fermer.
Pour établir la première connexion au serveur, plusieurs outils sont disponibles. En mode
graphique, il convient de lancer SQL Server Management Studio. Au lancement de l’outil, la
fenêtre suivante de connexion est présentée.
CREATE – ALTER – DROP - RENAME – TRUNCATE Définition des données Langage de définition
(LDD) des Données
INSERT – UPDATE – DELETE - LOCK TABLE Manipulation des Langage de
données (LMD) Manipulation de
Données
SELECT Interrogation des Langage
données (LID) d'Interrogation
des données
GRANT – REVOKE – COMMIT – ROLLBACK – Contrôle des données Langage de contrôle des
SAVEPOINT - SET TRANSACTION
(LCD) données
1.8. DATABASE
a) CREATE DATABASE
La création d’une base de données en SQL est possible en ligne de commande. Même si les
systèmes de gestion de base de données (SGBD) sont souvent utilisés pour créer une base, il
convient de connaitre la commande à utiliser, qui est très simple.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
17
Syntaxe
CREATE DATABASE nomBaseDeDonnées
Exemple :
CREATE DATABASE papeterie -- le nom de la base
b) Modification de la base des données
Pour modifier une base de données existante, on utilise l’instruction ALTER DATABASE.
Modification du Nom de la Base des données
. Par exemple :
• SQL Server 2000:
ALTER DATABASE papeterie
MODIFY NAME cartoleria
• SQL SERVER 2008
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
18
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
19
Syntaxe
La syntaxe générale pour créer une table est la suivante :
CREATE TABLE nom_de_la_table
(
colonne1 type_donnees, colonne2
type_donnees, colonne3
type_donnees,
colonne4 type_donnees
)
Imaginons que l'on souhaite créer une table utilisateur, dans laquelle chaque ligne correspond à
un utilisateur inscrit sur un site web. La requête pour créer cette table peut ressembler à ceci
:
CREATE TABLE utilisateur
(id INT PRIMARY KEY, nom VARCHAR (100), prenom VARCHAR (100), email
VARCHAR(255), date_naissance DATE, pays VARCHAR(255), ville
VARCHAR(255), code postal VARCHAR(5), nombre_achat INT)
b) ALTER TABLE
La commande ALTER TABLE en SQL permet de modifier une table existante. Il est ainsi possible
d’ajouter une colonne, d’en supprimer une ou de modifier une colonne existante, par exemple pour
changer le type.
Syntaxe de base
D'une manière générale, la commande s’utilise de la manière suivante :
ALTER TABLE nom_table
Instruction
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
20
Le mot-clé " instruction " ici sert à designer une commande supplémentaire, qui sera détaillée ci-
dessous selon l’action que l’on souhaite effectuer : ajouter, supprimer ou modifier une colonne.
Exemple
Pour ajouter une colonne qui correspond à une rue sur une table utilisateur, il est possible d’utiliser
la requête suivante :
ALTER TABLE utilisateur
ADD adresse_rue VARCHAR(255)
b.2) Supprimer une colonne
Une syntaxe permet également de supprimer une colonne pour une table. Il y a 2 manières
totalement équivalentes pour supprimer une colonne :
ALTER TABLE nom_table
DROP nom_colonne
Ou (le résultat sera le même)
ALTER TABLE nom_table
DROP COLUMN nom_colonne
b.3) Modifier une colonne
SQL server
ALTER TABLE nom_table
ALTER COLUMN nom_colonne Type_donne
Ici, le mot-clé " type données " est à remplacer par un type de données tel qu’INT,
VARCHAR, TEXT, DATE …
c) Renommer une colonne
Pour renommer une colonne, il convient d’indiquer l’ancien nom de la colonne et le nouveau nom
de celle-ci.
SQL Server
Pour SQL server, il existe une procédure Stockée qui permet de renommer le nom d'une
colonne.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
21
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
22
En d’autres mots, cela permet de purger la table. Cette instruction diffère de la commande DROP
qui a pour but de supprimer les données ainsi que la table qui les contient.
A noter : l’instruction TRUNCATE est semblable à l’instruction DELETE sans utilisation de
WHERE.
Parmi les petites différences TRUNCATE est toutefois plus rapide et utilise moins de ressource.
Ces gains en performance se justifie notamment parce que la requête n’indiquera pas le nombre
d’enregistrement supprimes et qu’il n’y aura pas d’enregistrement des modifications dans le
journal.
Syntaxe
Cette instruction s’utilise dans une requête SQL semblable à celle-ci :
TRUNCATE TABLE `table`
Dans cet exemple, les données de la table " table " seront perdues une fois cette requête exécutée.
2.2.3 Contraintes
Les contraintes ont pour but de programmer des règles de gestion au niveau des colonnes des
tables. Elles peuvent alléger un développement côté client (si on déclare qu’une note doit être
comprise entre 0 et 20, les programmes de saisie n’ont plus à tester les valeurs en entrée mais
seulement le code retour après connexion à la base ; on déporte les contraintes côté serveur).
Quatre types de contraintes sont possibles :
CONSTRAINT nomContrainte
• UNIQUE (colonne1 [, colonne2]…)
• PRIMARY KEY (colonne1 [, colonne2]…)
• FOREIGN KEY (colonne1 [, colonne2] …)
REFERENCES [schéma.]nomTablePere (colonne1 [, colonne2]…)
[ON DELETE {CASCADE | SET NULL}]
• CHECK (condition)
NB : Les contraintes peuvent être déclarées de deux manières :
● En même temps que la colonne (valable pour les contraintes monocolonnes), ces
contraintes sont dites « en ligne » (inline constraints).
● Une fois la colonne déclarée, ces contraintes ne sont pas limitées à une colonne et peuvent
être personnalisées par un nom (out-of-line constraints).
● La contrainte UNIQUE impose une valeur distincte au niveau de la table (les valeurs
nulles font exception à moins que NOT NULL soit aussi appliquée sur les colonnes).
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
23
Exemples
CREATE TABLE personne
(
id int not null identity primary key, nom varchar(20) not
null , prenom varchar(20) null, date_naissance
smalldatetime null, lieu_naissance varchar(255),
nombre_enfant int not null default 0,Constraint UniqueNomPrenocombine unique (nom, prenom)
)
● La contrainte PRIMARY KEY déclare la clé primaire de la table. Un index est généré
automatiquement sur la ou les colonnes concernées. Les colonnes clés primaires ne peuvent être
ni nulles ni identiques (en totalité si elles sont composées de plusieurs colonnes).
Exemple 1;
CREATE TABLE personne
(
id int not null primary key, nom varchar(20) not null ,
prenom varchar(20) null, date_naissance datetime null,
lieu_naissance varchar(255), nombre_enfant int not null
default 0
)
Exemple 2
CREATE TABLE telephone
(
id int not null, id_personne int not null, numero varchar(20) not null,constraint
Pk_Personne primary key (id, id_personne)
)
● La contrainte FOREIGN KEY déclare une clé étrangère entre une table enfant (child) et une
table père (parent). Ces contraintes définissent l’intégrité référentielle que nous aborderons plus
tard. La directive ON DELETE dispose de deux options : CASCADE propagera la suppression
de tous les enregistrements fils rattachés à l’enregistrement père supprimé, SET NULL
positionnera seulement leur clé étrangère à NULL.
CREATE TABLE telephone
(
id int not null, id_personne int not null,
numero varchar(20) not null,
primary key (id),Constraint Fktelephone personne foreign key (id_personne)
references personne (id) )
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
24
La commande foreign key (id_personne) references personne (id) indique que id_personne de la
table telephone référence la clé primaire id de la table personne.Le SGBD vérifiera alors, pour
toute modification pouvant affecter le lien entre les deux tables, que la valeur de id_personne
correspond bien à une ligne de personne.
● La contrainte CHECK impose un domaine de valeurs ou une condition simple ou complexe
entre colonnes (exemple : CHECK (note BETWEEN 0 AND 20), CHECK (grade='Copilote' OR
grade='Commandant')).
2.2.4 Vues
Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
La définition d'une vue est donnée par un SELECT qui indique les données de la base qui seront
vues. Les utilisateurs pourront consulter la base, ou modifier la base (avec certaines restrictions)
à travers la vue, c'est-à-dire manipuler les données renvoyées par la vue comme si c'était des
données d'une table réelle.
Seule la définition de la vue est enregistrée dans la base, et pas les données de la
vue. On peut parler de table virtuelle.
a) CREATE VIEW
La commande CREATE VIEW permet de créer une vue en spécifiant le SELECT
constituant la définition de la vue :
CREATE VIEW nom_vue (col1, col2...) AS SELECT ...
Ou
CREATE VIEW nom_vue AS SELECT ...
CREATE VIEW nom
AS requête
nom
Nom d’objet, doit être unique dans la base.
requête Instruction SELECT ne comportant pas de clause ORDER BY, UNION,
COMPUTE ou INTO.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
25
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
26
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
27
NB : il est possible de ne pas renseigner toutes les colonnes. De plus, l’ordre des colonnes n’est
pas important.
Insertion de plusieurs lignes à la fois
Il est possible d’ajouter plusieurs lignes à un tableau avec une seule requête. Pour ce faire, il
convient d’utiliser la syntaxe suivante :
INSERT INTO NomTable(colonne1,colonne2,...)
SELECT colonne1,colonne2,... FROM NomTable2
WHERE CONDITION
OU
INSERT INTO client (prenom, nom, ville, age)
VALUES
('Rebecca', 'Armand', 'Saint-Didier-des-Bois', 24),
('Aimee', 'Hebert', 'Marigny-le-Chatel', 36), ('Marielle', 'Ribeiro', 'Mailleres', 27),
('Hilaire', 'Savary', 'Conie-Molitard', 58)
A noter : lorsque le champ a remplir est de type VARCHAR ou TEXT il faut indiquer le texte
entre guillemet simple. En revanche, lorsque la colonne est un numérique tel que INT ou BIGINT
il n’y a pas besoin d’utiliser de guillemet, il suffit juste d’indiquer le nombre.
3.2 SQL UPDATE
La commande UPDATE permet d’effectuer des modifications sur des lignes existantes. Très
souvent cette commande est utilisée avec WHERE pour spécifier sur quelles lignes doivent porter
la ou les modifications.
Syntaxe
La syntaxe basique d’une requête utilisant UPDATE est la suivante :
UPDATE table SET nom_colonne_1 = 'nouvelle valeur' WHERE condition
Cette syntaxe permet d’attribuer une nouvelle valeur a la colonne nom_colonne_1 pour les lignes
qui respectent la condition stipule avec WHERE. Il est aussi possible d’attribuer la même valeur
a la colonne nom_colonne_1 pour toutes les lignes d’une table si la condition WHERE n’était pas
utilisée. A noter, pour spécifier en une seule fois plusieurs modification, il faut séparer les
attributions de valeur par des virgules. Ainsi la syntaxe deviendrait la suivante :
UPDATE table SET colonne_1 = 'valeur 1', colonne_2 = 'valeur 2', colonne_3 = 'valeur 3' WHERE
condition
Cette syntaxe permet d’attribuer une nouvelle valeur a la colonne nom_colonne_1 pour les lignes
qui respectent la condition stipule avec WHERE.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
28
Il n’est aussi possible d’attribuer la même valeur à la colonne nom_colonne_1 pour toutes les
lignes d’une table si la condition WHERE n’était pas utilisé. A noter, pour spécifier en une seule
fois plusieurs modification, il faut séparer les attributions de valeur par des virgules. Ainsi la
syntaxe deviendrait la suivante :
UPDATE table SET colonne_1 = 'valeur 1', colonne_2 = 'valeur 2', colonne_3 = 'valeur 3' WHERE
condition
3.3 DELETE
La commande DELETE en SQL permet de supprimer des lignes dans une table. En utilisant cette
commande associe à WHERE il est possible de sélectionner les lignes concernées qui seront
supprimées.
Attention : Avant d’essayer de supprimer des lignes, il est recommandé d’effectuer une
sauvegarde de la base de données, ou tout du moins de la table concernée par la suppression.
Ainsi, s’il y a une mauvaise manipulation il est toujours possible de restaurer les données.
Syntaxe
La syntaxe pour supprimer des lignes est la suivante :
DELETE FROM table WHERE condition
Attention : s’il n’y a pas de condition WHERE alors toutes les lignes seront supprimées et la
table sera alors vide.
Exemple
Si l’on souhaite supprimer les utilisateurs qui se sont inscrit avant le " 10/04/2012″, il va falloir
effectuer la requête suivante :
DELETE FROM utilisateur WHERE date_inscription < '2012-04-10'
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
29
Si l’on veut avoir la liste de toutes les villes des clients, il suffit d’effectuer la requête suivante :
SELECT ville FROM client
Avec la même table client il est possible de lire plusieurs colonnes à la fois. Il suffit tout
simplement de séparer les noms des champs souhaites par une virgule. Pour obtenir les prénoms
et les noms des clients il faut alors faire la requête suivante :
SELECT prenom, nom FROM client
Il est possible de retourner automatiquement toutes les colonnes d’un tableau sans avoir à
connaitre le nom de toutes les colonnes. Au lieu de lister toutes les colonnes, il faut simplement
utiliser le caractère " * " (étoile). C’est un joker qui permet de sélectionner toutes les colonnes. Il
s’utilise de la manière suivante :
SELECT * FROM client
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
30
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
31
Pour obtenir seulement la liste des clients qui habitent a Paris, il faut effectuer la requête suivante
:
SELECT * FROM client WHERE Ville = 'Paris'
• Opérateurs de comparaisons
Il existe plusieurs opérateurs de comparaisons. La liste ci-jointe présente quelques-uns des
opérateurs les plus couramment utilises.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
32
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
33
4.1.6 BETWEEN
L’opérateur BETWEEN est utilisé dans une requête SQL pour sélectionner un intervalle de
données dans une requête utilisant WHERE. L’intervalle peut être constitue de chaines de
caractères, de nombres ou de dates. L’exemple le plus concret consiste par exemple à récupérer
uniquement les enregistrements entre 2 dates définies.
Syntaxe
L’utilisation de la commande BETWEEN s’effectue de la manière suivante :
SELECT * FROM table WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2'
La requête suivante retournera toutes les lignes dont la valeur de la colonne " nom_colonne " sera
comprise entre valeur1 et valeur2.
Exemple1:
Si l’on souhaite obtenir les membres qui se sont inscrit entre le 1 avril 2020 et le 20 avril 2020 il
est possible d’effectuer la requête suivante :
SELECT * FROM utilisateur WHERE date_inscription BETWEEN ’2020-04-01′ AND ’2020-04-
20′
Exemple2:
Si l’on souhaite obtenir tous les résultats dont l’identifiant n’est pas situé entre 4 et 10, il faudra
alors utiliser la requête suivante :
SELECT * FROM utilisateur WHERE id NOT BETWEEN 4 AND 10
4.1.7 LIKE
L’opérateur LIKE est utilisé dans la clause WHERE des requêtes SQL. Ce mot-clé permet
d’effectuer une recherche sur un modèle particulier. Il est par exemple possible de rechercher
les enregistrements dont la valeur d’une colonne commence par telle ou telle lettre. Les modèles
de recherches sont multiple.
Syntaxe
La syntaxe à utiliser pour utiliser l’opérateur LIKE est la suivante :
SELECT * FROM table WHERE colonne LIKE modele
Exemples:
• LIKE ‘%a’ : le caractère " % " est un caractère joker qui remplace tous les autres
caractères.
Ainsi, ce modèle permet de rechercher toutes les chaines de caractère qui se termine par un " a ".
• LIKE ‘a%’ : ce modèle permet de rechercher toutes les lignes de " colonne " qui
commence par un " a ".
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
34
• LIKE ‘%a%’ : ce modèle est utilisé pour rechercher tous les enregistrements qui utilisent
le caractère " a ".
• LIKE ‘pa%on’ : ce modèle permet de rechercher les chaines qui commence par " pa " et
qui se terminent par " on ", comme " pantalon " ou " pardon ".
4.1.8 SQL IS NULL / IS NOT NULL
Dans le langage SQL, l’opérateur IS permet de filtrer les colonnes qui contiennent la valeur
NULL. Cet opérateur est indispensable car la valeur NULL est une valeur inconnue et ne peut
par conséquent pas être filtrée par les opérateurs de comparaison (cf. égal, inferieur, supérieur ou
différent).
Syntaxe
Pour filtrer les résultats ou les champs d’une colonne sont à NULL il convient d’utiliser la syntaxe
suivante :
SELECT * FROM `table` WHERE nom_colonne IS NULL
A l’inverse, pour filtrer les résultats et obtenir uniquement les enregistrements qui ne sont pas
null, il convient d’utiliser la syntaxe suivante :
SELECT * FROM `table` WHERE nom_colonne IS NOT NULL
NB :
L’opérateur IS retourne en réalité un booléen, c’est à dire une valeur TRUE si la condition est
vrai ou FALSE si la condition n’est pas respectée. Cet opérateur est souvent utilisé avec la
condition WHERE mais peut aussi trouve son utilité lorsqu’une sous-requête est utilisée.
4.1.9. Utilisation d’autres fonctions de statistiques
Il existe plusieurs fonctions qui peuvent être utilisées pour manipuler plusieurs enregistrements,
il s’agit des fonctions d’agrégations statistiques, les principales sont les suivantes :
• AVG () pour calculer la moyenne d’un set de valeur. Permet de connaitre le prix du panier
moyen pour de chaque client
• COUNT () pour compter le nombre de lignes concernées. Permet de savoir combien
d’achats ont été effectué par chaque client
• MAX () pour récupérer la plus haute valeur. Pratique pour savoir l’achat le plus cher •
MIN () pour récupérer la plus petite valeur. Utile par exemple pour connaitre la date du premier
achat d’un client
• SUM () pour calculer la somme de plusieurs lignes. Permet par exemple de connaitre le
total de tous les achats d’un client Ces petites fonctions se révèlent rapidement indispensable pour
travailler sur des données.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
35
4.1.10 GROUP BY
La commande GROUP BY est utilisée en SQL pour grouper plusieurs résultats et utiliser une
fonction de totaux sur un groupe de résultat. Sur une table qui contient toutes les ventes d’un
magasin, il est par exemple possible de lister et regrouper les ventes par clients identiques et
d’obtenir le cout total des achats pour chaque client.
Syntaxe d’utilisation de GROUP BY
De façon générale, la commande GROUP BY s’utilise de la façon suivante :
SELECT colonne1, fonction(colonne2) FROM table GROUP BY colonne1
Exemple :
Pour obtenir le cout total de chaque client en regroupant les commandes des mêmes clients, il faut
utiliser la requête suivante :
SELECT client, SUM(tarif) FROM achat GROUP BY client
4.1.11 SQL HAVING
La condition HAVING en SQL est presque similaire a WHERE a la seule différence que
HAVING permet de filtrer en utilisant des fonctions telles que SUM (), COUNT(), AVG(), MIN()
ou MAX().
Syntaxe
L’utilisation de HAVING s’utilise de la manière suivante :
SELECT colonne1, SUM(colonne2) FROM nom_table GROUP BY colonne1 HAVING
fonction(colonne2) operateur valeur
Exemple
Pour utiliser un exemple concret, imaginons une table " achat " qui contient les achats de différents
clients avec le cout du panier pour chaque achat.
Si dans cette table on souhaite récupérer la liste des clients qui ont commandé plus de 40€, toutes
commandes confondues alors il est possible d’utiliser la requête suivante :
SELECT client, SUM(tarif) FROM achat GROUP BY client HAVING SUM(tarif) > 40
Résultat :
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
36
En utilisant deux méthodes de tri, il est possible de retourner les utilisateurs par ordre alphabétique
ET pour ceux qui ont le même nom de famille, les trier par ordre décroissant d’inscription. La
requête serait alors la suivante :
SELECT * FROM utilisateur ORDER BY nom, date_inscription DESC
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
37
Cette requête permet de récupérer seulement les 10 premiers résultats d’une table. Bien entendu,
si la table contient moins de 10 résultats, alors la requête retournera toutes les lignes. Bon à savoir
: la bonne pratique lorsque l’on utilise LIMIT consiste à utiliser également la clause ORDER BY
pour s’assurer que quoi qu’il en soit-ce sont toujours les bonnes données qui sont présentées. En
effet, si le système de tri est non spécifié, alors il est en principe inconnu et les résultats peuvent
être imprévisibles
4.1.13 SQL UNION
La commande UNION de SQL permet de mettre bout-a-bout les résultats de plusieurs requêtes
utilisant elles-mêmes la commande SELECT. C’est donc une commande qui permet de
concaténer les résultats de 2 requêtes ou plus. Pour l’utiliser il est nécessaire que chacune des
requêtes à concaténer retournes le même nombre de colonnes, avec les mêmes types de
données et dans le même ordre.
A savoir : par défaut, les enregistrements exactement identiques ne seront pas répétés dans les
résultats. Pour effectuer une union dans laquelle même les lignes dupliquées sont affichées il faut
plutôt utiliser la commande UNION ALL.
Syntaxe La syntaxe pour unir les résultats de 2 tableaux sans afficher les doublons est la suivante
:
SELECT * FROM table1
UNION
SELECT * FROM table2
Syntaxe La syntaxe pour unir les résultats de 2 tableaux en affichant les doublons est la suivante
:
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
38
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
39
Table commande :
Pour afficher toutes les commandes associées aux utilisateurs, il est possible d’utiliser la requête
suivante :
SELECT id, prenom, nom, date_achat, num_facture, prix_total
FROM utilisateur
INNER JOIN commande ON utilisateur.id = commande.utilisateur_id
Résultats :
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
40
b)
CROSS JOIN
Dans le langage SQL, la commande CROSS JOIN est un type de jointure sur 2 tables SQL qui
permet de retourner le produit cartésien. Autrement dit, cela permet de retourner chaque ligne
d’une table avec chaque ligne d’une autre table. Ainsi effectuer le produit cartésien d’une table
A qui contient 30 résultats avec une table B de 40 résultats va produire 1200 résultats (30 x 40 =
1200). En général la commande CROSS JOIN est combinée avec la commande WHERE pour
filtrer les résultats qui respectent certaines conditions.
Attention, le nombre de résultat peut facilement être très élevé. S’il est effectué sur des tables
avec beaucoup d’enregistrements, cela peut ralentir sensiblement le serveur.
Syntaxe
Pour effectuer une jointure avec CROSS JOIN, il convient d’effectuer une requête SQL respectant
la syntaxe suivante :
SELECT *
FROM table1
CROSS JOIN table2
Méthode alternative pour retourner les mêmes résultats :
SELECT *
FROM table1, table2
L’une ou l’autre de ces syntaxes permettent d’associer tous les résultats de table1 avec chacun
des résultats de table2.
Exemple
Imaginons une application de recettes de cuisines qui contient 2 tables d’ingrédients, la table
légume et la table fruit.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
41
Pour une raison quelconque l’application doit associer tous les légumes avec tous les fruits.
Toutes les combinaisons doivent être affichées. Pour cela il convient d’effectuer l’une ou l’autre
des requêtes suivantes :
SELECT l_id, l_nom_fr_fr, f_id, f_nom_fr_fr FROM legume CROSS JOIN fruit
ou :
SELECT l_id, l_nom_fr_fr, f_id, f_nom_fr_fr FROM legume, fruit
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
42
SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.fk_id
La requête peut aussi s’écrire de la façon suivante :
SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.id = table2.fk_id
Cette requête est particulièrement intéressante pour récupérer les informations de table1 tout en
récupérant les données associées, même s’il n’y a pas de correspondance avec table2. A savoir,
s’il n’y a pas de correspondance les colonnes de table2 vaudront toutes NULL.
Exemple
Imaginons une application contenant des utilisateurs et des commandes pour chacun de ces
utilisateurs. La base de données de cette application contient une table pour les utilisateurs et
sauvegarde leurs achats dans une seconde table. Les 2 tables sont reliées grâce à la colonne
utilisateur_id de la table des commandes. Cela permet d’associer une commande à un utilisateur.
Table utilisateur :
Table commande :
Pour lister tous les utilisateurs avec leurs commandes et afficher également les utilisateurs qui
n’ont pas effectuées d’achats, il est possible d’utiliser la requête suivante :
SELECT * FROM utilisateur LEFT JOIN commande ON utilisateur.id = commande.utilisateur_id
Résultats
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
43
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
44
Table commande :
Pour afficher toutes les commandes avec le nom de l’utilisateur correspondant il est normalement
d’habitude d’utiliser INNER JOIN en SQL. Malheureusement, si l’utilisateur a été supprimé de
la table, alors ça ne retourne pas l’achat. L’utilisation de RIGHT JOIN permet de retourner tous
les achats et d’afficher le nom de l’utilisateur s’il existe. Pour cela il convient d’utiliser cette
requête :
SELECT id, prenom, nom, utilisateur_id, date_achat, num_facture FROM utilisateur
RIGHT JOIN commande ON utilisateur.id = commande.utilisateur_id
Résultats :
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
45
Il est possible d’utiliser FULL JOIN pour lister tous les utilisateurs ayant effectué ou non une
vente, et de lister toutes les ventes qui sont associées ou non à un utilisateur. La requête SQL est
la suivante :
SELECT id, prenom, nom, utilisateur_id, date_achat, num_facture
FROM utilisateur
FULL JOIN commande ON utilisateur.id = commande.utilisateur_id
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
46
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
47
SELECT *
FROM `table`
WHERE `nom_colonne` = (
SELECT `valeur`
FROM `table2`
)
Cet exemple montre une requête interne (celle sur " table2″) qui renvoi une seule valeur. La
requête externe quant à elle, va chercher le résultat de " table " et filtre les résultats à partir de la
valeur retournée par la requête interne.
4.1.14.2 Requêtes imbriquées renvoyant plusieurs lignes
ANY : la condition est vraie si elle est vérifiée Pour au moins une des valeurs renvoyées par la
sous-requête
ALL : la condition est vraie si elle est vérifiée pour chacune des valeurs renvoyées par la Sous-
requête
IN : la condition est vraie si elle est vérifiée Pour une des valeurs renvoyées par la sous-requête La
condition de sélection emploie alors :
• L’opérateur IN (équivalent a = ANY)
• L’opérateur NOT IN (équivalent à != ALL)
• Un opérateur simple ( =, !=, <>, <, >, <=,
>=) suivi de ALL ou ANY
• L’opérateur EXISTS
Exemple de requête imbriquée renvoyant plusieurs lignes
Ex1 : Donner les numéros des voyages Passant pour une ville où passe aussi le Voyage numéro
4
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
48
Ex2 : Numéros des voyages dont il n’y a pas eu de départs après le mois de septembre 2014
SELECT numVoyage FROM Voyage WHERE numVoyage NOT IN (SELECT numVoyage
FROM Tarif
WHERE dateDeb > '30-09-14')
A noter:
• Il est possible d’utiliser n’importe quel operateur d’égalité tel que =, >, <, >=, <= ou <>.
• Il est possible d’imbriquer plusieurs requêtes et il n’y a pas de limite dans le nombre de
niveaux d’imbrication. Le résultat de chaque requête imbriquée sert de valeur de référence
dans la condition de sélection de la requête de niveau supérieur, appelée requête principale.
• La sous-requête peut renvoyer soit une ligne, soit plusieurs.
Si la sous-requête renvoie plusieurs lignes, nous avons deux cas, selon que la sous-
requête est indépendante de la requête principale ou synchronisée avec elle.
Si la sous-requête est synchronisée avec la requête principale, on parle de requête
corrélée.
Exemple de requête imbriquée renvoyant une seule ligne
Question :
Donner les numéros des voyages ayant le même type de pension que le voyage numéro 4
SELECT numVoyage FROM Voyage WHERE typePension = (SELECT typePension
FROM Voyage WHERE numVoyage = 4)
• Opérateur EXISTS
... WHERE EXISTS (sous-select)
Cet opérateur permet de construire un prédicat évalué à vrai si la sous-requête Renvoie au
moins une ligne
Exemple
Numéros des voyages qui font au moins 6 étapes
SELECT numVoyage FROM Voyage V
WHERE EXISTS (SELECT * FROM Etape E
WHERE numOrdre = 6
AND E.numVoyage = V.numVoyage)
Exemple
Numéros des voyages qui font au moins 6 étapes
SELECT numVoyage FROM Voyage V
WHERE EXISTS (SELECT * FROM Etape E
WHERE numOrdre = 6
AND E.numVoyage = V.numVoyage)
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
49
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
50
GRANT permet d'accorder des droits à un utilisateur (parfois plusieurs sur certains SGBD) .
REVOKE permet de retirer des droits à un utilisateur
(Ou plusieurs sur certains SGBD). Les permissions (appelées aussi droits ou privilèges) peuvent
être définies pour chaque clause. D'autre part, il est aussi possible de définir des rôles, c'est-à-dire
de permettre à d'autres utilisateurs d'accorder des permissions.
Les privilèges sont les clauses qui peuvent être autorisées ou retirées à un utilisateur. Les
principales sont :
- DELETE : pour supprimer les données d'une table ;
- INSERT : pour ajouter des données à une table ; - SELECT : pour
accéder aux données d'une table ; - UPDATE : pour mettre à jour les
données d'une table.
Seule la personne qui a créé un élément (table, vue ou index) a le pouvoir d'accorder ou
de retirer des droits.
4.2.1 Connexions
L’objectif de ce point est d’apprendre à gérer ces utilisateurs, leurs droits et de protéger les développeurs.
4.2.1.1 Création
IL existe deux façons d’ajouter un nouveau compte de connexion :
– Syntaxe 1
sp_addlogin
’Paul’, -- le login
’luaP’, -- le mot de passe
’Northwind’ -- la base par defaut
– Syntaxe 2 : hériter d’une connexion Windows
sp_grantlogin ’STID/Henri’ -- STID étant le nom du domaine
sp_defaultdb ’STID/Henri’, ’Northwind’
Il reste ensuite à lui donner accès au serveur :
sp_grantdbaccess ’Paul’
NB:
On dispose ´évidemment des procédures :
sp_revokedbaccess ’Paul’
sp_droplogin "Paul"
4.2.1.2 Création Rôles de serveur
Ce sont des rôles prédéfinis qui donnent aux connexions un certain nombre de fonctionnalités. Il
n’est pas possible de définir des rôles de serveur, par contre leur utilisation facilite la gestion en
cas de nombreux utilisateurs. Les rôles de serveur sont au nombre de huit :
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
51
• Sysadmin
Exécute n’importe quelle opération sur le serveur, c’est l’administrateur du serveur.
• Serveradmin
Permet de configurer les paramètres au niveau du serveur.
• Setupadmin
Permet d’ajouter/supprimer des serveurs liés et d’exécuter certaines procédures stockées
système telles que sp_serveroptions.
• Securityadmin
Permet de gérer les connexions d’accès au serveur.
• Processadmin
Permet de gérer les traitements s’exécutant sur SQL Server.
• dbcreator
Permet de créer et modifier les bases de données.
• diskadmin
Permet de gérer les fichiers sur le disque.
• bulkadmin
Peut exécuter l’instruction BULK INSERT pour une insertion des données par blocs. L’intérêt de
ce type d’insertion réside dans le fait que l’opération n’est pas journalisée et donc les temps
d’insertion sont beaucoup plus rapides.
4.2.2 Création, Modification et Suppression des Utilisateurs
a) Création Utilisateur
C’est par l’intermédiaire de l’instruction CREATE USER qu’il est possible de définir des
comptes utilisateurs au niveau de la base de données.
Syntaxe
CREATE USER nomUtilisateur
Attention : Il y a d'autres options à ajouter à cette requête SQL selon qu'on utilise un ou un autre
SGBD.
• Pour SQL SERVER Syntaxe1
CREATE USER nom_User
FOR LOGIN nom_login
WITH DEFAULT_SCHEMA=schemaParDefaut
b) Modification d'un Utilisateur
• SQL server
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
52
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
53
db_securityadmin
Permet de gérer les rôles, les membres des rôles, et les autorisations sur les instructions et les
objets de la base de données.
db_backupoperator
Permet d’effectuer une sauvegarde de la base de données.
db_denydatareader
Interdit la visualisation des données de la base.
db_denydatawriter
Interdit la modification des données contenues dans la base.
Pour attribuer rôle de base de données à un user on exécute la requête SQL suivante :
exec sp_addrolemember 'db_accessadmin','REALM'
4.2.3 GRANT
4.2.3.1. Droits d’utilisation d’instructions
Les droits d’utilisation des instructions SQL pour créer de nouveaux objets au sein de la base sont
des autorisations pour réaliser l’exécution de certains ordres SQL. Un utilisateur qui dispose de
tels droits est capable par exemple de créer ses propres tables, ses procédures... L’accord de ces
droits peut être dangereux et comme pour tous les droits, doivent être accordés uniquement
lorsque cela est nécessaire.
Les droits principaux d’instructions disponibles sont :
• CREATE DATABASE
• CREATE PROCEDURE
• CREATE FUNCTION
• CREATE TABLE
• BACKUP DATABASE
• CREATE VIEW
• BACKUP LOG
L’accord de privilèges s’effectue en utilisant l’instruction GRANT dont la syntaxe est détaillée
ci-dessous.
GRANT permission [,...]
TO utilisateur[,...]
[ WITH GRANT OPTION ] permission
Permission
Nom de la ou des permissions concernées par cette autorisation. Il est également possible
d’utiliser le mot clé ALL à la place de citer explicitement la ou les permissions accordées.
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
54
Toutefois ce terme ALL ne permet pas d’accorder des privilèges d’exécution de toutes les
instructions mais simplement sur les instructions pour créer des bases de données, des tables, des
procédures, des fonctions, des tables vues ainsi que d’effectuer des sauvegardes de la base et du
journal.
Utilisateur
Nom de l’utilisateur ou des utilisateurs de base de données qui reçoivent les permissions.
WITH GRANT OPTION
Si la permission est reçue avec ce privilège, alors l’utilisateur peut accorder la permission à
d’autres utilisateurs de base de données.
Exemple1
GRANT CREATE TABLE, CREATE TRIGGER TO Paul, Henri
Remarque : Paul et Henri doivent déjà posséder un compte utilisateur sur SQL Server.
4.2.3.2. Droits d’utilisation des objets
Ces droits permettent de fixer quelles opérations (lecture, modification, ajout ou suppression)
l’utilisateur peut réaliser sur des données contenues dans une table, ou bien donner le droit
d’exécution d’une procédure stockée. Ces droits sont en général gérés par le propriétaire de
l’objet. En ce qui concerne le droit de lecture des données contenues dans une table (Utilisation
de l’instruction SELECT), il est possible de préciser quelles colonnes l’utilisateur peut visualiser.
Par défaut, il s’agit de toutes les colonnes. Les principaux droits d’utilisation des objets
concernant les tables, vues, procédures stockées correspondent aux ordres :
• INSERT
• UPDATE
• DELETE
• SELECT
• EXECUTE : qui ne s’utilise que pour les procédures stockées.
Les droits sont accordés par la commande GRANT dont voici la syntaxe :
GRANT {ALL [PRIVILEGES]|permission[(colonne,[,...])] [,...]}
ON objet[,...]
TO utilisateur [,...]
NB : Les instructions SELECT et UPDATE peuvent être limitées à certaines colonnes de la table ou
de la vue. Il est cependant préférable de ne pas trop explorer cette possibilité car il en résulte un plus
grand travail administratif au niveau de la gestion des droits. Il est préférable de passer par une vue ou
bien une procédure stockée pour limiter l’usage de la table.
Exemple :
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
55
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
56
Les sauvegardes SQL Server permettent de sauvegarder la base de données alors que des
utilisateurs y sont connectés. Cette sauvegarde va prendre en compte tous les fichiers constituant
la base de données et va enregistrer leur emplacement.
Bien que la base reste accessible durant la sauvegarde, certaines opérations sont impossibles, à
savoir :
• La création ou la modification d’une base de données (notamment l’extension
automatique du journal des transactions),
• La création d’un index,
• L’exécution d’opérations non journalisées car le processus de sauvegarde utilise le
journal pour garantir la cohérence des données.
Les utilisateurs membres d’un des rôles suivants sont capables de réaliser une sauvegarde de base
de données :
• Rôle de serveur sysadmin,
• Rôle de base de données db_owner,
• Rôle de base de données db_backupoperator.
4.3.1. Syntaxes pour faire le backup de la BD en T-SQL
Full Type
Backup database <Your database name> to disk=' <Backup file location + file name>'
Exemple
Backup database BD1 to disk='D:\BD1.bak'
Differential Type
Backup database <Your database name> to disk='<Backup file location + file name>' with
differential
Exemple
Backup database TestDB to disk='D:\TestDB_diff.bak' with differential
Log Type
Backup log <Your database name> to disk=' <Backup file location + file name>'
Backup log TestDB to disk= 'D:\TestDB_log.trn'
4.3.2 Syntaxe pour faire la restauration de la BD en T-SQL
Restore database <Your database name> from disk=' <Backup file location + file name>
Restore database BD1 from disk='D:\BD1.bak' with replace
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
57
BIBLIOGRAPHIE ............................................................................................................................................... ii
a) Commentaires ........................................................................................................................................ 18
b) Noms d'objets......................................................................................................................................... 18
c) Opérateurs .............................................................................................................................................. 18
d) Variables................................................................................................................................................ 18
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
58
CHAP III. LANGAGE SQL COMME LANGAGE DE MANIPULATION DES DONNEES ....................... 26
3.3 DELETE........................................................................................................................................... 28
CHAP. IV. SQL COMME LANGAGE D'INTERROGATION ET CONTROLE DES DONNEES ................ 29
4.1.2. DISTINCT........................................................................................................................................ 30
4.1.4. WHERE............................................................................................................................................ 31
4.1.5 IN ..................................................................................................................................................... 32
4.1.6 BETWEEN........................................................................................................................................ 33
4.1.7 LIKE.................................................................................................................................................. 33
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023
59
4.2.1 Connexions........................................................................................................................................ 50
4.2.4 Revoke............................................................................................................................................... 55
Ir. Héritier Kangela. SQL Server- G3 RTM & Info Isige-Kindu 2022-2023