SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Langage SQL




     1
1. Classification des commandes SQL
            LDD : commandes de définition de données (créer, modifier, supprimer)
            LMD : commandes de manipulation de données (extraire et mise à jour)
            Commandes de contrôle de données.

2. Langage de définition de données
2.1 Définition de table
a) Création de table
Syntaxe :
CREATE TABLE nom_table
(nom_colonne type_colonne [DEFAULT expression] [contrainte de colonne],…n,
[Contrainte de table])
Avec
Contrainte de colonne :=
[CONSTRAINT nom_contrainte]{
[NOT] NULL | {UNIQUE | PRIMARY KEY}
| REFERENCES table [(colonne)]
[ON DELETE CASCADE ] | CHECK (condition)
}
Contrainte de table :=
[CONSTRAINT nom_contrainte]
{
{UNIQUE | PRIMARY KEY}(colonne[,colonne]…)
| FOREIGN KEY (colonne[,colonne]…)
| REFERENCES table [(colonne[, colonne]... )]
[ON DELETE CASCADE ] | CHECK (condition)
}

Les principaux types de données sont : CHAR, VARCHAR, NUMBER et DATE.

Exemples :
CREATE TABLE produit
 (codeproduit NUMBER CONSTRAINT pk_prod PRIMARY KEY,
  designation CHAR(20) CONSTRAINT nn_des NOT NULL,
   prixunit NUMBER(7,2) );

CREATE TABLE fournisseur
  ( numfour NUMBER CONSTRAINT pk_numf PRIMARY KEY,
    nom CHAR(20) CONSTRAINT nn_nom NOT NULL,
    adresse CHAR(80),
    codpostal NUMBER(5) CHECK (codpostal BETWEEN 10000 AND 90000),
     ville CHAR(20));




                                           2
CREATE TABLE commande
  ( numcde NUMBER CONSTRAINT pk_numc PRIMARY KEY,
    datecde DATE,
    numfour NUMBER CONSTRAINT fk_numf REFERENCES fournisseur (numfour) );

CREATE TABLE ligne_cde
  (codeproduit NUMBER CONSTRAINT fk_cdprod REFERENCES produit(codeproduit),
   numcde NUMBER CONSTRAINT fk_numcde REFERENCES commande(numcde),
    numligne Number,
   qtecmde NUMBER CONSTRAINT chek_qte CHEK(qtecmde > 0)
   PRIMARY KEY ( codeproduit, numcde) );

CREATE TABLE adr_fourn(nom,adr1,adrs2)
 AS SELECT nom, adresse, codpostal | | ',' | | ville;

b) Modification des structures des tables :
Concerne l'ajout de nouvelles colonnes, l'ajout de contraintes d'intégrité, la modification de
colonne, l'activation, désactivation et suppression de contraintes d'intégrité.
Syntaxe :
ALTER TABLE nom_table
ADD {
      {colonne | contrainte de table}
       | ({colonne | contrainte de table}
            [, {colonne | contrainte de table}…)]
      }
| MODIFY {colonne | (colonne [, colonne]…)}
| DROP {PRIMARY KEY | UNIQUE (colonne [, colonne]…)
            | CONSTRAINT contrainte}
           [CASCADE]

Exemples :
ALTER TABLE fournisseur
  ADD remarque CHAR (80),
   MODIFY ville CHAR(30);

ALTER TABLE produit
   DROP CONSTRAINT pk_prod CASCADE;
Ou bien
ALTER TABLE produit
   DOP PRIMARY KEY CASCADE;

c) Suppression de tables
Syntaxe :
DROP TABLE nom_table
[CASCADE CONSTRAINTS]
L'instruction CASCCADE CONSTRANT supprime toutes les contraintes d'intégrité
référentielles liées aux clés unique ou primaires de la table à supprimer.

Exemple :
DROP TABLE adr_fourn;




                                                3
d) Suppression de lignes d'une table :
Syntaxe :
TRUNCATE TABLE nom_table
  [{DROP | REUSE} STORAGE]

