0% ont trouvé ce document utile (0 vote)
71 vues10 pages

Syntaxe SQL

Le document présente le langage de définition de données (LDD) et le langage de manipulation de données (LMD) en SQL, en détaillant les types de données, la création et la modification de tables, ainsi que les opérations d'insertion, de mise à jour et de suppression. Il décrit également les jointures, les opérations relationnelles et les conditions de recherche. Enfin, des exemples d'interrogation des données sont fournis pour illustrer l'application des concepts abordés.

Transféré par

Kamel Marnissi
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)
71 vues10 pages

Syntaxe SQL

Le document présente le langage de définition de données (LDD) et le langage de manipulation de données (LMD) en SQL, en détaillant les types de données, la création et la modification de tables, ainsi que les opérations d'insertion, de mise à jour et de suppression. Il décrit également les jointures, les opérations relationnelles et les conditions de recherche. Enfin, des exemples d'interrogation des données sont fournis pour illustrer l'application des concepts abordés.

Transféré par

Kamel Marnissi
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

I.

Le langage de définition de données (LDD)

Principaux types de données SQL

Type de données Syntaxe Description

Type alphanumérique CHAR(n) Chaîne de caractères de


longueur fixe n
Type alphanumérique VARCHAR(n) Chaîne de caractères de n
caractères maximum (n<16383)
Type numérique NUMBER(n,[d]) Nombre de n chiffres
[optionnellement d chiffes après
la virgule]
Type numérique SMALLINT Entier signé de 16 bits (-32768 à
32768)
Type numérique INTEGER Entier signé de 32 bits (-2E31 à
2E31-1)
Type numérique FLOAT Nombre à virgule flottante
Type horaire DATE Date sous la forme 16/07/07
Type horaire TIME Heure sous la forme
12:45:24:55
Type horaire TIMESTAMP Date et Heure

1- Création d'une relation (table)


CREATE TABLE <nom-de-la-table>
(
<attribut1> <type> [Not Null] [unique] [, …]

[, PRIMARY KEY (<nom_attribut> [,…])]


[,FOREIGN KEY (<nom_attribut>) REFERENCES
<nom_table>[,…] ] )
[CHECK (<condition>)]

• La contrainte d’unicité (clause UNIQUE) : permet d’assurer qu’il n’existe


pas de valeur dupliquée dans la colonne
• La contrainte d’obligation (clause NOT NULL) autorise et gère une valeur
particulière appelée la valeur nulle. Cette valeur nulle traduit à la fois la
valeur manquante et la valeur inexistante (ex. le nom de jeune fille pour
un homme). NOT NULL est toujours une contrainte colonne, et ne peut pas
être une contrainte de table.

1
• La contrainte de clé primaire (clause PRIMARY KEY) : permet
de choisir une colonne (ou un groupe de colonnes) unique privilégiée
dans une table ;
• La contrainte d’intégrité référentielle admet deux syntaxes selon qu’elle
porte sur une colonne (contrainte de colonne) ou sur plusieurs (contrainte
de table). Dans le premier cas, on utilise la clause REFERENCES. Dans le
second, on utilise l’expression FOREIGN KEY. La clé étrangère fait
référence à la clé primaire d'une autre Table. Elle traduit un lien
sémantique avec une autre Table.
• La contrainte sémantique (clause CHECK) : permet de spécifier les
conditions logiques portant sur une ou plusieurs colonnes d’une même
table.

2- Modification de la structure d’une relation


Ajout d'un attribut :

ALTER TABLE <nom-de-table>


ADD <attribut> <type>,

Modification de type:

ALTER TABLE <nom-de-table>


MODIFY <attribut> <nouveau-type>

Suppression d'un attribut:

ALTER TABLE <nom-de-table>


DROP COLUMN <attribut>

Suppression d'une relation:

DROP TABLE <nom-de-table> [CASCADE CONSTRAINTS]

3- Indexes
Création d'indexes

CREATE [ unique ] INDEX <nom_index> ON <nom_de_la_table>


(<attribut> [ASC | DESC],…)

Suppression d'indexes

DROP INDEX <nom_index>

4-vues

2
Création d'une vue

CREATE VIEW <nom_vue> [(att1, att2,…)] AS <commande-select>

Suppression d'une vue

DROP VIEW <nom_vue>

3
II. Le langage de manipulation de données (LMD)

1- L’insertion d’un ou plusieurs tuples


INSERT INTO <nom-detable> [(att1 [, att2]…)]
VALUES (constante1 [,constante2]…)

2- La mise à jour des données

UPDATE <nom-de-table>
SET attribut = expression
[WHERE condition]

3- La suppression des données

DELETE FROM <nom-de-table>


[WHERE condition]

4- L'interrogation des données


