73
TECHNOLOGIES ORACLE Ordres de base © sebvita.com

T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Embed Size (px)

Citation preview

Page 1: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

TECHNOLOGIES ORACLE

Ordres de base

© sebvita.com

Page 2: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Objectifs

En suivant ce cours, vous serez capable :• D’exécuter un ordre

SELECT de base• De limiter et trier les

lignes retournées par une requête

© sebvita.com

Page 3: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Ordre SELECT

© sebvita.com

Page 4: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

© sebvita.com

L’ordre SELECT ?

Syntaxe :

• SELECT liste les colonnes qui sont affichées• FROM indique la table d’où sont issues les

colonnes

© sebvita.com

SELECT *|{[DISTINCT] column|expression [alias],...}FROM table;

Page 5: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

L’ordre SELECT ?

Sélectionner toutes les colonnes d’une table

© sebvita.com

SELECT *FROM departments;

Page 6: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

L’ordre SELECT ?

Sélectionner certaines colonnes d’une table

© sebvita.com

SELECT department_id, location_idFROM departments;

Page 7: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

L’ordre SELECT ?Directives• Non sensibles à la casse• Écrits sur une ou plusieurs lignes• Mots clés ne peuvent être abrégés ou

coupés sur plusieurs lignes• Clauses placées sur de nouvelles lignes• Indentation du code• Requêtes se terminent par un point-

virgule

© sebvita.com

Page 8: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Expressions arithmétiques

Operateur Description

+ Add

- Subtract

Multiply

Divide

*

/

© sebvita.com

Page 9: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Expressions arithmétiques

SELECT last_name, salary, salary + 300FROM employees;

© sebvita.com

Page 10: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Expressions arithmétiques

SELECT last_name, salary, 12*salary+100FROM employees;

SELECT last_name, salary, 12*(salary+100)FROM employees;

© sebvita.com

Page 11: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Expressions arithmétiquesDéfinir les valeurs NULL• Une valeur NULL est indisponible, non

assignée, inconnue ou inutilisable• Ce n’est pas comme un zéro ou un espace

SELECT last_name, job_id, salary, commission_pctFROM employees;

© sebvita.com

Page 12: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Expressions arithmétiquesUtiliser les valeurs NULL• Une expression arithmétique qui

contient une valeur NULL retourne NULL

SELECT last_name, 12*salary*commission_pctFROM employees;

© sebvita.com

Page 13: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Les alias de colonnes

• Changent les entêtes de colonnes• Sont utiles avec les calculs• Suivent directement le nom de la

colonne (ou le mot clé AS)• Nécessitent des doubles quotes (" ")

si contient un espace, un caractère spécial ou est sensible à la casse

© sebvita.com

Page 14: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Les alias de colonnes

SELECT last_name AS name , commission_pct commFROM employees;

SELECT last_name "Name" , salary*12 "Annual Salary"FROM employees;

© sebvita.com

Page 15: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Opérateur de concaténation• Lie les colonnes ou chaînes de

caractères à d’autres colonnes• Se présente avec deux barres (||)• Crée une colonne à l’affichage

SELECT last_name || job_id AS "Employees"FROM employees;

© sebvita.com

Page 16: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Chaînes de caractères littérales• Un littéral est un caractère, un

nombre ou une date qui est inclus dans un SELECT

• Les dates et caractères littéraux doivent être entre simples quotes (' ')

• Chaque chaîne de caractères est affichée une fois pour chaque ligne retournée

© sebvita.com

Page 17: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Chaînes de caractères littérales

SELECT last_name || ' is a ' || job_id AS "Employee Details"FROM employees;

© sebvita.com

Page 18: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Opérateur de quote alternative• Spécifie son propre délimiteur

SELECT department_name || q'[, it's assigned Manager Id: ]' || manager_id AS "Department and Manager"FROM departments;

© sebvita.com

Page 19: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Lignes dupliquées• Par défaut, toutes les lignes sont

affichées, même les doublonsSELECT department_idFROM employees;

SELECT DISTINCT department_idFROM employees;

