T ECHNOLOGIES O RACLE Ordres de base © sebvita.com
Objectifs En suivant ce cours, vous serez capable : Dexécuter un ordre SELECT de base De limiter et trier les lignes retournées par une requête © sebvita.com
Ordre SELECT © sebvita.com
Lordre SELECT ? Syntaxe : SELECT liste les colonnes qui sont affichées FROM indique la table doù sont issues les colonnes © sebvita.com SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;
Lordre SELECT ? Sélectionner toutes les colonnes dune table © sebvita.com SELECT * FROM departments;
Lordre SELECT ? Sélectionner certaines colonnes dune table © sebvita.com SELECT department_id, location_id FROM departments;
Lordre 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 FROM employees; © sebvita.com
Expressions arithmétiques SELECT last_name, salary, 12*salary+100 FROM employees; SELECT last_name, salary, 12*(salary+100) FROM employees; © sebvita.com
Expressions arithmétiques Définir les valeurs NULL Une valeur NULL est indisponible, non assignée, inconnue ou inutilisable Ce nest pas comme un zéro ou un espace SELECT last_name, job_id, salary, commission_pct FROM employees; © sebvita.com
Expressions arithmétiques Utiliser les valeurs NULL Une expression arithmétique qui contient une valeur NULL retourne NULL SELECT last_name, 12*salary*commission_pct FROM 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 comm FROM 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 à dautres colonnes Se présente avec deux barres ( || ) Crée une colonne à laffichage 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 doublons SELECT department_id FROM employees; SELECT DISTINCT department_id FROM employees; © sebvita.com
Afficher la structure dune table DESCRIBE employees DESC[RIBE] tablename Exemple : © sebvita.com
V OUS AVEZ DES QUESTIONS ?
Ordre SELECT © sebvita.com
Introduction to SQL*Plus © sebvita.com
Commandes dédition Le buffer © sebvita.com
Commandes dédition Ouvre le bloc notes pour modifier le SQL Bloque lenvironnement de travail afiedt.buf ne peut contenir dordres 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] ED[IT] [filename[.ext]] SPO[OL] filename[.ext] [OFF|OUT] EXIT © sebvita.com
Personnalisation denvironnement Utiliser SET pour contrôler la session Vérifier la configuration avec SHOW SET system_variable value SQL> SET ECHO ON SQL> SHOW ECHO echo ON © sebvita.com
Personnalisation denvironnement 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 OFF SQL> 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 laffichage des colonnes CLE[AR] : Supprime le formatage dune colonne HEA[DING] text : Change lentête FOR[MAT] format : Modifie laffichage dune 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, COLUMN manager FORMAT 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 L ,234 Exemple $9999 L ,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 à laffichage BREAK 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 rapports Créer un fichier de script (.sql) pour générer un rapport 1.Créer et tester lordre SQL 2.Sauver lordre dans un fichier (.sql) 3.Modifier le fichier dans un éditeur de texte 4.Ajouter les commandes de formatage 5.Vérifier la présence du point virgule final 6.Supprimer les commandes de formatage après lordre 7.Sauvegarder 8.Charger et exécuter le script © sebvita.com
Création de rapports © sebvita.com
V OUS AVEZ DES QUESTIONS ?
Restriction et tri des données © sebvita.com
Restreindre les données « Récupère tous les 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_id FROM employees WHERE 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-RR SELECT last_name, job_id, department_id FROM employees WHERE 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, salary FROM employees WHERE salary <= 3000 ; © sebvita.com
Conditions de comparaison Utiliser la condition BETWEEN : SELECT last_name, salary FROM employees WHERE 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_id FROM employees WHERE 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ère SELECT first_name FROM employees WHERE first_name LIKE 'S%' ; © sebvita.com
Conditions de comparaison Utiliser la condition LIKE : SELECT first_name FROM employees WHERE first_name LIKE '_o%' ; © sebvita.com
Conditions de comparaison Utiliser lidentifiant ESCAPE : Permet de rechercher les caractères % et _ SELECT employee_id, job_id FROM employees WHERE job_id LIKE 'SA\_R%' ESCAPE '\'; © sebvita.com
Conditions de comparaison Utiliser la condition IS NULL : SELECT last_name, manager_id FROM employees WHERE 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 lopérateur AND : SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= AND job_id LIKE '%MAN%'; © sebvita.com
Conditions logiques Utiliser lopérateur OR : SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= OR job_id LIKE '%MAN%'; © sebvita.com
Conditions logiques Utiliser lopérateur NOT : SELECT last_name, job_id FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP'); © sebvita.com
Conditions logiques Règles de priorité Possibilité dutiliser les parenthèses Order Operators 1 Arithmetic operators 2 Concatenation operator Comparison conditions IS [ NOT ] NULL, LIKE, [ NOT ] IN [ NOT ] BETWEEN Not equal to NOT logical condition AND logical condition OR logical condition 9 © sebvita.com
Conditions logiques SELECT last_name, job_id, salary FROM employees WHERE job_id = 'SA_REP' OR job_id = 'AD_PRES ' AND salary > 15000; SELECT last_name, job_id, salary FROM employees WHERE (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 SELECT SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date; © sebvita.com
Tri des données Tri par ordre descendant Tri par les alias de colonnes Tri daprès plusieurs colonnes SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ; SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal ; © sebvita.com
Variables de substitution... salary = ? department_id = ? last_name = ?... I want to query different values. © 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_id FROM employees WHERE employee_id = &employee_num ; © sebvita.com
Variables de substitution © sebvita.com
Variables de substitution Pour les chaînes de caractères et les dates, utiliser des doubles quotes SELECT last_name, department_id, salary*12 FROM employees WHERE job_id = '&job_title'; © sebvita.com
Variables de substitution SELECT employee_id, last_name, job_id, &column_name FROM employees WHERE &condition ORDER BY &order_column ; © sebvita.com
Variables de substitution Utiliser le double « et commercial » pour réutiliser la valeur SELECT employee_id, last_name, job_id, &&column_name FROM employees ORDER 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_id FROM employees WHERE 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 substitution SET VERIFY ON SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id = &employee_num; old 3: WHERE employee_id = &employee_num new 3: WHERE employee_id = 200 © sebvita.com
V OUS 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 © sebvita.com