Tous les articles par Mr COBOL

Instruction SQL DELETE 

L’instruction DELETE supprime les lignes d’une table.

Syntaxe:

DELETE FROM nom_table WHERE condition ;

Remarque : S’il n’y a pas de clause « where » dans l’instruction Delete, SQL supprimera toutes les données de la table. Vous devez donc être très prudent lors de l’exécution de l’instruction Delete et vous assurer qu’il existe une clause Where.

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Produit” de la base de données DB2 :

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006Stylo7.451074,50

Exemple 1 : supprimer un enregistrement

Supprimez ‘ID_Produit’ 7003 de la table ‘Produit’.

DELETE FROM Produit WHERE ID_Product = ‘7003’;
Résultat:
ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006Stylo7.451074,50

Exemple 2 : Supprimer tous les enregistrements

Supprimez tous les départements de la table ‘Produit’ (c’est-à-dire videz la table).

L’instruction SQL suivante supprime toutes les lignes de la table “Produit”, sans supprimer la table.

DELETE FROM Produit;
Résultat:

Tableau vide

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale

Instruction SQL SELECT

L’instruction SELECT est utilisée pour récupérer des données d’une base de données.

Pour utiliser SELECT, au minimum, spécifiez deux éléments d’information, ce que vous voulez sélectionner et d’où vous voulez le sélectionner.

Syntaxe:

SELECT colonne1, colonne2, ... 
  FROM nom_table ;

Ici, colonne1, colonne2, … sont les noms de champ de la table à partir de laquelle vous souhaitez sélectionner des données. Si vous souhaitez sélectionner tous les champs disponibles dans le tableau, utilisez la syntaxe suivante :

SELECT * FROM nom_table ;

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Produit” de la base de données DB2.

ID-produitNom-ProduitCatégoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005Rouevélos1 200
7006STYLO7.451074,50

Exemple 1 : Récupération Simple

SELECT Nom-Produit FROM Produit ;

Cette instruction SELECT récupère une seule colonne appelée Nom-Produit à partir de la table Product.

Résultat:
Nom-Produit
Souris
Disque dur
Clavier
RAM
Roue
STYLO

Exemple 2 : Récupération de plusieurs colonnes

Pour récupérer plusieurs colonnes d’une table, plusieurs noms de colonne doivent être spécifiés après le mot-clé SELECT et chaque colonne doit être séparée par une virgule.

SELECT ID-Produit, Nom-Produit, Prix FROM Produit ;

Cette instruction SELECT récupère les données de plusieurs colonnes de la table Produit.

Résultat:
ID-ProduitNom-ProduitPrix
7001Souris75,00
7002Disque dur65,00
7003Clavier36.00
7004RAM23.50
7005Roue1 200
7006STYLO7.45

Exemple 3 : Récupération de toutes les colonnes

En plus de pouvoir spécifier les colonnes souhaitées (une ou plusieurs, comme vu précédemment), les instructions SELECT peuvent également demander toutes les colonnes sans avoir à les répertorier individuellement. Pour ce faire, utilisez le caractère générique astérisque (*) à la place des noms de colonne réels, comme suit.

SELECT * FROM Produit ;
Résultat:
ID-ProduitNom-ProduitCatégoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005Rouevélos1 200
7006STYLO7.451074,50

Instruction SQL ORDER BY

Pour trier explicitement les données extraites à l’aide d’une instruction SELECT, la clause ORDER BY est utilisée.

Le mot-clé ORDER BY trie les enregistrements par ordre croissant par défaut. Pour trier les enregistrements par ordre décroissant, utilisez le mot-clé DESC.

Syntaxe:

SELECT colonne1, colonne2, ... 
  FROM nom_table 
  ORDER BY colonne1, colonne2, ... ASC|DESC;

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Product” de la base de données DB2.

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque durAccessoires65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006StyloPapeterie7.45dix74,50
7007Clé USBAccessoires65,00201 300

Exemple 1 : tri par colonnes simples

