0% ont trouvé ce document utile (0 vote)
117 vues8 pages

Guide complet sur le langage SQL

Ce document décrit le langage SQL, en particulier le langage de manipulation de données (SELECT, INSERT, UPDATE, DELETE), le langage de description de données (CREATE, ALTER, DROP) et le langage de contrôle de données (GRANT, REVOKE, DENY). Il explique également les jointures et les opérations de mise à jour des données.

Transféré par

yyachraf7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
117 vues8 pages

Guide complet sur le langage SQL

Ce document décrit le langage SQL, en particulier le langage de manipulation de données (SELECT, INSERT, UPDATE, DELETE), le langage de description de données (CREATE, ALTER, DROP) et le langage de contrôle de données (GRANT, REVOKE, DENY). Il explique également les jointures et les opérations de mise à jour des données.

Transféré par

yyachraf7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre II : Langage de requêtes SQL

SQL (Structured Querry Language) dans sa version 2 de 1992 est un langage structuré
regroupant un ensemble d'instructions permettant la création, la structuration et
l'interrogation des bases de données relationnelles.
SQL offre trois catégories de langages :
- Langage de Manipulation de Données (LMD) : Offre les instructions pour ajouter,
supprimer et modifier des lignes à savoir : SELECT, INSERT, UPDATE et DELETE.
- Langage de Description de Données (LDD) : Offre les instructions permettant la
création de la base de données : Base de données, Tables, Attributs, Clés primaires, Clés
étrangères, index... à savoir : CREATE, ALTER et DROP
- Langage de Contrôle de Données (LCD) : Offre les instructions permettant de définir
des permissions pour les utilisateurs pour gérer les droits d’accès, à savoir : GRANT,
REVOKE et DENY

I. Langage de Manipulation de Données (LMD) :


1) Instruction SELECT :
L’affichage des données se fait à l'aide de l'instruction Select.
La syntaxe complète pour cette instruction est :
Select colonne1, colonne2,...
From table1, table2,...
Where Condition
Group By colonne_Regroupement1, Attribut_Regroupement2
Having Condition_Regroupeme
Order By Critère_Tri1 Asc| Desc, Critère_Tri2 Asc| Desc

Remarque : Pour éliminer les répétitions des lignes utilisez le mot


clé distinct

Select distinct prenom from employé

 clause where:
Pour exprimer une condition on utilise la clause WHERE.

Les conditions peuvent être exprimée à l'aide des opérateurs =, >, >= ,<, <=, Between, in,
like, is Null, exists, any, all, union, intersect, minus et peuvent être combinées à l'aide des
opérateurs logiques : and, or et not
- Between : Permet de tester l'appartenance de la valeur d'une colonne à un intervalle

Select *from Employé


Where salaireDeBase Between 5000 and 10000

1
Ce qui est équivalent à :
Where salaireDeBase >= 5000 and salaireDeBase <= 10000

- in : Teste si les valeurs d'une colonne appartiennent à un groupe de valeur. Le


groupe de valeurs pouvant s'exprimer à l'aide de valeurs constantes ou d'une
requête select
Select * from employé
Where grade in (‘cadre’, ’technicien’)
Ou
Select * from departement
Where localisation in (Select ville From employé)

- Like : Permet une comparaison entre une chaîne de caractères et les valeurs d'une
colonne. Elle utilise deux caractères spéciaux % et _
% : signifie plusieurs caractères
_ : signifie un seul caractère
Exemples :
1) Les employés avec un nom qui commence par A

Select * from employé where nom like 'A%'

2) Les employés avec un nom se compose de deux lettres et commence par A

Select * from employé where nom like 'A_'

3) Les employés avec un nom se compose de trois lettres et commence par A

Select * from employé Where nom like 'A__'

