Introduction au langage SQL
SQL est un langage pour exploiter des bases de données; elle inclut la création, la suppression, l'extraction de lignes, la modification de lignes, etc. de bases de données. SQL est un langage standard ANSI (American National Standards Institute), mais il existe de nombreuses versions différentes du langage SQL.
Qu'est ce que le SQL?
SQL est un langage de requête structuré, qui est un langage informatique permettant de stocker, manipuler et récupérer des données stockées dans une base de données relationnelle.
SQL est la langue standard pour les systèmes de base de données relationnelle. Tous les systèmes de gestion de base de données relationnelle (SGBDR) tels que MySQL, MS Access, Oracle, Sybase, Informix, Postgres et SQL Server utilisent SQL comme langage de base de données standard.
Pourquoi SQL ?
SQL est très populaire car il offre les avantages suivants:
- Permet aux utilisateurs d'accéder aux données des systèmes de gestion de base de données relationnelle.
- Permet aux utilisateurs de décrire les données.
- Permet aux utilisateurs de définir les données dans une base de données et de les manipuler.
- Permet d'intégrer dans d'autres langages en utilisant des modules SQL, des bibliothèques et des pré-compilateurs.
- Permet aux utilisateurs de créer et de supprimer des bases de données et des tables.
- Permet aux utilisateurs de créer une vue, une procédure stockée et des fonctions dans une base de données.
- Permet aux utilisateurs de définir des autorisations sur les tables, les procédures et les vues.
Processus SQL
Le traitement des requêtes inclut des traductions sur des requêtes de haut niveau en expressions de bas niveau pouvant être utilisées au niveau physique du système de fichiers, une optimisation de la requête et une exécution réelle de la requête pour obtenir le résultat réel.
Le schéma fonctionnel du traitement des requêtes est le suivant:
Cela se fait dans les étapes suivantes:
Etape 1
Analyseur - lors de l'appel d'analyse, la base de données effectue les contrôles suivants: contrôle de syntaxe, contrôle sémantique et contrôle de pool partagé, après conversion de la requête en algèbre relationnelle.
Analyse dure et analyse douce - S'il y a une nouvelle requête et que son code de hachage n'existe pas dans le pool partagé, cette requête doit passer par les étapes supplémentaires connues sous le nom d'analyse dure. Sinon, si le code de hachage existe, la requête ne passe pas par des étapes supplémentaires. . Il passe directement au moteur d’exécution (voir schéma). Ceci est appelé analyse douce.
L'analyse dure comprend les étapes suivantes - optimiseur et génération de sources de lignes.
Etape 2
Optimiseur - au cours de la phase d'optimisation, la base de données doit effectuer une analyse syntaxique stricte au moins pour une instruction LMD unique et effectuer une optimisation au cours de cette analyse. Cette base de données n'optimise jamais la LDD à moins d'inclure un composant LMD, tel qu'une sous-requête, qui nécessite une optimisation.
Il s'agit d'un processus dans lequel plusieurs plans d'exécution de requêtes pour satisfaire une requête sont examinés et le plan de requêtes le plus efficace est satisfait pour son exécution. Le catalogue de base de données stocke les plans d'exécution, puis l'optimiseur transmet le plan d'exécution le moins coûteux.
Génération de source en ligne - Est un logiciel qui reçoit un plan d’exécution optimal de l’optimiseur et génère un plan d’exécution itératif utilisable par le reste de la base de données. le plan itératif est le programme binaire qui, lorsqu'il est exécuté par le moteur SQL, produit le résultat.
Etape 3
Moteur d'exécution - Exécute enfin la requête et affiche le résultat souhaité.
Commandes SQL
Les commandes SQL standard pour interagir avec les bases de données relationnelles sont CREATE, SELECT, INSERT, UPDATE, DELETE et DROP. Ces commandes peuvent être classées dans les groupes suivants en fonction de leur nature
LDD - Langage de définition de données
Commande | Description |
---|---|
CREATE | Crée une nouvelle table, une vue d’une table ou un autre objet de la base de données. |
ALTER | Modifie un objet de base de données existant, tel qu'une table. |
DROP | Supprime une table entière, une vue d'une table ou d'autres objets de la base de données. |
LMD - Langage de manipulation de données
Commande | Description |
---|---|
SELECT | Récupère certains enregistrements d'une ou de plusieurs tables. |
INSERT | Crée un enregistrement. |
UPDATE | Modifie les enregistrements. |
DELETE | Supprime les enregistrements. |
LCD - Langage de contrôle de données
Commande | Description |
---|---|
GRANT | Donne un privilège à l'utilisateur. |
REVOKE | Reprend les privilèges accordés par l'utilisateur. |
Nous reviendrons sur toutes ces commandes en détail dans les prochains cours