Exemple :
TRUNCATE TABLE produit
  REUSE STORAGE

2.2 Définition d'index
a) Création d'index
Syntaxe :
CREATE INDEX nom_index
 ON table (colonne [ASC | DESC] [, colonne [ASC | DESC]]…)

Exemple :
CREATE INDEX ind_fourn
 ON fournisseur (nom DESC, ville);

b) Suppression d'index
Syntaxe :
DROP INDEX nom_index

Exemple :
DROP INDEX ind_fourn;

2.3 Définition de vues
a) Création d'une vue
Syntaxe :
CREATE [OR REPLECE] VIEW nom_vue
AS requête
[WITH CHECK OPTION [CONSTRAINT contrainte]]

L'option WITH CHECK OPTION force la mise à jour des données à travers la vue à
respecter la condition de la clause WHERE dans l'instruction SELECT qui définit la vue.

Exemple :
CREATE VIEW fourn_view (numfourn, nomfourn, villefourn) AS
   SELECT numfour, nom, ville
   FROM fournisseur
   WHERE ville='casa'
   WITH CHECK OPTION

b) Suppression d'une vue
Syntaxe :
DROP VIEW nom_vue

Exemple :
DROP VIEW fourn_view;




                                             4
3. Langage de manipulation de données :
Permet la consultation de données et la mise à jour de données (insertion, modification et
suppression).
3.1 Consultation de données
Syntaxe :
SELECT [ALL | DISTINCT] liste_de_sélection
FROM liste_de_tables
[WHERE condition]
[GROUP BY liste_expression [HAVING condition]]
[{UNION | UNION ALL
  | INTERSECT | MINUS}commande SELECT]
[ORDER BY] {expression | position}[ASC | DESC]
             [, {expression | position} [ASC | DESC]…]

a) Consultation simple
Syntaxe :
SELECT liste_de_selection
FROM liste_de_tables

Exemples :
• SELECT nom, ville
  FROM fournisseur;
• SELECT *
  FROM fournisseur;

b) Consultation avec qualification
La qualification se fait à l'aide de la clause WHERE
Syntaxe :
WHERE condition
Trois types de conditions : comparaison, jointure et sous_requête
• Conditions de comparaison :
   expression opérateur_relationnel expression
   expression [NOT] BETWEEN expression AND expression
   expression [NOT] IN (liste_de_valeurs)
   colonne [NOT] LIKE "chaîne" (% et _)
    colonne IS [NOT] NULL

Exemples :
• Les fornisseurs dont le nom se termine par mi :
  SELECT *
  FROM fournisseur
  WHERE nom LIKE '%mi';
Le symbole % : remplace une chaîne de caractères de n'importe quel nombre (même vide).
• Les fournisseurs dont le nom comprend la chaîne de caractères 'o_i' à partir de la deuxième
  position.
  SELECT *
  FROM fournisseur
  WHERE nom LIKE '_o_i';
Le symbole _ : remplace un seul caractère.
• Conditions de jointure :
        ─ L'équi-jointure : c'est une jointure dont a condition est une comparaison d'égalité de
        deux colonnes appartenant à deux tables différents.

                                               5
