Vous êtes sur la page 1sur 6

Atelier Bases de Données Annexe 1 : SQL

Annexe 1 :
Le Langage SQL

Houneida HADDAJI 41
Atelier Bases de Données Annexe 1 : SQL

Annexe 1 : Le langage SQL

I. Présentation du SQL
 Le langage SQL (Structured Query Language) en français langae de requeêtes
structurées, est un langage de gestion de bases de données relationnelles intégré
dans la majorité des SGBDR.
 SQL est développé par la société IBM dans les années 70.
 Il est basé sur l’algèbre relationnel (opérations ensemblistes et relationnelles).
 SQL est composé de 4 sous ensembles de langages :
o un langage de définition de données : (LDD), c'est-à-dire qu'il permet de
créer des tables dans une base de données relationnelle, ainsi que d'en
modifier ou en supprimer.
o un langage de manipulation de données : (LMD), cela signifie qu'il
permet de sélectionner, insérer, modifier ou supprimer des données dans
une table d'une base de données relationnelle.
o Un langage de contrôle de données : (LCD) Il est possible avec SQL de
définir des permissions au niveau des utilisateurs d'une base de données.
On parle de DCL (Data Control Language).

II. Le Langage de définition de données (LDD)

1- Création d’une table


SQL permet de créer des relations sous forme de tables et de définir lors de la création des
contraintes d’intégrité variées sur les attributs. Une commande de création permet donc de
préciser le nom de la table et de définir les éléments de la table correspondant aux colonnes ou
aux contraintes.
Syntaxe :
CREATE TABLE<nom_table> (nom_attribut_1 type_attribut_1 [NULL/NOT
NULL][PRIMARY KEY][REFERENCES <nom_table>(nom_attribut)], nom_
attribut_2 type_ attribut _2,….) ;

<nom_table> : permet d’identifier la relation à créer.
<nom_attribut> : identifie le nom de l’attribut
<type_attribut> : identifie le type de données de l’attribut.

Houneida HADDAJI 42
Atelier Bases de Données Annexe 1 : SQL

<NOT NULL> : signifie que l’attribut doit recevoir une valeur.


<PRIMARY KEY> : signifie que l’attribut est une clé primaire.
<REFERENCES> : définit les clés étrangères.
Les types de données dépendent du SGBD. En ORACLE les types les plus utilisés sont :

Exemple1:
CREATE TABLE Client (NumCl NUMBER (8) PRIMARY KEY,
NomCl VARCHAR (20),
VilleCl VARCHAR(20));
Exemple2:
CREATE TABLE Compte (NumCompte NUMBER(20),
Solde NUMBER(10),
NumCl NUMBER (8),
PPRIMARY KEY(NumCompte, NumCl),
CONSTRAINT fk FOREIGN KEY (NumCl) REFERENCES
Client);
Remarques:
 On peut utiliser CREATE VIEW pour créer une vue, qui est une table crée à partir des
tables de la base.

Houneida HADDAJI 43
Atelier Bases de Données Annexe 1 : SQL

 On peut utiliser CREATE INDEX pour créer un index, qui permet d’accélérer les
recherches d’informations.

2- Modification d’une table


Une table existante peut voir sa structure modifiée par la commande ALTER TABLE qui
permet l’addition d’un nouvel attribut ou la modification (agrandissement) de la longueur
d’un attribut existant.

 Ajouter une ou plusieurs colonnes


Syntaxe : ALTER TABLE<nom_de_la_table>ADD (nom_colonne1 type_colonne1, ..) ;
Exemple : ALTER TABLE Client ADD (Divers VARCHAR (10)) ;

 Modifier le type ou une autre propriété d’une colonne :


Syntaxe : ALTER TABLE nom_table MODIFY (nom_colonne nouveau_type et/ou
nouvelle_propriété) ;
Exemple : ALTER TABLE Client MODIFY (AdrCli VARCHAR(50));

3- Renommer une table


Syntaxe : RENAME nom_table TO nouveau_nom_table ;
Exemple : RENAME Professeur TO Enseignant ;