SELECT ID-Produit, Nom-Produit, Categorie, Prix
  FROM Produit
  ORDER BY Prix;

Cette instruction trie les données par ordre alphabétique dans l’ordre croissant de la colonne Prix.

Résultat:
ID-ProduitNom-ProduitCategoriePrix
7006StyloPapeterie7.45
7004RAMComposants23.50
7003ClavierAccessoires36.00
7002Disque durAccessoires65,00
7007Clé USBAccessoires65,00
7001SourisAccessoires75,00
7005VTTvélos1 200

Exemple 2 : tri sur plusieurs colonnes

Pour trier sur plusieurs colonnes, spécifiez simplement les noms de colonne séparés par des virgules dans la clause ORDER BY.

SELECT ID-Produit, Nom-Produit, Prix
  FROM Produit
  ORDER BY Prix, Nom-Produit;

Ce code récupère trois colonnes et trie les résultats par deux d’entre eux, d’abord par Price puis par ProductName (c’est-à-dire si plusieurs enregistrements sont présents avec le même prix, ces enregistrements seront à nouveau triés en fonction du nom).

Résultat:
ID-ProduitNom-ProduitPrix
7006Stylo7.45
7004RAM23.50
7003Clavier36.00
7002Disque dur65,00
7007Clé USB65,00
7001Souris75,00
7005VTT1 200

Exemple 3 : Trier par position de colonne

ORDER BY prend également en charge le classement spécifié par la position relative des colonnes.

SELECT ID-Produit, Prix, Nom-Produit
  FROM Produit
 ORDER BY 2, 3;

ORDER BY 2 signifie trier par la deuxième colonne de la liste SELECT, la colonne Prix. ORDER BY 2, 3 signifie trier par Price puis par ProductName.

Résultat:
ID-ProduitPrixNom-Produit
70067.45Stylo
700423.50RAM
700336.00Clavier
700265,00Disque dur
700765,00Clé USB
700175,00Souris
70051 200VTT

Exemple 4 : Spécification du sens de tri

Le tri des données ne se limite pas aux ordres de tri croissants (de A à Z). Bien qu’il s’agisse de l’ordre de tri par défaut, la clause ORDER BY peut également être utilisée pour trier par ordre décroissant (de Z à A).

Pour trier par ordre décroissant, le mot-clé DESC doit être spécifié.

SELECT ProductID, ProductName, Price FROM Product ORDER BY Price DESC ;

Ce SQL trie les produits par prix dans l’ordre décroissant (produit le plus cher présent en premier).

Résultat:
ID-ProduitNom-ProduitPrix
7005VTT1 200
7001Souris75,00
7002Disque dur65,00
7007Clé USB65,00
7003Clavier36.00
7004RAM23.50
7006Stylo7.45

Instruction SQL VIEW

Une vue offre une manière différente d’examiner les données dans une ou plusieurs tables. L’instruction VIEW (vue) est une table virtuelle constituée d’une instruction SQL SELECT qui accède aux données d’une ou plusieurs tables ou vues.

Une vue contient des lignes et des colonnes, tout comme une vraie table. Les champs d’une vue sont des champs d’une ou plusieurs tables réelles de la base de données.

Voici la syntaxe de création de vue :

CREATE VIEW nom-view
       AS requete 

Où, requete signifie n’importe quelle instruction SQL SELECT.

Exemple:

Créez une vue nommée VW_PROJET sur la table TB_PROJET qui contient uniquement les lignes avec un numéro de projet (PROJET_NO) commençant par les lettres “SP”.

CREATE VIEW VW_PROJET
    AS SELECT *
      FROM TB_PROJET
        WHERE SUBSTR(PROJET_NO, 1, 2) = 'SP'

Nous pouvons interroger la vue ci-dessus comme suit :

SELECT * FROM [VW_PROJET];

Instruction SQL ALIAS

L’instruction CREATE ALIAS définit un alias pour un module, un surnom, une séquence, une table, une vue ou un autre alias. Les alias sont également appelés synonymes.

Voici la syntaxe de création d’alias :