© sebvita.com

Page 20: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Afficher la structure d’une table

DESCRIBE employees

DESC[RIBE] tablename

Exemple :

© sebvita.com

Page 21: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

© sebvita.com

VOUS AVEZ DES QUESTIONS ?

Page 22: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Ordre SELECT

© sebvita.com

Page 23: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Introduction to SQL*Plus

© sebvita.com

Page 24: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes d’éditionLe buffer

© sebvita.com

Page 25: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes d’édition• Ouvre le bloc notes pour modifier le

SQL

• Bloque l’environnement de travail• afiedt.buf ne peut contenir d’ordres

SQL*Plus• Pour ajouter du SQL*Plus, utiliser un

script SQL

ED[IT]

© sebvita.com

Page 26: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes d’éditions

Liste non exhaustive• A[PPEND] text• C[HANGE] / old / new• CL[EAR] BUFF[ER]• CL[EAR] SCR[EEN]• DEL• DEL n• DEL m n

• I[NPUT]• I[NPUT] text• L[IST]• L[IST] n• L[IST] m n• R[UN]• n• n text• 0 text

© sebvita.com

Page 27: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes d’édition

SQL> LIST 1 SELECT last_name 2* FROM employees

SQL> 1 1* SELECT last_name

SQL> A , job_id 1* SELECT last_name, job_id

SQL> L 1 SELECT last_name, job_id 2* FROM employees

© sebvita.com

Page 28: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes d’édition

SQL> L 1 SELECT * FROM employees

SQL> c/employees/departments 1* SELECT * FROM departments

SQL> L 1 SELECT * FROM departments

© sebvita.com

Page 29: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Manipulation de fichiers

Liste non exhaustive• SAV[E] filename[.ext] [RE[PLACE]]|[APP[END]]• GET filename[.ext]• STA[RT] filename[.ext]• @ filename[.ext]• ED[IT] [filename[.ext]]• SPO[OL] filename[.ext] [OFF|OUT]• EXIT

© sebvita.com

Page 30: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Personnalisation d’environnement

• Utiliser SET pour contrôler la session

• Vérifier la configuration avec SHOW

SET system_variable value

SQL> SET ECHO ONSQL> SHOW ECHO

echo ON

© sebvita.com

Page 31: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Personnalisation d’environnement

ARRAYSIZE {15 | n}FEEDBACK {6 | n | OFF | ON}HEADING {OFF | ON}LONG {80 | n | ON | text}LINESIZE {80 | n}PAGESIZE {14 | n}

SQL> SET HEADING OFFSQL> SHOW HEADING

heading OFF

© sebvita.com

Page 32: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes de formatage

COL[UMN] [column option]TTITLE [text | OFF | ON]BTITLE [text | OFF | ON]BREAK [ON report_element]

© sebvita.com

Page 33: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes de formatage• Pour contrôler l’affichage des colonnes

• CLE[AR] : Supprime le formatage d’une colonne

• HEA[DING] text : Change l’entête• FOR[MAT] format : Modifie l’affichage d’une

colonne• NOPRINT | PRINT : Afficher ou non une

colonne• NULL : Remplace les valeurs NULL

COL[UMN] [{column | alias} [option]]

© sebvita.com

Page 34: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes de formatage• Créer un entête de colonne

• Afficher la configuration de la colonne last_name

• Supprimer la configuration de la colonne

COLUMN last_name HEADING 'Employee|Name'COLUMN salary JUSTIFY LEFT FORMAT $99,990.00COLUMN manager FORMAT 999999999 NULL 'No manager'

COLUMN last_name

COLUMN last_name CLEAR

© sebvita.com

Page 35: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes de formatage• Modèles de formatage

Élément

9

0

$

L

.

,

Résultat

1234

001234

$1234

L1234

1234.00

1,234

Exemple

999999

099999

$9999

L9999

9999.99

9,999

Description

Represents a number

Adds 0

Dollar currency

Locale currency

Decimal position

Thousands separator

© sebvita.com

