Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

Structured Query Language


Structured query language (SQL), traduisez Langage de requêtes structuré, est un langage informatique destiné à interroger ou piloter (modifier contenu et structure) une base de données.

SQL est un langage de définition de données (LDD, ou en anglais DDL Data definition language), un langage de manipulation de données (LMD, ou en anglais DML, Data manipulation language), et un langage de contrôle de données (LCD, ou en anglais DCL, Data control language), pour les bases de données relationnelles.

Sommaire

Usage

Consultation de tables existantes

Exemple de syntaxe SQL pour un ordre simple (sélection) : De base :

SELECT {champs} FROM {tables} WHERE {conditions};
SELECT (prenom, telephone) FROM (entrants, sortants) WHERE nom='Dupont';

Plus générique :

SELECT {expressions} FROM {tables} WHERE {prédicats} GROUP BY {expressions} HAVING {condition} ORDER BY {expressions};
SELECT (name, service) FROM employees WHERE (statut='stagiaire') GROUP BY (service, manager) ORDER BY lieu;

Par exemple, si on a une tables employes, contenant 2 champs nom et salaire, la requête permettant de trouver le nom des salariés touchant plus de 1500€ par mois classés par salaire est la suivante :

SELECT nom FROM employes WHERE salaire > 1500 ORDER BY salaire;

Exemples de requêtes pour afficher les enregistrements d'une table non présents dans une seconde table :

select * from crpdta.f0012 where kgmcu||kgobj||kgsub not in (select gmmcu||gmobj||gmsub from crpdta.f0901)and kgco in ('00101', '00105', '00106') and kgmcu <> ' '

select kgmcu||kgobj||kgsub from crpdta.f0012 minus select gmmcu||gmobj||gmsub from crpdta.f0901

Altérations de tables

Sous réserve de disposer des droits correspondants :

 INSERT INTO employees (name, service) values ('Martin','comptabilité');
 ALTER TABLE employees ADD COLUMN arrived DATE;

Exemple de mise à jour d'une table à partir des informations d'une autre table :

update eudvdta/F1202 set fladlm=(select zzadlm from qgpl/f1202DV where (f1202dv.zzdl03=(select fadl03 from eudvdta/f1201 where fanumb=flnumb)))

Création de tables

 CREATE DATABASE projetsimbad;
 USE projetsimbad;
 CREATE TABLE participants;

Extension du langage

La plus connue est le PL/SQL.

Candidats au remplacement

SQL possède quelques anomalies, dont l'une est de permettre l'enchassement de commandes à certains endroits et de les interdire dans d'autres, d'une façon qui peut sembler arbitraire à l'utilisateur, et l'oblige en tout cas à contorsionner sa pensée. Un langage plus récent nommé Tutorial D est affirmé plus cohérent et plus simple d'emploi par ses inventeurs. Il permet de surcroit, pour alléger le libellé des requêtes, l'emploi d'une clause with inspirée du langage Pascal.

Un autre candidat est BS12 , qui lui aussi s'est attaqué à ce problème de l'enchassement et de la perte de lisibilité qu'il entraîne.

Bases de données utilisant SQL

Anecdote

Wikipédia utilise SQL, et en particulier la commande :

SELECT user_name, user_rights from user where user_rights not like "" LIMIT 100.

Voir aussi



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia