Tous les articles par Mr COBOL

Opérateur SQL EXISTS 

L’opérateur EXISTS teste l’existence de certaines lignes dans une sous-requête.

L’opérateur EXISTS renvoie true si la sous-requête renvoie un ou plusieurs enregistrements.

Le résultat de l’opérateur EXISTS :

  1. Est vrai uniquement si le nombre de lignes spécifié par la sous-requête est différent de zéro.
  2. Est faux uniquement si le nombre de lignes spécifié par la sous-requête est zéro.
  3. Ne peut pas être inconnu.

Syntaxe:

SELECT nom_colonne(s)
    FROM nom_table 
    WHERE EXISTS
    (SELECT nom_colonneFROM nom_table WHERE condition);

Examinons les données du tableau “Commandes” ci-dessous :

Numéro-CommandeNuméro-ClientDate-Commande
1001102020-09-08
1002992020-09-01
1003172020-08-25
1004762020-09-19
1005702020-09-19

Examinons les données du tableau “Clients” ci-dessous :

Numéro-ClientNom-ClientPays
76JackAmérique
17JancyAllemagne
20CarmenPakistan
10robertInde
99BrianChine
70AvrilAmérique

Exemple 1

L’instruction SQL suivante renvoie TRUE et répertorie les clients qui ont passé une commande.

SELECT Nom_Client
  FROM Clients
  WHERE EXISTS (SELECT Numero_Commande
                  FROM Commandes
                 WHERE Commandes.Numero_Commande = Clients.Numero_Commande
);
Résultat:
Nom-Cient
Jack
Jancy
robert
Brian
Avril

Exemple : 2

L’instruction SQL suivante renvoie TRUE et répertorie les clients qui ont passé une commande à la date ‘2020-09-19’.

SELECT Nom_Client
  FROM Clients
  WHERE EXISTS (SELECT Numero_Commande
                  FROM Clients
                  WHERE Clients.Numero_Commande = Client.Numero_Commande
                    AND Date_Commande='2020-09-19');
Résultat:
Nom-Client
Brian
Avril

Instruction SQL CASE 

L’instruction CASE passe par des conditions et renvoie une valeur lorsque la première condition est remplie (comme une instruction COBOL Evaluate). Ainsi, si une condition est vraie, elle arrêtera de lire et renverra le résultat. Si aucune condition n’est vraie, elle renvoie la valeur dans la clause ELSE.

Si la partie ELSE n’est pas ajoutée dans l’instruction CASE et qu’aucune condition n’est vraie, elle renvoie la valeur NULL.

syntaxe:

CASE
    WHEN condition1 THEN resultat1 
    WHEN condition2 THEN resultat2
    WHEN conditionN THEN résultatN 
    ELSE resultat
END;

Base de données DB2 :

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

ID-EmployéNom-EmployéServiceÂgePaysVille
7001robertADM25IndeChennai
7002JancyHUM35AmériqueNew York
7003BrianOPE40Chine
7004PhilDES50AmériqueBoston
7005CarmenADM47Russie
7006HélèneOPE39AngleterreLondres

Exemple 1:

Supposons que dans la table “Employé”, le premier caractère d’un numéro de service représente la division de l’organisation. Utilisez une expression CASE pour répertorier le nom complet de la division à laquelle appartient chaque employé.

SELECT ID_Employe, Nom_Employe,
       CASE SUBSTR(Service,1,1)
          WHEN 'A' THEN 'Administration'
          WHEN 'H' THEN 'Resources Humaines'
          WHEN 'D' THEN 'Design'
          WHEN 'O' THEN 'Operations'
       END AS "Departement"
   FROM Employe;
Résultat:
ID-EmployéNom-EmployéDépartement
7001robertAdministration
7002JancyRessources humaines
7003BrianOpérations
7004PhilConcevoir
7005CarmenAdministration
7006HélèneOpérations

Exemple 2 :

L’instruction SQL suivante ordonnera l’employé par Ville. Cependant, si Ville est NULL, alors trier parPays :

SELECT ID_Employe, Nom_Employe, Ville, Pays
    FROM Employe
    ORDER BY
    (CASE
        WHEN Ville IS NULL THEN Pays
        ELSE Ville
    END);
Résultat:
ID-EmployéNom-EmployéVillePays
7004PhilBostonAmérique
7001robertChennaiInde
7006HélèneLondresAngleterre
7002JancyNew YorkAmérique
7003BrianChine
7005CarmenRussie

Commentaires SQL

A quoi servent les commentaires ?

Les commentaires sont utilisés pour expliquer des sections d’instructions SQL ou pour empêcher l’exécution d’instructions SQL.

Comment ajouter des commentaires dans le code SQL ?

Il existe deux manières de commenter une ligne.

  1. Commentaires sur une seule ligne
  2. Commentaires multi-lignes

Voyons chaque type ci-dessous :

Commentaires sur une seule ligne :

Les commentaires sur une seule ligne commencent par “–” .

Tout texte entre “–” et la fin de la ligne sera ignoré (ne sera pas exécuté).

Exemple 1:

--Sélectionner toutes les colonnes:
SELECT * FROM Employe;

Exemple 2 :

Vous pouvez également utiliser un commentaire sur une seule ligne comme ci-dessous.

SELECT * FROM Employe;   --Sélectionner toutes les colonnes:

Commentaires multi-lignes :

Les commentaires multi-lignes commencent par /* et se terminent par */. Tout texte entre /* et */ sera ignoré.

Exemple 2 :

/*Sélectionner toutes les colonnes
de la table Employe:*/
SELECT * FROM Employe;

Vous pouvez également utiliser un commentaire multi-lignes comme ci-dessous.

SELECT Nom_Employe, /*Age,*/ Ville FROM Employe;

Présentation de SQL

SQL est un langage standard pour accéder et manipuler des bases de données. SQL est utilisé pour obtenir et manipuler des données stockées dans des tables Db2. SQL se compose de plus de 100 instructions différentes qui peuvent être utilisées pour insérer, interroger, mettre à jour, supprimer et autoriser l’accès aux données Db2.

L’une des instructions SQL les plus couramment utilisées est SELECT. Cette instruction est utilisée pour interroger une table et produire des résultats sous forme de tableau.

Il existe un certain nombre de fonctions intégrées et définies par l’utilisateur disponibles dans SQL.


Que peut faire SQL ?

  1. Exécuter des requêtes sur une base de données
  2. Récupérer des données d’une base de données
  3. Insérer des enregistrements dans une base de données
  4. Mettre à jour des enregistrements dans une base de données
  5. Supprimer des enregistrements d’une base de données
  6. Créer de nouvelles bases de données
  7. Créer de nouvelles tables dans une base de données
  8. Créer des procédures stockées dans une base de données
  9. Créer des vues dans une base de données
  10. Définir des autorisations sur les tables, les procédures et les vues

Instructions SQL :

La plupart des actions que vous devez effectuer sur une base de données sont effectuées avec des instructions SQL.

L’instruction SQL suivante sélectionne tous les enregistrements de la table “ETUDIANTS” :

SELECT *
FROM ETUDIANTS;

Le symbole ‘*‘ indique que toutes les colonnes doivent être sélectionnées dans la table ETUDIANTS.

Remarque : les mots-clés SQL ne sont PAS sensibles à la casse : select est identique à SELECT.

Avons-nous besoin d’un point-virgule (;) à la fin de l’instruction SQL ?

Le point-virgule est le moyen standard de séparer chaque instruction SQL dans les systèmes de base de données qui permettent d’exécuter plusieurs instructions SQL dans le même appel au serveur.