CREATE[REPLACE] ALIAS nom-alias
         FOR TABLE nom-table
         [FOR MODULE nom-module]
         [FOR SEQUENCE nom-séquence]

Exemple:

L’instruction SQL suivante crée un alias pour une table TB_TABLE.

CREATE ALIAS SP_TAB
   FOR TB_TABLE;

Instruction SQL ALTER INDEX

L’instruction SQL ALTER INDEX est utilisée pour modifier la définition d’un index.

Voici la syntaxe de modification d’index :

ALTER INDEX nom-index
      [REGENERATE]
      [ADD COLUMN (nom-colonne ASC/DESC)]
      [CLUSTER | NOT CLUSTER]
      [PADDED | NOT PADDED]
      [using-specification]
      [free-specification]
      [COMPRESS YES | NO]
      [ALTER partition-element
            using-specification
            free-specification]
      [BUFFERPOOL nom-bp]
      [CLOSE YES | NO]
      [PIECESIZE integer]
      [COPY YES | NO]

Explication:

  • REGENERATE : Spécifie que l’index sera régénéré.
  • ADD COLUMN : ajoute nom-colonne à l’index.
  • ALTER PARTITION : identifie la partition de l’index à modifier.

Exemple 1:

Modifiez l’index DSN8910.IX_EMP. Indiquez que DB2 ne doit pas fermer les ensembles de données qui prennent en charge l’index lorsqu’il n’y a aucun utilisateur actuel de l’index.

ALTER INDEX DSN8910.IX_EMP
      CLOSE NO;

Modifier l’index partitionné DSN8910.IX_DEPT. Pour la partition 3, laissez une page d’espace libre pour 13 pages et 13 % d’espace libre par page. Pour la partition 5, laissez une page pour 25 pages et 25 % d’espace libre. Pour toutes les autres partitions, laissez une page d’espace libre pour 6 pages et 11 % d’espace libre.

ALTER INDEX DSN8910.IX_DEPT
USING
    VCAT CATLGG
FREEPAGE 6
PCTFREE 11
ALTER PARTITION 3
    USING VCAT CATLGG
    FREEPAGE 13
    PCTFREE 13,
ALTER PARTITION 5
    USING VCAT CATLGG
    FREEPAGE 25
    PCTFREE 25;

Exemple 2 :

Modifiez l’index DSN8910.IX_PROJ. Utilisez BP1 comme pool de mémoire tampon à associer à l’index, indiquez que l’image complète ou les copies simultanées sur l’index sont autorisées et modifiez la taille maximale de chaque ensemble de données à 8 mégaoctets.

ALTER INDEX DSN8910.IX_PROJ
        BUFFERPOOL BP1
        COPY YES
        PIECESIZE 8M;

Exemple 3 :

Supposons que l’index IX_X1 contient au moins une colonne de longueur variable et est un index rembourré. Remplacez l’index par un index qui n’est pas rempli.

ALTER INDEX IX_X1 NOT PADDED;

Opérateur SQL BETWEEN 

L’opérateur BETWEEN sélectionne des valeurs dans une plage donnée. Les valeurs peuvent être des nombres, du texte ou des dates.

L’opérateur BETWEEN est inclusif : les valeurs de début et de fin sont incluses.

Syntaxe:

SELECT nom_colonne(s) 
  FROM nom_table 
 WHERE nom_colonne BETWEEN valeur1 AND valeur2 ;

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Product” de la base de données DB2.

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006STYLO7.451074,50
7007Lecteur CDAccessoires75,00
7008MicroAccessoires75,00
7009AmplificateurComposants25.00
7010casque de musiqueAccessoires100,00

Exemple 1:

L’instruction SQL suivante sélectionne tous les produits dont le prix est ENTRE 10 et 50 :

SELECT * FROM Produit 
 WHERE Prix BETWEEN 10 ET 50 ;
Résultat:
ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7006STYLO7.451074,50
7009AmplificateurComposants25.00

Exemple 2 :