SELECT [ALL|DISTINCT] liste_selection
FROM liste_table/vue
[ WHERE condition]
[GROUP BY liste_group_by]
[HAVING condition
[ Order By attribut (ASC/DESC)];

GROUP BY : permet de réarranger la table résultat du select en un nombre de


groupe. Généralement cette clause est utilisée avec les fonctions du groupe.
Les fonctions de groupe sont
Count : Compte le nombre d’occurrence d’un attribut, y compris les doubles
Sum : Calcule la somme des valeurs d’un attribut du type numérique
Avg : Calcule la moyenne des valeurs d’un attribut du type numérique
Max : Recherche la plus grande valeur de l’attribut
Min : Recherche la plus petite valeur de l’attribut

4
La clause HAVING représente l’équivalent de la clause WHERE appliquée aux
groupes. Donc elle ne peut être spécifié qu’à la suite d’une clause Group By.

ORDER BY : permet de trier les tuples sélectionnés selon la valeur d’un ou de


plusieurs attributs.

Les Conditions de Recherche dans la clause WHERE:

1. Opérateurs Logiques

AND, OR, NOT

2. Type comparaison

=, <>, <, >, >=, <=

3. Type intervalle

BETWEEN, NOT BETWEEN

4. Type appartenance

IN, NOT IN

5. Type correspondance à un masque

LIKE, NOT LIKE

- '%' représente n'importe quelle séquence de zéros ou plusieurs


caractères exemple: LIKE 'H%'
- '_ ' représente n'importe quel caractère unique exemple: LIKE 'H__"

6. Type NULL

NULL, NOT NULL

5
5- Les opérations relationnelles et ensemblistes en SQL

a-Jointure

- Cet opérateur porte sur 2 relations qui doivent avoir au moins un


attribut défini dans le même domaine (ensemble des valeurs
permises pour un attribut).

- La condition de jointure peut porter sur l'égalité d'un ou de


plusieurs attributs définis dans le même domaine (mais n'ayant pas
forcément le même nom).

- Les n-uplets de la relation résultat sont formés par la


concaténation des n-uplets des relations d'origine qui vérifient la
condition de jointure.

Remarque : Des jointures plus complexes que l'équijointure peuvent


être réalisées en généralisant l'usage de la condition de jointure à
d'autres critères de comparaison que l'égalité (<,>, <=,>=, <>).

Forme générale

SELECT liste_selection
FROM table1 JOIN table2
[ON [Table1.]attribut operateur_de-jointure [table2.]attribut ]
[ WHERE condition];

L'équijointure)

SELECT liste_selection
FROM table1 JOIN table2
[ON [Table1.]attribut = [table2.]attribut ]
[ WHERE condition];

Ou bien

SELECT liste_selection
FROM table1, table2
WHERE [Table1.]attribut = [table2.]attribut ]
[AND [condition]];

b-PROJECTION

SELECT [DISTINCT] liste d'attributs FROM table ;

6
c-L'UNION

SELECT liste d'attributs FROM table1


[ WHERE condition]
UNION
SELECT liste d'attributs FROM table 2
[ WHERE condition];
;

d- INTERSECTION

Cet opérateur porte sur deux relations de même schéma.

SELECT attribut1, attribut2, ... FROM table1


[ WHERE condition];
INTERSECT
SELECT attribut1, attribut2, ... FROM table2
[ WHERE condition];
;

e-MINUS

SELECT attribut1, attribut2, ... FROM table1


[ WHERE condition];
MINUS
SELECT attribut1, attribut2, ... FROM table2
[ WHERE condition];
;

7
APPLICATION
Reprenons la base de données commerciale définie selon le schéma relationnel
suivant :

Produit (Codp,Lib, Pu, Qtes, Seuil)


Client (Codc,Nomc,Prenc, Adresse, Telc, Créditc)
Cmde (Numc, date, Codc,…)
Facture ( Numf, montf, datf, Codc)
PC (Codp, Numc, QtéC)

A-Interrogation des données


1- Donner les informations relatives au produit dans le code est 2

Select *
From produit
Where codp = 2 ;
(la condition est de comparer codep à une valeur)

2- Donner toutes les informations des produits dont la quantité en stock


est >= à 5 fois la quantité seuil

Select *
From produit
Where Qté s ≥ 5 * seuil ;
(Comparaison à une expression)

3- Donner l’ensemble des produits dont le 100 ≤ pu<= 400D


Select *
From produit
Where PU Between 100 and 400 ;
(Comparaison par rapport à un ensemble de valeurs)

4- Donner l’ensemble des commandes dont les date se trouvent dans la


liste
(‘14 – 07 – 98’, ‘15 – 09 –98’ , ‘20 – 12 –98’ )

Select *
From commande
Where datec In (‘14 – 07 – 98’, ‘15 – 09 –98’ , ‘20 – 12 –98’ );
(Comparaison par rapport à une liste)

5- Afficher le nombre de produits par commande


Select Numc, Count (Codp)
From pc
Group By Numc;

8
6- Afficher le total des factures par clients

Select Codc, Sum (Montf)


From facture
Group By codc;

7- Afficher la liste des produits commandés en quantité totale > à 5.

Select Codp, Sum (Qtec)


From pc
Group By codp;
Having Sum (Qtec) >5;
8- Donner tous les clients dont le nom commence par M

Select *
From client
Where Nom like “M %”;
(Comparaison à un filtre)

B-Jointure

1. Afficher tous les commandes qui contiennent au moins un produit dont le prix
unitaire dépasse 100 dinars.

Select distinct Numc


From pc, produit
Where pu >100 and
Condition de jointure
pc.Codp = produit.Codp Obligatoire

2. Donner tous les noms des clients qui ont commandé le produit de code 10.

Select nomc
From client, commande,produit
Where
client.Codc = commande.Codc and
produit.Codp = commande.Codp
and Codp =10

9
10

Vous aimerez peut-être aussi