─ θ-jointure : c'est une jointure dont la condition est une comparaison autre que
       l'éalité de deux colonnes appartenant à deux tables différents.
       ─ Jointure multiple : c'est une jointure qui met en relation plusieurs colonnes de
       plusieurs tables.

       Exemple :
       • Equi-jointure : les fournisseurs de casa qui ont passé une commande entre les dates
       du ‘01/01/2000’ et la date courante :
         SELECT DISTINCT fournisseur.numfour, nom, adresse, datecde
         FROM fournisseur, commande
         WHERE fournisseur.numfour=commande.numfour
         AND ville=’casa’
        AND datecde BETWEEN ‘01/01/1993’ AND SYSDATE;
       • Jointure multiple : les produits qui n’ont pas été commandé entre la date 01/01/1993
       et la date courante :
       SELECT produit.codeproduit, produit.designation FROM produit, commande,
       ligne_cde
       WHERE commande.numcde=ligne_cde.numcde
       AND produit.codeproduit<>ligne_cde.codeproduit
       AND commande.datecde BETWEEN ’01/01/1993’ AND SYSDATE;

       ─ Autojointure : c'est une jointure d'une table avec elle-même.

       Exemple :
       Les couples de fournisseurs qui ont la même ville :
       SELECT X.numfour, X.ville, Y.numfour, Y.ville
       FROM fournisseur X, fournisseur Y
       WHERE X.ville=Y.ville ;

       ─ Jointure externe : c'est une jointure qui favorise une table par rapport à une autre.
       Ainsi les lignes de la table dominante seront affichées même si la condition n'est pas
       réalisée.

       Exemple :
       Les fournisseurs de casa qui ont passé ou non une ou plusieurs commandes entre les
       dates de ‘01/01/1993’ et la date courante :
       SELECT X.numfour, nom, adresse, numcde
       FROM fournisseur X, commande Y
       WHERE X.numfour=Y.numfour(+)
       AND ville='casa'
       AND Y.datecde BETWEEN ’01/01/1993’ AND SYSDATE;
• Conditions de sous-requête :
    Syntaxe :
      -WHERE expression opérateur_de_comparaison {ALL | ANY | SOME} (reqête select)
      - WHERE colonne [NOT] IN (requête select)
      -WHERE [NOT] EXISTS (requête select)
  ALL : la condition est vraie si la comparaison est vraie pour chacune des valeurs retournées
  ANY=SOME : la condition est vraie si la comparaison est vraie pour au moins une des
  valeurs retournées
   IN : la condition est vraie si la valeur de colonne est es égale à l'une des valeurs retournées
  par la sous-requête

 EXISTS : retourne vraie si l'évaluation de la sous-requête donne lieu à une ou plusieurs
 lignes et faux sinon.

                                                6
c) Groupement de données et condition de groupement :
• GROUP BY : permet de grouper des lignes de données aillant des valeurs comunnes et faire
des traitements spécifiques sur ces groupes.
Syntaxe :
GROUP BY liste_de_groupes

Exemples :
- le nombre de ligne par commande :
SELECT numcde, COUNT(*)
FROM ligne_cde
GROUP BY numcde;

- le montant de chaque de chaque commande :
SELECT numcde, SUM(Y.prixunit * qtecmde)
FROM ligne_cde X, produit Y
WHERE X.codeproduit=Y.codeproduit
GROUP BY numcde ;
• HAVING : liée à GROUP BY et permet de une restriction portant sur un groupe de lignes.
Syntaxe :
HAVING condition

Exemple :
La somme de toues les comandes dont le nombre de lignes est supérieur à 4 :
SELECT numcde, SUM(Y.prixunit * qtecmde)
FROM ligne_cde X, produit Y
WHERE X.codeproduit=Y.codeproduit
GROUP BY numcde
HAVING COUNT(numligne) > 4;

d) Tri du résultat (order by colonne)
Syntaxe :
ORDER BY colonne | position [ASC | DESC]
Exemple :
Les fournisseurs par ordre de ville et nom :
SELECT *
FROM fournisseur
ORDER BY ville, nom;
Ou bien
SELECT *
FROM fournisseur
ORDER BY 5, 2;

3.2 Opérateurs ensemblistes
a) Union
Syntaxe :
Requête_select UNION [ALL] requête_select [UNION [ALL] requête_select...]

b) Intersection
Syntaxe :
requête_select INTERSECT requête_select

c) Différence
Syntaxe :
requête_select MINUS requête_seect

                                               7
3.3 La mise à jour de données
a) Insertion de données externes
• Insertion de données externes :
Syntaxe :
INSERT INTO {table | vue}
   [(liste_de_colonnes)]