- Any : Compare une colonne avec une liste de valeurs fournies par une sous
requête. Si une des valeurs de la liste rend la condition vraie alors la ligne est
sélectionnée
- All : compare une colonne avec une liste de valeurs fournies par une sous
requête. Si toutes les valeurs de la liste rendent la condition vraie alors la ligne
est sélectionnée
- Exists : Est évalué à vrai si la sous-requête qui le suit donne au moins une ligne en
retour
- Union : Permet de réaliser l'union entre deux ensembles( tables)
(Select...From...Where...)
Union
(Select...From...Where...)
- Intersect : Permet de réaliser l'intersection entre deux ensembles (tables)
- Minus : Permet de réaliser la différence entre deux ensembles (tables)
 clause Order by : permet d’exprimer des critères de tri

2
 clause Group by : Effectue des regroupements sur certains attributs. En général, il
est utilisé pour obtenir des statistiques et calculs en exploitant les fonctions offertes
par SQL : Sum (Somme), Min(Minimum), Max(Maximum), Count(Nombre),
Avg(Moyenne).
- Remarque : pour exprimer des conditions sur les éléments de regroupement après
group by on utilise : HAVING

2) La jointure entre les tables :


La jointure consiste à associer des lignes de 2 tables en associant l’égalité des valeurs
d’une colonne d’une première table par rapport à la valeur d’une colonne d’une
deuxième table.

 Jointure interne :
La jointure interne est la fusion de 2 tables qui ont une colonne commune avec une
condition d’égalité de cette colonne.
Pour écrire une jointure interne entre deux tables Table1 et Table2 on utilise :

Select Table1. Colonne1, Table2.Colonne2


From Table1, Table2
WhereTable1.ColonneJointure1=Table2.ColonneJointure2

- Dans les nouvelles versions de SQL, la jointure s’écrit :

Select Table1. Colonne1, Table2.Colonne2


From Table1 inner join Table2
On Table1.ColonneJointure1=Table2.ColonneJointure2

Exemples :
Soient les 2 tables suivantes :
DEPARTEMENT (NumDept, nomDept, ville)
EMPLOYE (NumEmp, nomEmp, adresse, dateEmbauche, NumDept*)

1- Afficher le nom et l’adresse de l’employé numéro 5.


Select nomEmp, adresse
From EMPLOYE
WHERE NumEmp = 5

2- Afficher le numéro du département où l’employé numéro 4 travaille.

3
Select NumDept
From EMPLOYE
Where NumEmp = 4

3- Afficher la ville du département où l’employé numéro 2 travaille.


Select ville
From EMPLOYE, DEPARTEMENT
Where NumEmp=2
AND EMPLOYE.NumD= DEPARTEMENT.NumD

4- Afficher les noms des employés et les noms de leurs départements où ils travaillent.
Select nomEmp, nomDept
From EMPLOYE, DEPARTEMENT
Where EMPLOYE.NumD= DEPARTEMENT.NumD

3) Instructions de Mise à jour des données :

La mise à jour désigne les différentes opérations de suppression, de modification et d'insertion


des informations dans les tables.

a- Insertion d’une ligne :

La syntaxe utilisée est la suivante :

insert into Nom_Table (col1,col2, col3,….)

values (valeur1, valeur2, valeur3,…..)

On peut insérer des valeurs dans toutes les colonnes de la table en écrivant :

insert into Nom_table values (val1, val2, val3, ....)

Exemple :

insert into DEPT values (2, ‘informatique’, ‘casa’)


insert into DEPT ( Dnum, Dnom) values ( 1, ‘logistique’)
insert into EMP values ( 100, ‘eeee1’,’responsable achat’,’2000/02/15’,NULL ,2)

Un autre moyen d’insérer des lignes dans une table est d'utiliser une instruction select qui
prend des informations à partir d'autres tables pour les insérer dans une table voulue

Insert into Nom_table Select Col1, Col2,... From Nom_Table1, Nom_Table2...Where...

Exemple:

Insert into ANCIEN select * from EMP WHERE dateEmb< ‘1990/01/01’

4
b- Suppression de ligne :

Delete from Nom_Table [where Condition]

c- Modification de ligne:

