© Your Copyright
SQL est un langage permettant de communiquer avec une base de données.
C’est un langage déclaratif qui consiste à décrire les propriétés de ce que l’on souhaite obtenir comme résultat.
Le langage SQL (Structured Query Language) est un langage de requêtes qui :
- peut être compris et écrit par des humains non-informaticiens
- permet de rechercher, ajouter, supprimer, mettre à jour des informations
- offre la possibilité de partager des données entre applications
Le langage SQL (Structured Query Language) est un langage structuré pour:
- décrire l’organisation des données
- écrire des requêtes pour manipuler de l’information
Le langage SQL permettra dans un SGBD relationnel de :
- sauvegarder des données de manière persistente dans des fichiers
- gérer des droits d’accès sur les données par des utilisateurs
- gérer des transactions d’utilisateurs sur les données
L’objectif général du langage SQL est de proposer un langage déclaratif pour :
- créer et manipuler des bases de données relationnelles
en précisant ce que l’on veut (QUOI) créer et rechercher comme information sans savoir (COMMENT) la stocker et aller la retrouver dans un système de fichiers.
Historiquement le langage SQL est issu des développements en parallèle :
Les industriels finissent, comme souvent, par l’emporter et le langage SQL sera normalisé ANSI en 1986.
Les universitaires, dont Michael Stonebraker qui a reçu le pris A. Turing en 2014, développent post-ingres qui devient postgres puis PostgreSQL, un SGBDR relationnel Open Source dont nous recommandons vivement l’installation.
SQL est un donc un Langage déclaratif « universel » pour manipuler des données relationnelles. On distingue 4 gandes catégories d’utilisation de ce langage :
- Data Definition Language (DDL) : créer des ensembles de données
- Data Manipulation Language (DML) : manipulation des données dans des ensembles
- Data Control Language (DCL) :contrôler les données (types, contraintes,droits d’accès …)
- Transaction Control Language (TCL) : partager l’accès aux données
SQL peut-être exploité dans des langages de programmation et réciproquement :
- PSM : Persistent Stored Module (PSM), procédures stockées, triggers sur un serveur de base de données
- CLI : Call Level Interface (CLI), appels de fonctions dans des requêtes SQL
- Embedded SQL : faire des requêtes SQL dans un langage hôte
La syntaxe des commandes du langage SQL pezut-être regroupée en sous-ensembles pour :
- Créer de l’information (Langage de Définition de Données, DDL en anglais).
CREATE TABLE
: créer des tables (ensemble de données).CREATE INDEX
: créer des index sur des colonnes (attributs) de table.CREATE VIEW
: créer une vue (correspondant à une requête) sur la base de données.ALTER TABLE
: faire évoluer le modèle de données en modifiant les tables.DROP TABLE
: détruire une table (un ensemble) dans la base de données.DROP INDEX
: enlevre un index existant sur une colonne (attribut) de table.DROP VIEW
: détruire une vue sur des tables (ensembles) de la base de données.
- Manipuler de l’information (Langage de Manipulation de Données, DML en anglais).
SELECT
: rechercher des informationsUPDATE
: mettre à jour des informationsINSERT
: insérer de l’informationDELETE
: enlever des informations
- Contrôler l’information (Langage de Contrôle des Données, DCL en anglais).
GRANT
: donner des droits à des utilisateursREVOKE
: enlever des droits à des utilisateursLOCK
: verrouiller des droits sur des informations
- Gérer des transactions (Langage de Contrôle des Données, DCL en anglais).
BEGIN
: lancer une transaction sur la base de donnéesCOMMIT
: sauvegarder les changements sur la base de donnéesROLLBACK
: annuler tous les changements depuis le lancement de la transactionSAVE POINT
: pour diviser la transaction en plusieurs pints de sauvegarde
Ces commandes ne représentent évidemment qu’une partie de l’ensemble de commandes du langage selon la norme SQL .
Chaque SGBD relationnel suit de plus ou moins près cette norme de manière à être “SQL Compliant”.