Commandes SQL importantes répertoriées ci-dessous :

  1. SELECT – Extrait les données d’une base de données
  2. UPDATE – Met à jour les données d’une base de données
  3. DELETE – Supprime les données d’une base de données
  4. INSERT INTO – Insère de nouvelles données dans une base de données
  5. CREATE DATABASE – Crée une nouvelle base de données
  6. ALTER DATABASE – Modifie une base de données
  7. CREATE TABLE – Crée une nouvelle table
  8. ALTER TABLE – Modifie une table
  9. DROP TABLE – Supprime une table
  10. CREATE INDEX – Crée un index (clé de recherche)
  11. DROP INDEX – Supprime un index

Types de langage de requête structuré (SQL)

SQL (Structured Query Language) est un langage conçu spécifiquement pour communiquer avec les bases de données et est un outil puissant pour manipuler les données. C’est le langage de requête standard pour les systèmes de gestion de bases de données relationnelles (RDBMS).

Il s’agit d’un langage indépendant de la base de données qui vous permet d’interroger des données et d’effectuer des opérations CRUD (Create, Update, and Delete = créer, mettre à jour et supprimer). SQL est facile à apprendre. Les déclarations sont toutes composées de mots anglais descriptifs.

SQL se compose de trois sous-langages comme suit :

  1. DDL : langage de définition de données
  2. DML : langage de manipulation de données
  3. DCL : langage de contrôle des données
SQL : Schéma sur les types de langages
Schéma sur les types de langages

DDL (Data Definition Language) 

Il crée et maintient des structures de données physiques à l’aide des instructions suivantes :

  • Create : Création des objets.
  • Alter : Modification des caractéristiques des objets existants.
  • Drop : suppression des objets.

DML (Data Manipulation Language)

Il effectue les opérations suivantes :

  • Insert : Insérer
  • Update : Mise à jour
  • Delete : Effacer
  • Retrieval : Récupération (Simple, plusieurs colonnes, toutes les colonnes)
  • Sorting the retrieved data : Trier les données récupérées
  • Filtering the data : Filtrer les données
  • Concatenation : Enchaînement
  • Using alias : Utilisation d’alias
  • Removing duplicates : Suppression des doublons
  • Functions : Les fonctions
  • Grouping : Regroupement
  • Subquery : Sous-requête
  • Join : Jointure
  • Union : Union

DCL (Data Control Language) 

Il effectue les opérations suivantes :

  • Grant : Accorder
  • Revoke : Révoquer

La sécurité de la base de données est gérée via les instructions SQL GRANT et REVOKE.

Instruction SQL ALTER TABLESPACE

La syntaxe de modification de l’espace table (ALTER TABLESPACE) est la suivante :

ALTER   TABLESPACE [database-name.]tablespace-name 
        using-block 
        free-block 
        LOGGED | NOT LOGGED 
        TRACKMOD YES/NO 
        BUFFERPOOL bp-name 
        CCSID ASCII/EBCDIC/UNICODE 
        CLOSE YES/NO 
        COMPRESS YES/NO 
        LOCKMAX integer 
        LOCKSIZE ANY/TABLESPACE/TABLE/PAGE/ROW 
        MAXROWS integer 
        MAXPARTITIONS integer
using-block:




USING
VCAT catalog-name
STOGROUP stogroup-name
PRIQTY integer
SECQTY integer
ERASE YES/NO
free-block:
FREEPAGE integer
PCTFREE integer

Example 1:

Modifiez l’espace table DSN8S91D dans la base de données DSN8D91A. BP2 est le pool de mémoire tampon associé à l’espace table. PAGE est le niveau auquel le verrouillage doit avoir lieu.

ALTER

TABLESPACE DSN8D91A.DSN8S91D
BUFFERPOOL BP2
LOCKSIZE PAGE;
.

Instruction SQL ALTER DATABASE

L’instruction SQL ALTER DATABASE est utilisée pour modifier la description d’une base de données.

La syntaxe de modification de la base de données est la suivante :

ALTER



DATABASE nom-database
BUFFERPOOL nom-bp