Update Nom_Table

set colonne 1= new val, colonne2= new val, ……

[where Condition]

Exemples : Soit la table Produit (codep, libéllé, prix)

• Supprimer les produits ayant un prix qui dépasse 200


delete from Produit Where prix>200

• Supprimer tous les produits de la table.


delete from Produit

• Doubler le prix des produits qui commencent par L


update Produit
Set prix = prix*2
Where libéllé like ‘L%’

• Ajouter le produit ‘pc portable’ qui a le code ‘P008’ et coute 150


insert into Produit values ( ‘P008’, ‘pc portable’, 150)

• Diminuer le prix des produits qui se terminent par S de 5%.


Update Produit
Set prix= prix – prix *0.05
Where libéllé like ‘%S’

5
II. Langage de Description de Données (LDD) :
 Création de bases de données

create Database nom_de_la_base

Pour utiliser la base de données créée on écrit :


Use nom_de_la_base

1- Création de tables
Pour créer une table, on déclare les champs de la table puis on déclare les contraintes en
spécifiant sur quelle colonne porte chaque contrainte.

create table nom_table (col1 type, col2 type, …….,

[Constraint Nom_Contrainte ]

Primary Key (nom_col_Clé1, nom_col_Clé2...


Foreign key(nom_col_clé_étrangère) references Table_Origine
Check (condition)

Exemple :

create table EMP ( Enum int,


Enom varchar (20),
dateEmb dateTime ,
prof varchar (20),
sal float,
Dnum int ,
constraint pk1 primary key ( Enum),
constraint fk1foreign key (Dnum) references DEPT( Dnum)
)

Remarque :
• Il est possible de ne pas attribuer des noms à certaines contraintes en éliminant le mot clé Constraint mais à
ce moment-là il ne sera pas possible d'éliminer cette contrainte par code
SQL de la table

• La contrainte Check permet le contrôle de :


- La validité par rapport à des constantes ou des listes de constantes

Create table DEPT ( ……………………………..,


Constraint pk1 primary key …………..,
Constraint ck1 check ville in ( ‘casa’ , ‘rabat’)

6
- La cohérence entre deux colonnes de la table

Exemple : constraint CK Check (date fin >=datedebut)

 Pour créer une colonne numéro auto incrémentable, on utilise IDENTITY, et le type
de colonne doit être dans ce cas de type numérique : int, bigint, smallint, tinyint,
decimal ou numeric

Exemple :
Enum int IDENTITY (1,1)

Dans ce cas, le champ Enum va démarrer avec la valeur 1 et sera incrémenté de 1 à chaque
instruction INSERT

Conseil pratique : Pour créer les tables d'une base de données, on commence toujours par
créer les tables ne contenant pas de clés étrangères puis on passe à la création des tables où
les clés primaires de ces tables ont glissé comme clé étrangère car il n'est pas possible de créer
un lien avec des tables qui n'existent pas.

2- Modification de tables

Alter Table Nom_Table

Add Nom_col Type_col

Add Constraint Nom_Contrainte Check(condition)


Primary Key (nom_col_Clé1, Nom_col_Clé2...)
Foreign key(Attribut_clé_étrangère) references
Table_Origine

Alter column nomcolonne_A_Changer nouveau type [null ou not null]

Drop Column Nom_Colonne

Drop Constraint Nom_Contrainte

3- Suppression de tables

Drop table Nom_Table

Remarque :

Dans des bases de données relationnelles, on aura généralement besoin d’appliquer des
contraintes en cascades c’est-à-dire : accepter la modification et réaliser un certain nombre

7
d’opérations en parallèle sur l’ensemble des tables concernées soit en supprimant des lignes,
soit en les modifiant.

Pour spécifier des contraintes de type cascade la syntaxe serait :

... Constraint Nom_Contrainte Foreign key ...References Table_Origine


[ ON DELETE CASCADE ]
[ ON UPDATE CASCADE ]

Vous aimerez peut-être aussi