Page 36: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes de formatage• La commande BREAK évite les

doublons à l’affichageBREAK ON job_id

© sebvita.com

Page 37: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Commandes de formatage• Afficher des entêtes de page

• Configurer les pieds de page

TTI[TLE] [text | OFF | ON]

TTITLE 'Salary|Report'

BTITLE 'Confidential'

© sebvita.com

Page 38: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Création de rapportsCréer un fichier de script (.sql) pour générer un rapport1. Créer et tester l’ordre SQL2. Sauver l’ordre dans un fichier (.sql)3. Modifier le fichier dans un éditeur de texte4. Ajouter les commandes de formatage5. Vérifier la présence du point virgule final6. Supprimer les commandes de formatage

après l’ordre7. Sauvegarder8. Charger et exécuter le script

© sebvita.com

Page 39: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Création de rapports

© sebvita.com

Page 40: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

© sebvita.com

VOUS AVEZ DES QUESTIONS ?

Page 41: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Restriction et tri des données

© sebvita.com

Page 42: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Restreindre les données

« Récupère tousles employés du département 90 »

© sebvita.com

Page 43: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Restreindre les données• Restreindre les lignes retournées

avec la clause WHERE

• La clause WHERE suit la clause FROM.

SELECT *|{[DISTINCT] column|expression [alias],...} FROM table[WHERE condition(s)] ;

© sebvita.com

Page 44: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Restreindre les données• Utiliser la clause WHERE

SELECT employee_id, last_name, job_id, department_idFROM employeesWHERE department_id = 90 ;

© sebvita.com

Page 45: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Restreindre les données

Chaînes de caractères et dates :• Doivent être en simples quotes (' ')• Chaînes de caractères sensibles à la

casse• Dates sensibles au format• Format de date par défaut– En français : DD/MM/RR– En américain : DD-MON-RRSELECT last_name, job_id, department_idFROM employeesWHERE last_name = 'Whalen' ;

© sebvita.com

Page 46: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison

Operateur Signification

= Égal à

> Plus grand que

Plus grand ou égal à

Plus petit que

>=

<

<= Plus petit ou égal à

Non égal à

Entre deux valeurs (inclues)

<>

BETWEEN … AND …

IN (set) Correspond à une valeur de la liste

Correspond à une recherche

Est une valeur NULL

LIKE

IS NULL

© sebvita.com

Page 47: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison• Exemple :

SELECT last_name, salaryFROM employeesWHERE salary <= 3000 ;

© sebvita.com

Page 48: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison• Utiliser la condition BETWEEN :

SELECT last_name, salaryFROM employeesWHERE salary BETWEEN 2500 AND 3500 ;

Limite inférieureLimite supérieure

© sebvita.com

Page 49: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison• Utiliser la condition IN :

SELECT employee_id, last_name, salary, manager_idFROM employeesWHERE manager_id IN (100, 101, 201) ;

© sebvita.com

Page 50: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison• Utiliser la condition LIKE :• La condition de recherche pour

contenir des caractères littéraux ou des nombres– % représente zéro, un ou plusieurs

caractères– _ représente un et un seul caractèreSELECT first_nameFROM employeesWHERE first_name LIKE 'S%' ;

© sebvita.com

Page 51: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison• Utiliser la condition LIKE :

SELECT first_nameFROM employeesWHERE first_name LIKE '_o%' ;

© sebvita.com

Page 52: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison• Utiliser l’identifiant ESCAPE :• Permet de rechercher les caractères

% et _SELECT employee_id, job_idFROM employeesWHERE job_id LIKE 'SA\_R%' ESCAPE '\';

© sebvita.com

Page 53: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions de comparaison• Utiliser la condition IS NULL :

SELECT last_name, manager_idFROM employeesWHERE manager_id IS NULL ;

© sebvita.com

Page 54: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions logiques

Operateur Signification

AND Returne TRUE si les deux conditions sont vraies

OR Returne TRUE si au moins une des conditions est vraie

Returne TRUE si la condition suivante est fausse

NOT