INDEXBP nom-bp
STOGROUP nom-stockgroup
CCSID ASCII/EBCDIC/UNICODE

Exemple 1:

Remplacez le pool de mémoire tampon par défaut des espaces table et des index de la base de données ABCDE par BP2.

ALTER

DATABASE ABCDE
BUFFERPOOL BP2
INDEXBP BP2;

Instruction SQL ALTER VIEW

L’instruction ALTER VIEW régénère une vue existante en modifiant une colonne de type référence pour ajouter une portée. L’instruction ALTER VIEW active ou désactive également une vue à utiliser dans l’optimisation des requêtes.

Voici la syntaxe de modification de la vue :

ALTER VIEW nom_vue 
    ALTER colonne nom-colonne ADD SCOPE nom-table
          [ENABLE/DISABLE QUERY OPTIMIZATION] 

Vous utilisez la commande ALTER VIEW pour régénérer une vue non valide après avoir modifié l’une des tables de base afin de vous assurer que la vue reste valide.

Instruction SQL DROP

L’instruction DROP supprime un objet du serveur actuel.

L’instruction DROP DATABASE est utilisée pour supprimer un groupe de stockage existant, une base de données, un tablespace, une table, un index, une vue, un alias, un synonyme.

Database :

Chaque fois qu’une base de données est supprimée, tous ses tablespaces, tables, espaces d’index et index sont également supprimés.

Tablespace :

Chaque fois qu’un tablespace est supprimé, toutes les tables du tablespace sont également supprimées.

Table:

Chaque fois qu’une table est supprimée, toutes les contraintes référentielles dans lesquelles la table est parente ou dépendante, ainsi que tous les synonymes, vues et index définis sur la table sont également supprimés. Si l’espace table de la table a été implicitement créé, il est également supprimé. L’alias n’est pas supprimé.

DROP STOGROUP nom-stogroup
     DATABASE nom-database
     TABLESPACE nom-table-space
     TABLE nom-table
     INDEX nom-index
     VIEW nom-view
     ALIAS nom-alias
     SYNONYM nom-synonym

Exemple 1:

L’instruction DROP DATABASE est utilisée pour supprimer une base de données SQL existante.

Soyez prudent lorsque vous supprimez une base de données. La suppression d’une base de données entraînera la perte de toutes les informations stockées dans la base de données.

L’instruction SQL suivante supprime la base de données existante “IBM_DB” :

DROP DATABASE IBM_DB;

Une fois qu’une base de données est supprimée, vous pouvez la vérifier dans la liste des bases de données avec la commande SQL suivante : SHOW DATABASES.

Exemple 2 :

Voyons comment déposer une table dans une base de données.

L’instruction SQL DROP TABLE suivante pour supprimer la table Table_Etudiants :

DROP TABLE Table_Etudiants 

La plupart du temps, les développeurs n’ont pas accès pour exécuter les instructions SQL DROP. Seul l’administrateur a le privilège d’utiliser l’instruction SQL DROP.

Instruction SQL SELECT DISTINCT

SQL utilise DISTINCT pour supprimer les lignes en double du jeu de résultats.

Syntaxe:

SELECT DISTINCT colonne1, colonne2, ... 
  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égoriePrixStockValeu-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005Rouevélos1 200
7006STYLO7.451074,50
7007ClavierAccessoires40.00331 118,00
7008RAMComposants23.5016376,00

Exemple:

Pour obtenir le Nom-Produit unique, vous devez utiliser la requête suivante :

SELECT DISTINCT Nom-Produit FROM Produit ;

L’instruction SQL ci-dessus répertorie le nombre de Nom-Produit différents (distincts) dans la table “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

Remarque : Si vous avez plusieurs noms de colonne répertoriés après le mot clé DISTINCT, le mot clé DISTINCT est appliqué à toutes les colonnes. Cela signifie que la requête utilisera la combinaison de valeurs dans toutes les colonnes pour évaluer la distinction.