Interroger simplement une base



Sélection de colonnes ou projection

La commande SELECT la plus simple a la syntaxe suivante :

SELECT *
FROM  nom_table ;

Dans laquelle :

Par défaut toutes les lignes sont sélectionnées. On peut limiter la sélection à certaines colonnes, en indiquant une liste de noms de colonnes à la place de l'astérisque.

SELECT nom_col1, nom_col2, ...
FROM  nom_table ;

Exemple : Donner le nom et la fonction de chaque employé.

La clause DISTINCT ajoutée derrière la commande SELECT permet d'éliminer les duplications.

Exemple : Quelles sont toutes les fonctions différentes.

Sélection de lignes ou restriction

La clause WHERE permet de spécifier quelles sont les lignes à sélectionner. Elle est suivie d'un prédicat qui sera évalué pour chaque ligne de la table. Les lignes pour lesquelles le prédicat est vrai seront sélectionnées.

La syntaxe est la suivante :

SELECT *
FROM  nom_table
WHERE predicat ;

Un prédicat n'est ni plus ni moins que la façon dont on exprime une propriété. Les prédicats, qu'ils soient simples ou composés, sont constitués à partir d'expressions que l'on compare entre elles.

Expression simple

Une expression simple peut être :

Les expressions peuvent être de trois types : numérique, chaîne de caractères ou date. A chacun de ces types correspond un format de constante :

Constante numérique

nombre contenant éventuellement un signe, un point décimal et une puissance de dix. Ex : -10, 2.5, 1.2 E-10

Constante chaîne de caractères

une chaîne de caractères entre apostrophes. Ex :'MARTIN' (Attention, une lettre en majuscules n'est pas considérée comme égale à la même lettre en minuscule).

Constante date

une chaîne de caractères entre apostrophes au format suivant : jour-mois-année où le jour est sur deux chiffres, le mois est désigné par les trois premières lettres de son nom en anglais, l'année est sur deux chiffres. Ex : '01-FEB-85'

On peut, en SQL, exprimer des expressions plus complexes en utilisant des opérateurs et des fonctions étudiés dans le chapitre Expressions et fonctions.

Prédicat simple

Un prédicat simple est le résultat de la comparaison de deux expressions au moyen d'un opérateur de comparaison qui peut être :

=   égal
!= différent
<   inférieur
<= inférieur ou égal
>   supérieur
>= supérieur ou égal

Les trois types d'expressions peuvent être comparés au moyen de ces opérateurs :

Il faut ajouter à ces opérateurs arithmétiques classiques les opérateurs suivants :

expr1 BERTWEEN expr2 AND expr3

vrai si expr1 est compris entre expr2 et expr3, bornes incluses

expr1 IN (expr2, expr3, ...)

vrai si expr1 est égale à l'une des expressions de la liste entre parenthèses

expr LIKE chaine

chaine est une chaîne de caractères pouvant contenir l'un des caractères jokers :

_   remplace exactement 1 caractère
% remplace une chaîne de caractères de longueur quelconque, y compris de longueur nulle.

Exemple : Quels sont les employés dont la commission est supérieure au salaire?

Exemple : Quels sont les employés gagnant entre 20000 et 25000?

Exemple : Quels sont les employés commerciaux ou ingénieurs?

Exemple : Quels sont les employés dont le nom commence par M?

Prédicats composés

Les opérateurs logiques AND (et) et OR (ou inclusif) peuvent être utilisés pour combiner entre eux plusieurs prédicats. L'opérateur NOT placé devant un prédicat en inverse le sens.

L'opérateur AND est prioritaire par rapport à l'opérateur OR. Des parenthèses peuvent être utilisées pour imposer une priorité dans l'évaluation du prédicat, ou simplement pour rendre plus claire l'expression logique.

Exemple : Quels sont les employés du département 30 ayant un salaire supérieur à 25000?

Exemple : Quels sont les employés directeurs, ou commerciaux et travaillant dans le département 10?

La requête précédente donnerait le même résultat sans les parenthèses, résultat différent de celui du SELECT suivant.

Exemple : Quels sont les employés directeurs ou commerciaux, et travaillant dans le département 10?

Valeurs NULL

Pour sql, une valeur NULL est une valeur non définie. Il est possible d'ajouter une ligne à une table sans spécifier de valeur pour les colonnes non obligatoires : ces colonnes absentes auront la valeur NULL. Par exemple les employés dont la rémunération ne prend pas en compte de commission auront une valeur NULL, c'est-à-dire indéfinie, comme commission. L'opérateur IS NULL permet de tester la valeur NULL : le prédicat expr IS NULL est vrai si l'expression a la valeur NULL (c'est-à-dire si elle est indéfinie).

Exemple : Quels sont les employés dont la commission a la valeur NULL?

L'opérateur IS NOT NULL permet de construire un prédicat vrai si la valeur n'est pas NULL (et donc le prédicat expr IS NOT NULL est vrai si expr est définie)

Remarques

Nom de colonne

Les colonnes constituant le résultat d'un SELECT peuvent être renommées dans le SELECT, ceci est utile en particulier lorsque la colonne résultat est une expression. Pour cela, il suffit de faire suivre l'expression définissant la colonne d'un nom, selon les règles suivantes :

Ce nom est celui sous lequel la colonne sera connue des interfaces externes. Sous SQLPLUS, par exemple, il constituera le titre par défaut de la colonne, et servira de référence pour définir un format pour la colonne.

Exemple : Salaire de chaque employé.

Remarque : Attention, ce nom n'est pas connu à l'intérieur du SELECT.