4- Suppression d’une table


Syntaxe : DROP TABLE nom_table ;
Si la table est référencée par d’autres tables, il faut alors ajouter la clause « CASCADE
CONSTRAINTS » pour supprimer également les contraintes de clé étrangére.
Exemples : DROP TABLE Client ;
DROP TABLE Matière CASCADE CONSTRAITS ;

III. Le Langage de manipulation de données (LMD)


1- INSERT
L’ajout de lignes (tuples) se fait à l’aide de la commande INSERT. Il faut fournir le nom
d’une relation et une liste de valeurs pour le tuple. Les valeurs doivent être écrites dans le
même ordre que celui dans lequel ont été spécifiés les attributs auxquels elles correspondent
lors de la création de la table avec CREATE TABLE.

Syntaxe 1 : Syntaxe 2 :
INSERT INTO nom_de_la_table INSERT INTO nom_de_la_table (attribut1,
VALUES ( valeur_attribut1, attribut2, .., attributN)VALUES(
valeur_attribut2,…., valeur_attribut1, valeur_attribut2, ..,
valeur_attributN); valeur_attributN);

Houneida HADDAJI 44
Atelier Bases de Données Annexe 1 : SQL

2- UPDATE
La commande UPDATE sert à modifier les valeurs des attributs d’un ou plusieurs lignes
sélectionnées.
Syntaxe :
UPDATE nom_de_la_table
SET attribut1 = nouvelle_valeur1, …, attributN =
nouvelle_valeurN
WHERE condition ;

3- DELETE
La commande DELETE supprime des lignes d’une relation. La clause WHERE est facultative et
sert à sélectionner les lignes à supprimer.
Syntaxe : DELETE FROM nom_de_la table WHERE condition ;
Exemple : DELETE FROM Client WHERE NumCl = 120 ;

IV. Le Langage de contrôle de données (LCD)

Plusieurs personnes peuvent travailler simultanément sur une base de données. Toutefois, ces
personnes n'ont pas forcément les mêmes besoins : certaines peuvent par exemple nécessiter de
modifier des données dans la table, tandis que les autres ne l'utiliseront que pour la consulter.
Ainsi, il est possible de définir des permissions pour chaque personne en leur octroyant un mot
de passe.
Cette tâche incombe à l'administrateur de la base de données (en anglais DBA, DataBase
Administrator). Il doit dans un premier temps définir les besoins de chacun, puis les appliquer à
la base de données sous forme de permissions. Le langage SQL permet d'effectuer ces opérations
grâce à deux clauses :
• GRANT permet d'accorder des droits à un (parfois plusieurs sur certains SGBD) utilisateur.
• REVOKE permet de retirer des droits à un (ou plusieurs sur certains SGBD) utilisateur.
Les permissions (appelées aussi droits ou privilèges) peuvent être définies pour chaque (un grand
nombre) 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.
1- La clause GRANT
Permet au propriétaire d’une table ou vue de donner à d’autres utilisateurs des droits d’accès à
celles-ci.
Syntaxe : GRANT Liste_Privilège ON Table/ Vue TO Utilisateur [WITH GRANT OPTION];
Les privilèges sont :
 SELECT : droit de lecture
 INSERT : droit d’insertion de lignes
 UPDATE : droit de modification de lignes
 DELETE : droit de suppression de lignes
 ALTER : droit de modification de la structure de la table

Houneida HADDAJI 45
Atelier Bases de Données Annexe 1 : SQL

 INDEX : droit de création d’index


 ALL : Tous les droits

Exemple : GRANT SELECT ON Client TO User1;

2- La clause REVOKE
Un utilisateur ayant accordé un privilège peut le supprimer à l’aide de la commande REVOKE.
Syntaxe : REVOKE Liste_Privilège ON Table/Vue FROM Utilisateur;
Exemple: REVOKE SELECT ON Produit FROM User1;

Houneida HADDAJI 46

Vous aimerez peut-être aussi