T ECHNOLOGIES O RACLE Ordres de base © sebvita.com

Preview:

Citation preview

TECHNOLOGIES ORACLE

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

Ordre SELECT

© 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;

L’ordre SELECT ?

Sélectionner toutes les colonnes d’une table

© sebvita.com

SELECT *FROM departments;

L’ordre SELECT ?

Sélectionner certaines colonnes d’une table

© sebvita.com

SELECT department_id, location_idFROM departments;

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

Expressions arithmétiques

Operateur Description

+ Add

- Subtract

Multiply

Divide

*

/

© sebvita.com

Expressions arithmétiques

SELECT last_name, salary, salary + 300FROM employees;

© sebvita.com

Expressions arithmétiques

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

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

© 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

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

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

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

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

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

Chaînes de caractères littérales

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

© 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

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

Afficher la structure d’une table

DESCRIBE employees

DESC[RIBE] tablename

Exemple :

© sebvita.com

© sebvita.com

VOUS AVEZ DES QUESTIONS ?

Ordre SELECT

© sebvita.com

Introduction to SQL*Plus

© sebvita.com

Commandes d’éditionLe buffer

© 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

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

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

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

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

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

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

Commandes de formatage

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

© 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

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

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

Commandes de formatage• La commande BREAK évite les

doublons à l’affichageBREAK ON job_id

© 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

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

Création de rapports

© sebvita.com

© sebvita.com

VOUS AVEZ DES QUESTIONS ?

Restriction et tri des données

© sebvita.com

Restreindre les données

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

© 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

Restreindre les données• Utiliser la clause WHERE

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

© 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

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

Conditions de comparaison• Exemple :

SELECT last_name, salaryFROM employeesWHERE salary <= 3000 ;

© 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

Conditions de comparaison• Utiliser la condition IN :

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

© 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

Conditions de comparaison• Utiliser la condition LIKE :

SELECT first_nameFROM employeesWHERE first_name LIKE '_o%' ;

© 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

Conditions de comparaison• Utiliser la condition IS NULL :

SELECT last_name, manager_idFROM employeesWHERE manager_id IS NULL ;

© 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

Conditions logiques• Utiliser l’opérateur AND :

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

© 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

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

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

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

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

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

Variables de substitution

... salary = ? ...

... department_id = ? ...

... last_name = ? ...

I want to query differentvalues.

© 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

Variables de substitution

21

© 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

Variables de substitution

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

© 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

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

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

© sebvita.com

VOUS AVEZ DES QUESTIONS ?

Restriction et tri des données

© sebvita.com

Résumé

Restreindre les données

Écrire un ordre SELECT

de base

Formater des

rapports

© sebvita.com

Trier les données

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

© sebvita.com

Recommended