Vous appréciez mon travail ?
Je serais ravi de prendre un café !

Vous prenez du plaisir à lire mes articles ? Vous apprenez de nouvelles choses ? Je serais ravis que vous supportiez mon travail avec une petite participation

1 café Merci, vous financez ma dose quotidienne de théïne (oui, en vrai je ne bois pas de café).
5 cafés Génial, ça couvre mes frais de serveur mensuels.
10 cafés Fantastique, avec ça je peux investir dans du matériel et approfondir mes connaissances.
BazinGa's - Tips & tuto IT

PostgreSQL – Vade-mecum SQL – 1/8 – Introduction : La quête de la requête parfaite

Principe de requêtage

Dans le SQL…

Tout est requête.

La Nouvelle Revue Française, Tome XIII, NRF – Paris – 1919, p390 ligne 13

Que vous souhaitiez importer, modifier ou encore afficher vos données, vous allez utiliser des requêtes.

Le principe des requêtes SQL est simple :

  • On pose une question : la requête.
  • Le serveur nous répond : la réponse.

Ainsi, nous allons apprendre comment poser des questions au serveur pour qu’il travaille pour nous.

Par exemple, pour l’ajout de donnée, comme nous sommes très polis, nous demandons au serveur si dans son extrême amabilité il accepterait d’insérer nos données (avec bienveillance). Il s’exécutera alors puis nous répondra bien cordialement « ok, c’est fait, j’ai inséré X lignes » (oui bien que nous soyons très polis, le serveur utilise son propre argot que nous décoderons).

Aussi performant qu’ils soient, les serveurs ne laissent aucune place à la diplomatie. Ainsi, vous devrez donc respecter leurs codes et leur langage à la lettre si vous souhaitez travailler avec eux. Heureusement, ils ne sont aucunement rancuniers et vous indiquerons immédiatement l’erreur commise si vous leur manquez de politesse et pourrez dans la foulée leur reposer votre question.

Sans plus attendre lançons vos premières requêtes. Pour cela, rendez vous dans votre client SQL préféré (DBeaver ?). Pour rappel, dans DBeaver clic droit sur une connexion puis sélectionnez « Editeur SQL » et dans pgAdmin cliquez sur la « loupe SQL » dans le menu du haut, une fenêtre s’ouvre.

Voici une requête toute simple que vous pouvez tester :

-- Exemple de requête simple
SELECT 'hello world';

Et voila !! Vous venez de lancer votre première requête : demander au serveur d’afficher « hello world » et le serveur a du vous répondre « hello world », facile non ?

Transactions

Les requêtes que vous aller envoyer au serveur peuvent modifier profondément les données stockées et leur structure. Pour s’assurer du bon déroulement de vos requêtes, PostgreSQL (comme toutes les bases de données) utilise le principe des transactions.

Une transaction est une unité de travail dans laquelle des instructions sont exécutées. Si l’une d’entre elles échoue alors toutes les instructions depuis le début de la transaction sont annulées.

Imaginez un virement bancaire. Vous débitez 100 € d’un compte et vous créditez 100 € sur un autre. Si le système plante entre les deux opérations, l’argent disparaît dans le vide.

Une transaction est le mécanisme qui garantit que ces deux opérations forment un tout indivisible : soit tout réussit, soit rien n’est appliqué. C’est le principe ACID (Atomicité, Cohérence, Isolation, Durabilité).

Un article dédié aux transactions est disponible (pour aller plus vite, vous pouvez ne lire que l’introduction).

Les commandements de la requête

Avant de nous lancer dans nos premières requêtes voici quelques règles et conventions à garder à l’esprit et que vous retrouverez dans la suite.

Par défaut, PostgreSQL utilise la minuscule pour les noms d’objet, vous devrez donc entourer vos objets par des guillemets s’ils utilisent des majuscules (de même s’ils utilisent des caractères accentués).

Pour le nom de vos objets (schéma, table, colonne), la norme SQL impose l’utilisation des 26 lettres de l’alphabet, des dix chiffres et du caractère underscore (_). PostgreSQL est plus laxiste et autorise l’utilisation d’accent, d’espace et autre caractères étrange. Je vous recommande de n’utiliser que les caractères de la norme SQL. En effet, vous risquez certaines incompatibilités avec d’autres clients, extensions ou modules.

Une requête se termine toujours par un point-virgule ;. Ça permet de dire à PostgreSQL que l’instruction est finie.

Privilégiez l’utilisation de lettre majuscule pour les mots-clés lors de la rédaction de vos requêtes, ça vous en simplifiera la lecture.

Usez et abusez de l’indentation pour vous simplifier la lecture des requêtes.

Un commentaire débute par un double tiret --.

Les valeurs textuelles sont entre simples guillemets ('), les valeurs numériques n’en ont pas besoin.

Limitez l’utilisation d’abréviation. Les noms d’objet peuvent être long alors profitez-en.

Chaque objet peut être commenté, n’hésitez pas à les détailler. Cela vous aidera beaucoup lorsque vous n’aurez pas mis le nez dans votre base depuis longtemps.

Le sélecteur étoile * permet de sélectionner toutes les colonnes.

Utilisez des index sur les colonnes les plus utilisées, cela accélèrera de façon impressionnante le traitement de gros jeux de données (de x2 à x100).

NULL n’est pas une valeur, c’est justement l’absence de valeur. Ainsi, il n’est pas possible de recherche ma_valeur = NULL car justement, il n’y a pas d’élément à comparer.

Introduction au Vade-mecum

Maintenant que nous avons vu les bases du requêtage, nous pouvons nous concentrer sur le langage SQL pour que vous puissiez réaliser vos premières requêtes.

Il s’agit ici d’un vade-mecum des requêtes que j’utilise le plus. N’hésitez donc par à approfondir celles-ci en vous rendant sur les nombreux sites d’information dont voici ceux qui me semble le plus intéressant :

Dans la suite de ce vade-mecum, chaque page est organisée en deux grandes parties :

  • Les requêtes : recueil des requêtes qui me semble intéressantes
  • Les concepts clés : quelques détails sur certains éléments des différentes requêtes.

Si vous êtes prêts, allons-y !

Sommaire général

Voici le sommaire général du cours :


Cet article vous a plu ?

N'hésitez pas à le partager, il interessera surement certains de vos contacts.

Les thèmes suivants contiennent des articles en lien avec celui-ci, allez faire un tour :

BDDPostgreSQLProgrammationSQL tuto

50%