VALUES (liste_de_valeurs)

Exemple :
INSERT INTO fournisseur( 1, ‘fahmi’, ’20 rue alkods’, 20000, ’Casablanca’) ;

• Insertion de données internes :
Syntaxe :
INSERT INTO nom_table [(liste_de_selection)] requête_select
Exemple :
INSERT INTO fourn_view
SELECT numfourn, nom, ville
FROM fournisseur
WHERE ville=’casa’ ;

b) Modification de données
Syntaxe :
• UPDATE {table | vue}
   SET colonne = expression,…
• UPDATE {table | vue}
  SET (liste_colonne)=(requête_select)
  [WHERE condition]
• UPDATE {table | vue}
  SET (liste_colonne) = (requête_select), colonne=expression,…
  [WHERE condition]

Exemple :
UPDATE fournisseur
SET ville=’Rabat’
WHERE numfour=1 ;

c) Suppression de données :
Syntaxe :
DELETE FROM {table | vue}
[WHERE condition]

Exemple :
DELETE FROM fournisseur
WHERE ville=’Rabat’ ;




                                            8

Contenu connexe

En vedette

Informatique s3
Informatique s3Informatique s3
Informatique s3FSJEST13
 
Meris formation-methodes-d-analyse-merise
Meris formation-methodes-d-analyse-meriseMeris formation-methodes-d-analyse-merise
Meris formation-methodes-d-analyse-meriseCERTyou Formation
 
Al2istimta3 bi al3amal
Al2istimta3 bi al3amalAl2istimta3 bi al3amal
Al2istimta3 bi al3amalyassine kchiri
 
Collaboration as it really is, Working together, alone
Collaboration as it really is, Working together, aloneCollaboration as it really is, Working together, alone
Collaboration as it really is, Working together, aloneMarc Buyens
 
Collaboration as it really is - Working together, alone
Collaboration as it really is - Working together, aloneCollaboration as it really is - Working together, alone
Collaboration as it really is - Working together, aloneMarc Buyens
 
Cours Base de Données
Cours Base de DonnéesCours Base de Données
Cours Base de Donnéesyassine kchiri
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE HINDOUSSATI
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
SGBDR - MySQL
SGBDR - MySQLSGBDR - MySQL
SGBDR - MySQLMusatge
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du meriseYassine Badri
 
12 Principles of Collaboration
12 Principles of Collaboration12 Principles of Collaboration
12 Principles of CollaborationJacob Morgan
 
Collaboration PowerPoint slides
Collaboration PowerPoint slidesCollaboration PowerPoint slides
Collaboration PowerPoint slideseisolomon
 

En vedette (20)

Informatique s3
Informatique s3Informatique s3
Informatique s3
 
Meris formation-methodes-d-analyse-merise
Meris formation-methodes-d-analyse-meriseMeris formation-methodes-d-analyse-merise
Meris formation-methodes-d-analyse-merise
 
Al2istimta3 bi al3amal
Al2istimta3 bi al3amalAl2istimta3 bi al3amal
Al2istimta3 bi al3amal
 
Collaboration as it really is, Working together, alone
Collaboration as it really is, Working together, aloneCollaboration as it really is, Working together, alone
Collaboration as it really is, Working together, alone
 
Collaboration as it really is - Working together, alone
Collaboration as it really is - Working together, aloneCollaboration as it really is - Working together, alone
Collaboration as it really is - Working together, alone
 
Uml examen
Uml  examenUml  examen
Uml examen
 
Serie de TD 3 POO
Serie de TD 3 POOSerie de TD 3 POO
Serie de TD 3 POO
 
Cours Base de Données
Cours Base de DonnéesCours Base de Données
Cours Base de Données
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE
 
Sql
SqlSql
Sql
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Modelisation conception SI
Modelisation conception SIModelisation conception SI
Modelisation conception SI
 
