Le langage SQL - page d`accueil

publicité
Traitement de données
Commandes SQL
Introduction
Structured Query Language (SQL) est un langage permettant l'accès aux bases de données relationnelles. Il est
vrai qu'il existe un grand nombre de bases de données plus ou moins différentes : SQL Server, Oracle, Access...
Chaque base de données possède plus ou moins sont propre langage SQL avec ses spécificités. Cependant, un
certain nombre d'instructions se retrouvent de manière systématique.
Le but de ce document, n'est pas de faire un tour complet de toutes les constructions SQL existantes, mais
plutôt de présenter les commandes les plus couramment utilisées. Parmi elles, nous retrouvons notamment les
commandes SELECT, INSERT, UPDATE et DELETE. Nous allons les regarder rapidement une par une. Mais
avant cela, introduisons quelques mots de terminologie.
Quelques mots de terminologie
Une base de données relationnelle est principalement constituée de tables. Dans une certaine mesure, on peut
dire qu'une table contient de éléments d'une nature (d'un type) bien déterminée : par exemple, des personnes.
Dans une table, on retrouve plusieurs éléments de même type (comme dit précédemment) : ces éléments sont
appelés enregistrements (Record en anglais). Chaque enregistrement correspond en fait à une ligne de la table,
et donc chaque enregistrement est une donnée composée.
Chaque partie constitutive d'un enregistrement est appelée un champ (Field en anglais). La capture d'écran
suivante montre un exemple de table : elle contient des informations décrivant des utilisateurs d'un système
informatique.
Deux tables peuvent être liées l'une à l'autre au niveau de la base de données. Ces liaisons sont appelées
relations (d'ou le terme de base de données relationnelle). Il existe plusieurs types de relations et elles
permettent de garantir l'intégrité des données contenues dans la base. Parmi ces relations, on trouve la relation
d'intégrité référentielle. La capture d'écran suivante visualise une relation de ce type via un trait reliant les deux
tables. Ainsi, dans cette base, il est inconcevable que l'on trouve une action qui ne soit pas rattachée à un
utilisateur.
#Niedercorn LT « la Briquerie » 57100 THIONVILLE
Programmation : SQL
& page 1/3
Sélection d'un ensemble d'enregistrement
Pour extraire des données de la base, il vous faut utiliser l'ordre SQL SELECT. Il permet de générer une requête
plus ou moins complexe, en fonction de ce que vous souhaitez récupérer. Voici quelques exemples de requête
SQL de sélection.
-- Renvoie toutes les lignes de la table T_Users
SELECT * FROM T_Users;
-- Renvoie tous les enregistrements de la table, triés par nombre de connexion
SELECT * FROM T_Users
ORDER BY ConnectionNumber;
-- Renvoie le mot de passe de l'utilisateur Skywalker
SELECT Password FROM T_Users
WHERE Login='Skywalker';
-- Etablie une jointure entre les deux tables considérées.
SELECT Login, Password, ConnectionNumber, DateOfAction, Description
FROM T_Users INNER JOIN T_Actions ON T_Users.Id = T_Actions.IdUser
WHERE (T_Actions.IdUser = 3)
Revenons juste sur le dernier exemple : cette requête SQL lie des données présentent dans le deux tables. En
effet, la table d'actions associe chaque action à un utilisateur par l'intermédiaire de l'identificateur d'utilisateur
(n'oubliez pas la contrainte d'intégrité référentielle). Ce type de lien s'appelle une jointure. De plus, dans cet
exemple, seules les actions pour l'utilisateur d'indice 3 nous intéresse.
Insertion d'enregistrements
Une autre commande SQL permet, elle, non pas de récupérer de données dans la table, mais d'en ajouter. Il
s'agit de la commande INSERT. L'exemple suivant insert un nouvel enregistrement dans la table. Attention,
L'identificateur id est définit pour s'affecter automatiquement lors de l'insertion d'un nouvel enregistrement.
-- Insert un nouvel utilisateur dans la table
INSERT INTO T_Users (Login, Password, ConnectionNumber)
VALUES ('liard', 'dominique', 0);
Modification d'enregistrements
La commande UPDATE permet de mettre à jour des enregistrements déjà existant. Pour que cela fonctionne, il
faut sélectionner les valeurs à mettre à jour et fixer les nouvelles valeurs. Vous pouvez changer les valeurs de
plusieurs champs de l'enregistrement.
-- Incrémente le nombre de connexions pour l'utilisateur Plisken.
UPDATE T_Users SET ConnectionNumber=ConnectionNumber+1 WHERE Login='Plisken';
#Niedercorn LT « la Briquerie » 57100 THIONVILLE
Programmation : SQL
& page 2/3
Suppression d'enregistrements
Pour finir cette présentation des ordres SQL usuels, parlons de la commande DELETE. Elle permet de
supprimer des enregistrements d'une table. Si vous ne précisez rien, tous les enregistrements seront supprimés.
Sinon, il faut sélectionner, via le WHERE, quels sont les enregistrements à supprimer.
-- Supprime toutes les lignes de la table
DELETE FROM T_Users;
-- Supprime toutes les lignes qui ont, pour valeur de login, 'liard'
DELETE FROM T_Users
WHERE Login='liard';
Conclusion
Au terme de cette petite présentation, nous avons donc vu les quatre commandes SQL classiques. Vous pouvez,
dans une table, sélectionner des données, pour les exploiter dans vos programmes. Vous pouvez aussi insérer de
nouveaux enregistrements, modifier des enregistrements existants ou en supprimer.
Mais nous sommes loin d'avoir fait un tour exhaustif du langage SQL, d'autant plus que chaque type de bases
de données relationnelles enrichie le langage avec ses propres constructions. Pour de plus amples informations,
reportez-vous à la documentation de votre base de données.
#Niedercorn LT « la Briquerie » 57100 THIONVILLE
Programmation : SQL
& page 3/3
Téléchargement