L’instruction SQL suivante sélectionne tous les produits en dehors de la plage de l’exemple précédent, utilisez NOT BETWEEN ::

SELECT *
  FROM Produits 
 WHERE Prix NOT BETWEEN 10 ET 50 ;
Résultat:
ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7005VTTvélos1 200
7007Lecteur CDAccessoires75,00
7008MicroAccessoires75,00
7010casque de musiqueAccessoires100,00

SQL AS

Un alias est juste cela, un nom alternatif pour un champ ou une valeur.

Les alias sont attribués avec le mot-clé AS.

Les alias SQL sont utilisés pour donner à une table, ou à une colonne d’une table, un nom temporaire. Les alias sont souvent utilisés pour rendre les noms de colonnes plus lisibles.

Syntaxe : alias de colonne

SELECT nom_colonne AS nom_alias 
  FROM nom_table ;

Syntaxe : alias de table

SELECT nom_colonne(s) 
  FROM nom_table AS nom_alias ;

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Product” de la base de données DB2.

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006STYLO7.45dix74,50
7007Lecteur CDAccessoires75,00
7008MicroAccessoires75,00
7009AmplificateurComposants25.00
7010casque de musiqueAccessoires100,00

Exemple 1:

L’instruction SQL suivante crée deux alias, un pour la colonne ProductID et un pour la colonne ProductName :

SELECT ID_Produit AS ID, Nom_Produit AS Produit 
  FROM Produit ;

Le résultat de cette requête est le suivant.

IDProduit
7001Souris
7002Disque dur
7003Clavier
7004RAM
7005VTT
7006STYLO
7007Lecteur CD
7008Micro
7009Amplificateur
7010casque de musique

Exemple 2 :

Si le nom d’alias contient des espaces, il nécessite des guillemets simples ou des crochets.

SELECT CONCAT('LaCommunaute','DuCobol') AS 'Valeur combinée' 
  FROM SYSIBM.SYSDUMMY1;

Voici la sortie :

Valeur combinée 
------------- 
LaCommunauteDuCobol

Exemple 3 :

L’instruction SQL suivante vend tous les produits de la table product. Nous utilisons la table “Product” et donnons à la table des alias comme “P” (ici, nous utilisons des alias pour raccourcir le SQL) :

Ceci est un exemple simple d’alias de table. nous n’utilisons généralement pas d’alias pour une requête de table unique. Juste à des fins de compréhension, nous avons utilisé des alias pour une requête de table unique.

SELECT P.ID_Produit, P.Nom_Produit
  FROM Produit AS P ;

Le résultat de cette requête est le suivant.

ID-ProduitNom-Produit
7001Souris
7002Disque dur
7003Clavier
7004RAM
7005VTT
7006STYLO
7007Lecteur CD
7008Micro
7009Amplificateur
7010casque de musique

Les alias peuvent être utiles lorsque :

  • Il y a plus d’une table impliquée dans une requête
  • Les fonctions sont utilisées dans la requête
  • Les noms de colonne sont grands ou peu lisibles
  • Deux ou plusieurs colonnes sont combinées ensemble

Opérateurs mathématiques SQL

Les opérateurs mathématiques SQL sont les suivants :

OpérateurLa description
+Ajout
Soustraction
*Multiplication
/Division

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Etudiants” de la base de données DB2.

ID-EtudiantNom-EtudiantMarque1Marque 2Marque3
1001Mani1008090
1002Sini1008595
1003Thamaraï10090100
1004Kalaï908090
1005Pravin758060
1006Asaimani607090

Exemple 1:

L’instruction SQL suivante répertorie les détails des étudiants avec des notes totales.

SELECT Studentid, Studentname, Mark1, Mark2, Mark3, Mark1+Mark2+Mark3 AS "Notes totales" 
  FROM Etudiants ;
Résultat:
ID-EtudiantNom-EtudiantMarque1Marque2Marque3Notes Totals
1001Mani1008090270
1002Sini1008595280
1003Thamaraï10090100290
1004Kalaï908090260
1005Pravin758060215
1006Asaimani607090220