SGBDR - MySQL
SGBDR - MySQLSGBDR - MySQL
SGBDR - MySQL
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
12 Principles of Collaboration
12 Principles of Collaboration12 Principles of Collaboration
12 Principles of Collaboration
 
Alone Together
Alone TogetherAlone Together
Alone Together
 
Collaboration PowerPoint slides
Collaboration PowerPoint slidesCollaboration PowerPoint slides
Collaboration PowerPoint slides
 
Group and Team
Group and Team Group and Team
Group and Team
 

Similaire à SQL partie III

Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.pptSiwarAbbes1
 
Cours BASE de DONNES.pdf
Cours BASE de DONNES.pdfCours BASE de DONNES.pdf
Cours BASE de DONNES.pdfManelHamdi7
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016ecogestionblog
 
PL LSQL.pptx
PL LSQL.pptxPL LSQL.pptx
PL LSQL.pptxMaNl13
 
Oracle : extension du langage SQL
Oracle : extension du langage SQLOracle : extension du langage SQL
Oracle : extension du langage SQLMohammed Jaafar
 
QuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfQuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfMoez Moezm
 
Les commandes sql
Les commandes sqlLes commandes sql
Les commandes sqlHanfi Akram
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurMicrosoft Technet France
 
1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdfImaneZoubir1
 
Manipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracleManipulation des Données , cours sql oracle
Manipulation des Données , cours sql oraclewebreaker
 

Similaire à SQL partie III (20)

Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.ppt
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
 
Presentation sql
Presentation sqlPresentation sql
Presentation sql
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Cours BASE de DONNES.pdf
Cours BASE de DONNES.pdfCours BASE de DONNES.pdf
Cours BASE de DONNES.pdf
 
SQL.pdf
SQL.pdfSQL.pdf
SQL.pdf
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016
 
Introduction au langage SQL
Introduction au langage SQLIntroduction au langage SQL
Introduction au langage SQL
 
PL LSQL.pptx
PL LSQL.pptxPL LSQL.pptx
PL LSQL.pptx
 
Introduction_R.pdf
Introduction_R.pdfIntroduction_R.pdf
Introduction_R.pdf
 
Cours sql-sh-
Cours sql-sh-Cours sql-sh-
Cours sql-sh-
 
Oracle : extension du langage SQL
Oracle : extension du langage SQLOracle : extension du langage SQL
Oracle : extension du langage SQL
 
QuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfQuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdf
 
Chapitre5.pdf
Chapitre5.pdfChapitre5.pdf
Chapitre5.pdf
 
Les commandes sql
Les commandes sqlLes commandes sql
Les commandes sql
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf
 
Manipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracleManipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracle
 

Plus de yassine kchiri

Al2istimta3 bi al3amal
Al2istimta3 bi al3amalAl2istimta3 bi al3amal
Al2istimta3 bi al3amalyassine kchiri
 
Correction de td poo n3
Correction de td poo n3Correction de td poo n3
Correction de td poo n3yassine kchiri
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2yassine kchiri
 
Correction du TD architecture
Correction du TD architectureCorrection du TD architecture
Correction du TD architectureyassine kchiri
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données yassine kchiri
 

Plus de yassine kchiri (7)

Al2istimta3 bi al3amal
Al2istimta3 bi al3amalAl2istimta3 bi al3amal
Al2istimta3 bi al3amal
 
Correction de td poo n3
Correction de td poo n3Correction de td poo n3
Correction de td poo n3
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2
 
Correction du TD architecture
Correction du TD architectureCorrection du TD architecture
Correction du TD architecture
 
Smi5 cours partie2
Smi5 cours partie2Smi5 cours partie2
Smi5 cours partie2
 
Smi5 cours partie1
Smi5 cours partie1Smi5 cours partie1
Smi5 cours partie1
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données
 

Dernier

Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...NaimDoumissi
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 

Dernier (18)

Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 

