Skip to main content

1_Theorie

Introduction à SQL

SQL (Structured Query Language) est un langage normalisé permettant d’exploiter et de manipuler des bases de données relationnelles.
Il fonctionne généralement via le port 3306/TCP (notamment pour MySQL/MariaDB).

SQL permet :

  • de rechercher des données
  • d’ajouter de nouvelles entrées
  • de modifier des enregistrements
  • de supprimer des données

Il constitue le langage principal pour interagir avec un SGBD (Système de Gestion de Base de Données).

Les trois modes d’utilisation de SQL

SQL peut être utilisé de plusieurs manières :

  • Via un programme : un logiciel ou un script utilise une API (ODBC, JDBC…) pour envoyer des requêtes SQL au SGBD.
  • Embedded SQL : des instructions SQL sont intégrées directement dans le code source d’un programme.
  • Procédures stockées : des fonctions SQL (PL/SQL, SQL/PSM…) sont enregistrées dans la base et exécutées côté serveur.
    • Cette technique est également utilisée pour les triggers (déclencheurs automatiques).

Les opérations CRUD

CRUD représente les quatre opérations fondamentales de manipulation des données :

  • Create → INSERT
  • Read → SELECT
  • Update → UPDATE
  • Delete → DELETE

Ces opérations constituent la base de toute interaction avec une base relationnelle.

Structure d’une base de données

Une base de données relationnelle contient plusieurs niveaux d’organisation :

  • Catalogue
    Niveau le plus haut. Contient un ou plusieurs schémas accessibles par un utilisateur ou une application.

  • Schéma
    Ensemble d’objets : tables, vues, index, procédures…
    Un schéma appartient à un utilisateur et porte son nom.

  • Table
    Structure principale contenant les données sous forme de lignes (enregistrements) et colonnes (champs).
    Chaque table traite un sujet particulier (clients, commandes…).

Illustrations :
BDD.png
BDD_2.png

Types de permissions SQL

  • CREATE : créer des bases ou des tables
  • SELECT : lire des données
  • INSERT : ajouter des enregistrements
  • UPDATE : modifier des données
  • DELETE : supprimer des enregistrements
  • DROP : supprimer des tables ou bases entières

Champs et types de données

Les champs (colonnes) définissent la structure d’une table.
Chaque champ possède un type de données :

  • CHAR : chaîne de longueur fixe
  • VARCHAR : chaîne de longueur variable
  • TEXT : texte long
  • NUMERIC / DECIMAL : nombre décimal
  • INTEGER / INT : entier
  • REAL : nombre flottant
  • BOOLEAN : vrai/faux
  • DATE : date

Quand utiliser backticks, guillemets ou rien ?

  • Backticks → noms de tables ou colonnes

    SELECT * FROM `users`;
    
  • Guillemets → valeurs de type texte (VARCHAR, TEXT)

    WHERE name = "Alice"
    
  • Sans guillemets → valeurs numériques ou booléennes

    WHERE age = 30
    WHERE active = true
    

Exemple de création d’une base et d’un utilisateur

CREATE DATABASE namedb;
GRANT ALL PRIVILEGES ON namedb.* TO name_adm@localhost IDENTIFIED BY "MotDePasseRobuste";
FLUSH PRIVILEGES;
EXIT