© sebvita.com

Page 55: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions logiques• Utiliser l’opérateur AND :

SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary >= 10000AND job_id LIKE '%MAN%';

© sebvita.com

Page 56: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions logiques• Utiliser l’opérateur OR :

SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary >= 10000OR job_id LIKE '%MAN%';

© sebvita.com

Page 57: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions logiques• Utiliser l’opérateur NOT :

SELECT last_name, job_idFROM employeesWHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');

© sebvita.com

Page 58: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions logiques• Règles de priorité

• Possibilité d’utiliser les parenthèses

Order Operators

1 Arithmetic operators

2 Concatenation operator

Comparison conditions

IS [NOT] NULL, LIKE, [NOT] IN

3

4

5 [NOT] BETWEEN

Not equal to

NOT logical condition

6

7

8 AND logical condition

OR logical condition9

© sebvita.com

Page 59: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Conditions logiques

SELECT last_name, job_id, salaryFROM employeesWHERE job_id = 'SA_REP'OR job_id = 'AD_PRES'AND salary > 15000;

SELECT last_name, job_id, salaryFROM employeesWHERE (job_id = 'SA_REP'OR job_id = 'AD_PRES')AND salary > 15000;

© sebvita.com

Page 60: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Tri des données• Trier les lignes avec la clause ORDER BY :– ASC : ordre ascendant, par défaut– DESC : ordre descendant

• ORDER BY est la dernière clause du SELECTSELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date;

© sebvita.com

Page 61: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Tri des données• Tri par ordre descendant

• Tri par les alias de colonnes

• Tri d’après plusieurs colonnes

SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date DESC ;

SELECT last_name, department_id, salaryFROM employeesORDER BY department_id, salary DESC;

SELECT employee_id, last_name, salary*12 annsalFROM employeesORDER BY annsal ;

© sebvita.com

Page 62: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution

... salary = ? ...

... department_id = ? ...

... last_name = ? ...

I want to query differentvalues.

© sebvita.com

Page 63: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution• Utiliser les variables de substitution

pour :– Stocker temporairement des valeurs– Simple « et commercial » (« & »)– Double « et commercial » (« && »)SELECT employee_id, last_name, salary, department_idFROM employeesWHERE employee_id = &employee_num ;

© sebvita.com

Page 64: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution

21

© sebvita.com

Page 65: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution• Pour les chaînes de caractères et les

dates, utiliser des doubles quotesSELECT last_name, department_id, salary*12FROM employeesWHERE job_id = '&job_title';

© sebvita.com

Page 66: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution

SELECT employee_id, last_name, job_id, &column_nameFROM employeesWHERE &conditionORDER BY &order_column ;

© sebvita.com

Page 67: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution• Utiliser le double « et commercial »

pour réutiliser la valeurSELECT employee_id, last_name, job_id, &&column_nameFROM employeesORDER BY &column_name ;

© sebvita.com

Page 68: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution• Utiliser DEFINE pour créer et

assigner une valeur à une variable• Utiliser UNDEFINE pour supprimer la

variable

DEFINE employee_num = 200

SELECT employee_id, last_name, salary, department_idFROM employeesWHERE employee_id = &employee_num ;

UNDEFINE employee_num

© sebvita.com

Page 69: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Variables de substitution• Utiliser la commande VERIFY pour

afficher ou non les remplacements de la variable de substitutionSET VERIFY ON

SELECT employee_id, last_name, salary, department_idFROM employeesWHERE employee_id = &employee_num;

old 3: WHERE employee_id = &employee_numnew 3: WHERE employee_id = 200

© sebvita.com

Page 70: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

© sebvita.com

VOUS AVEZ DES QUESTIONS ?

Page 71: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Restriction et tri des données

© sebvita.com

Page 72: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Résumé

Restreindre les données

Écrire un ordre SELECT

de base

Formater des

rapports

© sebvita.com

Trier les données

Page 73: T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Ressources• http://www.oracle.com• http://otn.oracle.com

© sebvita.com