SQL partie III

  • 2. 1. Classification des commandes SQL  LDD : commandes de définition de données (créer, modifier, supprimer)  LMD : commandes de manipulation de données (extraire et mise à jour)  Commandes de contrôle de données. 2. Langage de définition de données 2.1 Définition de table a) Création de table Syntaxe : CREATE TABLE nom_table (nom_colonne type_colonne [DEFAULT expression] [contrainte de colonne],…n, [Contrainte de table]) Avec Contrainte de colonne := [CONSTRAINT nom_contrainte]{ [NOT] NULL | {UNIQUE | PRIMARY KEY} | REFERENCES table [(colonne)] [ON DELETE CASCADE ] | CHECK (condition) } Contrainte de table := [CONSTRAINT nom_contrainte] { {UNIQUE | PRIMARY KEY}(colonne[,colonne]…) | FOREIGN KEY (colonne[,colonne]…) | REFERENCES table [(colonne[, colonne]... )] [ON DELETE CASCADE ] | CHECK (condition) } Les principaux types de données sont : CHAR, VARCHAR, NUMBER et DATE. Exemples : CREATE TABLE produit (codeproduit NUMBER CONSTRAINT pk_prod PRIMARY KEY, designation CHAR(20) CONSTRAINT nn_des NOT NULL, prixunit NUMBER(7,2) ); CREATE TABLE fournisseur ( numfour NUMBER CONSTRAINT pk_numf PRIMARY KEY, nom CHAR(20) CONSTRAINT nn_nom NOT NULL, adresse CHAR(80), codpostal NUMBER(5) CHECK (codpostal BETWEEN 10000 AND 90000), ville CHAR(20)); 2
  • 3. CREATE TABLE commande ( numcde NUMBER CONSTRAINT pk_numc PRIMARY KEY, datecde DATE, numfour NUMBER CONSTRAINT fk_numf REFERENCES fournisseur (numfour) ); CREATE TABLE ligne_cde (codeproduit NUMBER CONSTRAINT fk_cdprod REFERENCES produit(codeproduit), numcde NUMBER CONSTRAINT fk_numcde REFERENCES commande(numcde), numligne Number, qtecmde NUMBER CONSTRAINT chek_qte CHEK(qtecmde > 0) PRIMARY KEY ( codeproduit, numcde) ); CREATE TABLE adr_fourn(nom,adr1,adrs2) AS SELECT nom, adresse, codpostal | | ',' | | ville; b) Modification des structures des tables : Concerne l'ajout de nouvelles colonnes, l'ajout de contraintes d'intégrité, la modification de colonne, l'activation, désactivation et suppression de contraintes d'intégrité. Syntaxe : ALTER TABLE nom_table ADD { {colonne | contrainte de table} | ({colonne | contrainte de table} [, {colonne | contrainte de table}…)] } | MODIFY {colonne | (colonne [, colonne]…)} | DROP {PRIMARY KEY | UNIQUE (colonne [, colonne]…) | CONSTRAINT contrainte} [CASCADE] Exemples : ALTER TABLE fournisseur ADD remarque CHAR (80), MODIFY ville CHAR(30); ALTER TABLE produit DROP CONSTRAINT pk_prod CASCADE; Ou bien ALTER TABLE produit DOP PRIMARY KEY CASCADE; c) Suppression de tables Syntaxe : DROP TABLE nom_table [CASCADE CONSTRAINTS] L'instruction CASCCADE CONSTRANT supprime toutes les contraintes d'intégrité référentielles liées aux clés unique ou primaires de la table à supprimer. Exemple : DROP TABLE adr_fourn; 3
  • 4. d) Suppression de lignes d'une table : Syntaxe : TRUNCATE TABLE nom_table [{DROP | REUSE} STORAGE] Exemple : TRUNCATE TABLE produit REUSE STORAGE 2.2 Définition d'index a) Création d'index Syntaxe : CREATE INDEX nom_index ON table (colonne [ASC | DESC] [, colonne [ASC | DESC]]…) Exemple : CREATE INDEX ind_fourn ON fournisseur (nom DESC, ville); b) Suppression d'index Syntaxe : DROP INDEX nom_index Exemple : DROP INDEX ind_fourn; 2.3 Définition de vues a) Création d'une vue Syntaxe : CREATE [OR REPLECE] VIEW nom_vue AS requête [WITH CHECK OPTION [CONSTRAINT contrainte]] L'option WITH CHECK OPTION force la mise à jour des données à travers la vue à respecter la condition de la clause WHERE dans l'instruction SELECT qui définit la vue. Exemple : CREATE VIEW fourn_view (numfourn, nomfourn, villefourn) AS SELECT numfour, nom, ville FROM fournisseur WHERE ville='casa' WITH CHECK OPTION b) Suppression d'une vue Syntaxe : DROP VIEW nom_vue Exemple : DROP VIEW fourn_view; 4
  • 5. 3. Langage de manipulation de données : Permet la consultation de données et la mise à jour de données (insertion, modification et suppression). 3.1 Consultation de données Syntaxe : SELECT [ALL | DISTINCT] liste_de_sélection FROM liste_de_tables [WHERE condition] [GROUP BY liste_expression [HAVING condition]] [{UNION | UNION ALL | INTERSECT | MINUS}commande SELECT] [ORDER BY] {expression | position}[ASC | DESC] [, {expression | position} [ASC | DESC]…] a) Consultation simple Syntaxe : SELECT liste_de_selection FROM liste_de_tables Exemples : • SELECT nom, ville FROM fournisseur; • SELECT * FROM fournisseur; b) Consultation avec qualification La qualification se fait à l'aide de la clause WHERE Syntaxe : WHERE condition Trois types de conditions : comparaison, jointure et sous_requête • Conditions de comparaison : expression opérateur_relationnel expression expression [NOT] BETWEEN expression AND expression expression [NOT] IN (liste_de_valeurs) colonne [NOT] LIKE "chaîne" (% et _) colonne IS [NOT] NULL Exemples : • Les fornisseurs dont le nom se termine par mi : SELECT * FROM fournisseur WHERE nom LIKE '%mi'; Le symbole % : remplace une chaîne de caractères de n'importe quel nombre (même vide). • Les fournisseurs dont le nom comprend la chaîne de caractères 'o_i' à partir de la deuxième position. SELECT * FROM fournisseur WHERE nom LIKE '_o_i'; Le symbole _ : remplace un seul caractère. • Conditions de jointure : ─ L'équi-jointure : c'est une jointure dont a condition est une comparaison d'égalité de deux colonnes appartenant à deux tables différents. 5
  • 6. ─ θ-jointure : c'est une jointure dont la condition est une comparaison autre que l'éalité de deux colonnes appartenant à deux tables différents. ─ Jointure multiple : c'est une jointure qui met en relation plusieurs colonnes de plusieurs tables. Exemple : • Equi-jointure : les fournisseurs de casa qui ont passé une commande entre les dates du ‘01/01/2000’ et la date courante : SELECT DISTINCT fournisseur.numfour, nom, adresse, datecde FROM fournisseur, commande WHERE fournisseur.numfour=commande.numfour AND ville=’casa’ AND datecde BETWEEN ‘01/01/1993’ AND SYSDATE; • Jointure multiple : les produits qui n’ont pas été commandé entre la date 01/01/1993 et la date courante : SELECT produit.codeproduit, produit.designation FROM produit, commande, ligne_cde WHERE commande.numcde=ligne_cde.numcde AND produit.codeproduit<>ligne_cde.codeproduit AND commande.datecde BETWEEN ’01/01/1993’ AND SYSDATE; ─ Autojointure : c'est une jointure d'une table avec elle-même. Exemple : Les couples de fournisseurs qui ont la même ville : SELECT X.numfour, X.ville, Y.numfour, Y.ville FROM fournisseur X, fournisseur Y WHERE X.ville=Y.ville ; ─ Jointure externe : c'est une jointure qui favorise une table par rapport à une autre. Ainsi les lignes de la table dominante seront affichées même si la condition n'est pas réalisée. Exemple : Les fournisseurs de casa qui ont passé ou non une ou plusieurs commandes entre les dates de ‘01/01/1993’ et la date courante : SELECT X.numfour, nom, adresse, numcde FROM fournisseur X, commande Y WHERE X.numfour=Y.numfour(+) AND ville='casa' AND Y.datecde BETWEEN ’01/01/1993’ AND SYSDATE; • Conditions de sous-requête : Syntaxe : -WHERE expression opérateur_de_comparaison {ALL | ANY | SOME} (reqête select) - WHERE colonne [NOT] IN (requête select) -WHERE [NOT] EXISTS (requête select) ALL : la condition est vraie si la comparaison est vraie pour chacune des valeurs retournées ANY=SOME : la condition est vraie si la comparaison est vraie pour au moins une des valeurs retournées IN : la condition est vraie si la valeur de colonne est es égale à l'une des valeurs retournées par la sous-requête EXISTS : retourne vraie si l'évaluation de la sous-requête donne lieu à une ou plusieurs lignes et faux sinon. 6
  • 7. c) Groupement de données et condition de groupement : • GROUP BY : permet de grouper des lignes de données aillant des valeurs comunnes et faire des traitements spécifiques sur ces groupes. Syntaxe : GROUP BY liste_de_groupes Exemples : - le nombre de ligne par commande : SELECT numcde, COUNT(*) FROM ligne_cde GROUP BY numcde; - le montant de chaque de chaque commande : SELECT numcde, SUM(Y.prixunit * qtecmde) FROM ligne_cde X, produit Y WHERE X.codeproduit=Y.codeproduit GROUP BY numcde ; • HAVING : liée à GROUP BY et permet de une restriction portant sur un groupe de lignes. Syntaxe : HAVING condition Exemple : La somme de toues les comandes dont le nombre de lignes est supérieur à 4 : SELECT numcde, SUM(Y.prixunit * qtecmde) FROM ligne_cde X, produit Y WHERE X.codeproduit=Y.codeproduit GROUP BY numcde HAVING COUNT(numligne) > 4; d) Tri du résultat (order by colonne) Syntaxe : ORDER BY colonne | position [ASC | DESC] Exemple : Les fournisseurs par ordre de ville et nom : SELECT * FROM fournisseur ORDER BY ville, nom; Ou bien SELECT * FROM fournisseur ORDER BY 5, 2; 3.2 Opérateurs ensemblistes a) Union Syntaxe : Requête_select UNION [ALL] requête_select [UNION [ALL] requête_select...] b) Intersection Syntaxe : requête_select INTERSECT requête_select c) Différence Syntaxe : requête_select MINUS requête_seect 7
  • 8. 3.3 La mise à jour de données a) Insertion de données externes • Insertion de données externes : Syntaxe : INSERT INTO {table | vue} [(liste_de_colonnes)] VALUES (liste_de_valeurs) Exemple : INSERT INTO fournisseur( 1, ‘fahmi’, ’20 rue alkods’, 20000, ’Casablanca’) ; • Insertion de données internes : Syntaxe : INSERT INTO nom_table [(liste_de_selection)] requête_select Exemple : INSERT INTO fourn_view SELECT numfourn, nom, ville FROM fournisseur WHERE ville=’casa’ ; b) Modification de données Syntaxe : • UPDATE {table | vue} SET colonne = expression,… • UPDATE {table | vue} SET (liste_colonne)=(requête_select) [WHERE condition] • UPDATE {table | vue} SET (liste_colonne) = (requête_select), colonne=expression,… [WHERE condition] Exemple : UPDATE fournisseur SET ville=’Rabat’ WHERE numfour=1 ; c) Suppression de données : Syntaxe : DELETE FROM {table | vue} [WHERE condition] Exemple : DELETE FROM fournisseur WHERE ville=’Rabat’ ; 8