Extraire des données à l'aide de
l'instruction SQL SELECT
Objectifs
A la fin de ce TP, vous pourrez :
• décrire les fonctionnalités des instructions SQL SELECT
• exécuter une instruction SELECT de base
Fonctionnalités des instructions SQL SELECT
Projection Sélection
Table 1 Table 1
Jointure
Table 1 Table 2
Instruction SELECT de base
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
• L'instruction SELECT identifie les colonnes à afficher.
• La clause FROM identifie la table contenant ces
colonnes.
Sélectionner toutes les colonnes
SELECT *
FROM departments;
Sélectionner des colonnes spécifiques
SELECT department_id, location_id
FROM departments;
Ecrire des instructions SQL
• Les instructions SQL ne distinguent pas les majuscules des
minuscules.
• Les instructions SQL peuvent être écrites sur une ou
plusieurs lignes.
• Les mots-clés ne peuvent pas être abrégés ou répartis sur
plusieurs lignes.
• Les clauses sont généralement placées sur des lignes
distinctes.
• Des indentations sont utilisées pour améliorer la lisibilité.
• Dans SQL*Plus, vous devez terminer chaque instruction
SQL par un point-virgule (;).
Caractéristiques par défaut des en-têtes
de colonne
• SQL*Plus :
– En-têtes des colonnes de type caractère et date alignés
à gauche
– En-têtes des colonnes de type nombre alignés à droite
– Affichage par défaut des en-têtes : majuscules
Expressions arithmétiques
Créez les expressions avec des données de type
nombre et date à l'aide d'opérateurs arithmétiques.
Opérateur Description
+ Ajouter
- Soustraire
* Multiplier
/ Diviser
Utiliser des opérateurs arithmétiques
SELECT last_name, salary, salary + 300
FROM employees;
…
Priorité des opérateurs
SELECT last_name, salary, 12*salary+100
FROM employees; 1
…
SELECT last_name, salary, 12*(salary+100)
FROM employees;
2
…
Définir une valeur NULL
• Une valeur NULL est une valeur qui n'est pas
disponible, pas affectée, inconnue ou inapplicable.
• Une valeur NULL est différente d'un zéro ou d'un
espace.
SELECT last_name, job_id, salary, commission_pct
FROM employees;
…
Valeurs NULL dans les
expressions arithmétiques
Les expressions arithmétiques contenant une valeur
NULL renvoient une valeur NULL.
SELECT last_name, 12*salary*commission_pct
FROM employees;
…
Définir un alias de colonne
Un alias de colonne :
• Renomme un en-tête de colonne
• Est utile avec les calculs
• Suit immédiatement le nom d'une colonne (le mot-clé
facultatif AS peut également être utilisé entre le nom de
la colonne et l'alias)
• Nécessite des guillemets s'il contient des espaces ou
des caractères spéciaux, ou s'il distingue les
majuscules des minuscules
Utiliser des alias de colonne
SELECT last_name AS name, commission_pct comm
FROM employees;
SELECT last_name "Name" , salary*12 "Annual Salary"
FROM employees;
…
Opérateur de concaténation
Un opérateur de concaténation :
• Lie des colonnes ou des chaînes de caractères à
d'autres colonnes
• Est représenté par deux barres verticales (||)
• Crée une colonne résultante qui est une
expression de type caractère
SELECT last_name||job_id AS "Employees"
FROM employees;
…
Chaînes de caractères littérales
• Un littéral est un caractère, un nombre ou une date
inclus dans l'instruction SELECT.
• Les valeurs littérales de type date et caractère
doivent être incluses entre apostrophes.
• Chaque chaîne de caractères est sortie une fois
pour chaque ligne renvoyée.
Utiliser des chaînes de caractères littérales
SELECT last_name ||' is a '||job_id
AS "Employee Details"
FROM employees;
…
Opérateur de délimitation (q) alternatif
• Indiquer votre propre délimiteur de chaînes de
caractères
• Choisir n'importe quel délimiteur
• Améliorer la lisibilité et la simplicité d'utilisation
SELECT department_name ||
q'[, it's assigned Manager Id: ]'
|| manager_id
AS "Department and Manager"
FROM departments;
…
Lignes en double
Par défaut, les interrogations renvoient toutes les
lignes, y compris les lignes en double.
SELECT department_id
FROM employees; 1
…
SELECT DISTINCT department_id
FROM employees; 2
…
Synthèse
Ce TP vous a permis d'apprendre à :
• écrire une instruction SELECT qui :
– renvoie toutes les lignes et colonnes d'une table
– renvoie des colonnes particulières d'une table
– utilise des alias de colonne pour afficher des en-
têtes plus évocateurs
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;