Ric h a rd C HB EIR Ric h a rd C HB EIR Ric h a rd C HB EIR Ric h a rd C HB EIR
SQL*Plus - Oracle
SQL*Plus - Oracle
Définition Définition
SQL*Plus
Est un outil d'Oracle possédant son propre langage de commande. Il permet de
Utiliser SQL pour manipuler (interrogation, insertion, mise à jour, etc.) les données d'une BDD Oracle
Générer des rapports
Interpréter des commandes PL/SQL
Définition Définition
Les ordres SQL
Contrôle des transactions COMMIT
ROLLBACK SAVEPOINT
Langage de définition des données (LDD) CREATE
ALTER DROPRENAME TRUNCATE
Langage de manipulation des données (LMD) INSERT
UPDATE DELETE
Recherche de données SELECT
SQL*Plus et requêtes
SQL*Plus et requêtes
Interaction entre SQL et Interaction entre SQL et
SQL*Plus SQL*Plus
Serveur
Buffer SQL SQL*Plus
Résultats
Ordre SQL
Connexion à SQL*Plus Connexion à SQL*Plus
Depuis une session ouverte
C:\> sqlplus [username[/Password[@database]]]
Depuis une ligne de commande
Depuis Programmes/Oracle/Application …
SQL*Plus et requêtes SQL*Plus et requêtes
Les tables utilisées
Structure d'une table Structure d'une table
DESC[RIBE] nom_table
Signifie que la colonne
doit contenir des données Donne le type de donnée de la colonne
Types de données Types de données
Valeurs de date et heure situées entre le 1er janvier 4712 av J.C. et le 31 décembre 9999 après J.C.
DATE
Chaîne de caractères de taille fixe s CHAR(s)
Chaîne de caractères de taille variable inférieure ou égale à s VARCHAR(s)
Valeur numérique contenant au maximum p chiffres dont s chiffres après la virgule
NUMBER(p,s)
Description Types de
données
Chaque requête SQL a besoin du caractère ';' pour qu'elle soit exécutée Il ne tient pas compte de la casse
Des commandes Des noms des tables Des noms des colonnes
SeleCt oPtioN, sEction FrOm jourNal
= Select Option, Section From JOURNAL
Mais pas les littéraux (placés entre simples quotes)
Select Feature From JOURNAL Where Section = 'f'
≠ Select Feature From JOURNAL Where Section = 'F'
SQL*Plus et requêtes
SQL*Plus et requêtes
Utilisation d'alias Utilisation d'alias
Renomme un en-tête de colonne Utile dans les calculs
Suit immédiatement le nom de la colonne
Le mot clé AS placé entre le nom et l'alias est optionnel
Doit obligatoirement être inclus entre guillemets s'il contient
Des espaces, des caractères spéciaux
Des majuscules/minuscules à différencier
SQL*Plus et requêtes SQL*Plus et requêtes
Formatage des données
Alignement des entêtes et des données
A gauche pour les chaînes A droite pour les nombres
Environnement SQL*Plus
Taille
– Numwidth
» Set numwidth 5
Feedback
– Show
– Set feedback off
SQL*Plus et requêtes SQL*Plus et requêtes
SQL*Plus
Convertit tous les noms de colonnes en majuscules
Les entêtes ne peuvent pas être plus longs que la longueur définie pour les données
Supprime tous les espaces dans les entêtes
de colonnes qui sont des fonctions
Utilisation d'alias
Utilisation d'alias
Opérateurs logiques Opérateurs logiques
SQL*Plus permet d'utiliser les opérateurs suivants
=
>
>=
<
<=
!=, ^= ou <>
Like
% remplace une chaîne de caractères _ remplace un caractère
IS
Null, Not Null
Pas = ou != avec Null
Liste de valeurs Liste de valeurs
IN ou NOT IN
Page IN (1,2,3)
Section IN ('A', 'B', 'C')
BETWEEN ou NOT BETWEEN
Page BETWEEN 1 and 3
Section BETWEEN 'A' and 'C'
ANY Page = ANY(1, 2, 3)
Opérateurs arithmétiques Opérateurs arithmétiques
La multiplication et la division ont priorité sur
l'addition et la soustraction
Opérateurs arithmétiques Opérateurs arithmétiques
Trouver la liste des employés avec leur salaire annuel
augmenté d'un bonus de 100 €
Opérateurs arithmétiques Opérateurs arithmétiques
Trouver le résultat de 1654.52*999
Opérateurs AND et OR Opérateurs AND et OR
Priorité
Je cherche les employés dont le nom est King ou commence par M qui touchent un salaire supérieur à 2000
AND est plu s fo rt qu e O R
Opérateur de concaténation Opérateur de concaténation
Est représenté par ||
Permet de concaténer des colonnes (ou des chaînes
de caractères) avec d'autres colonnes (ou chaînes)
Opérateur de concaténation Opérateur de concaténation
Est représenté par || ou la fonction CONCAT( )
Permet de concaténer des colonnes (ou des chaînes
de caractères) avec d'autres colonnes (ou chaînes)
Combinaisons de tables
Combinaisons de tables
Commandes d'Edition Commandes d'Edition
Affiche et exécute l'ordre SQL actuellement dans le buffer
R[UN]
Affiche une ligne n
L[IST] n
Affiche toutes les lignes du buffer SQL
L[IST]
Insère la ligne texte
I[NPUT] texte
Insère un nombre indéfini de lignes
I[NPUT]
Supprime la ligne courante
DEL
Efface l'écran
CL[EAR] SCR[EEN]
Supprime toutes les ligne du buffer SQL
CL[EAR] BUFFER
Supprime le texte dans la ligne courante
C[HANGE] /texte/
Remplace l'ancien texte par le nouveau dans la ligne courante
C[HANGE]/ancien/Nouveau
Ajoute du texte à la fin de la ligne courante
A[PPEND] text
Description
Commande
Commandes d'Edition Commandes d'Edition
Exemple
Commandes de Fichiers Commandes de Fichiers
Quitte SQL*Plus
EXIT ou QUIT
Stocke les résultats de requête dans un fichier. OFF ferme le fichier spool. OUT ferme le fichier et envoie à l'imprimante
Spo[OL] [fichier[.ext]]
OFF|OUT]
Appelle l'éditeur et édite le contenu d'un fichier déjà sauvegardé
ED[IT] [fichier[.ext]]
Appelle l'éditeur et sauvegarde le contenu du buffer dans un fichier nommé afiedt.buf
ED[IT]
Exécute un fichier de commandes
@ fichier
Exécute un fichier de commandes
STA[RT] fichier[.ext]
Charge le contenu d'un fichier dans le buffer SQL.
GET fichier[.ext]
Sauvegarde dans un fichier le contenue actuel du buffer SQL. L'extension par défaut est .sql
SAV[E] fichier[.ext]
[REP[LACE] APP[END]]
Description
Commande
Environnement SQL*Plus
Environnement SQL*Plus
Fonctions SQL Fonctions SQL
Deux types de fonctions
Fonctions Mono-ligne
Agissent sur une seule ligne à la fois Ramènent un seul résultat
Fonction multi-ligne
Manipulent des groupes de lignes
Ramènent un seul résultat par groupe de lignes
Fonctions mono-ligne Fonctions mono-ligne
Syntaxe
Manipulent des éléments de données Acceptent des arguments
Agissent sur chacune des lignes rapportées Ramènent un seul résultat par ligne
Peuvent modifier les types de données Peuvent être imbriquées
Fonction (colonne|expression, [arg1, arg2, …])
Fonctions Mono-ligne Fonctions Mono-ligne
Numérique
Conversion Date Caractère
Générale
Fonctions Mono-ligne
Fonctions caractères Fonctions caractères
Complète une chaîne de caractères sur la gauche avec la ‘chaîne’
pour parvenir à une longueur totale de n caractères
LPAD(Colonne|expression,n,’chaîne’)
Ramène une valeur égale à la position du caractère m
INSTR(Colonne|expression,m)
Donne le nombre de caractères
LENGTH(Colonne|expression)
Extrait une partie de la chaîne en commençant au mème caractère et sur une longueur de n caractères
SUBSTR(Colonne|expression,m[,n])
Concatène la première chaîne à la deuxième
CONCAT(Colonne1|expression1, Colonne2|expression2)
Majuscule en début de chaque mot
INITCAP(Colonne|expression)
Conversion en majuscule
UPPER(Colonne|expression)
Conversion en minuscule
LOWER(Colonne|expression)
Description
Fonction
Fonctions caractères
Fonctions caractères
Fonctions Numériques Fonctions Numériques
Donne la taille de stockage du paramètre (numérique, date, chaîne, etc.)
Ex: VSIZE(5) = 2 VSIZE(n)
Donne la racine carré de n Ex: SQRT(9) = 3
SQRT(n)
Donne le reste de la division de m par n Ex: MOD(1600, 300) = 100
MOD(m,n)
Tronque la valeur du paramètre à une précision de 10
-nEx: TRUNC(45.636,2) = 45.63 TRUNC(Colonne|expression, n)
Arrondit la valeur du paramètre à une précision de 10
-nEx: ROUND(45.636,2) = 45.64 ROUND(Colonne|expression, n)
Description
Fonction
Utilisation des dates Utilisation des dates
Oracle stocke les dates dans un format interne de 7 octets
Siècle, année, mois, jour, heures, minutes, et secondes
Le format par défaut est : DD-MON-YY
La fonction SYSDATE renvoie la date et
l’heure actuelle
Modèles de Format Date Modèles de Format Date
Numéro de la semaine dans l'année (ou le mois) WW (ou W)
Numéro du mois exprimé en chiffre romains RM
Numéro du trimestre Q
Av. J.C. ou apr. J.C BC (ou B.C.), AD (ou A.D.)
Siècle (le S fait précéder les dates av. J.C. d'un signe SCC ou CC
Jour exprimé en toutes lettres DAY
3 premières lettres du nom du jour DY
Mois exprimé en toutes lettres MONTH
Mois exprimé en 2 chiffres MM
Année exprimée en toutes lettres YEAR
Année exprimée avec 4, 3, ou 2 chiffres YYYY, YYY, YY
Description
Type
Modèles de Format Date Modèles de Format Date
Secondes (0 à 59) SS
Minutes (0 à 59) M1
Heure du jour ou heure (1 à 12) ou heure (0 à 23) HH ou HH12 ou HH24
Après-midi PM ou P.M.
Matin AM, A.M.
Description
Type
Utilisation des dates Utilisation des dates
Comment afficher dans une requête la date du jour
Opérations arithmétiques sur Opérations arithmétiques sur
les dates les dates
Ajoute un certain nombre d’heure à une Date date
Date+(nombre d’heures)/24
Donne le nombre de jours entre deux dates Nombre de
jours Date-date
Soustrait le Nbre de jour d’une date Date
Date-Nbre de jours
Ajoute le Nbre de jour à une date Date
Date+Nbre de jours
Description Résultat
Opération
Opérations arithmétiques sur Opérations arithmétiques sur
les dates les dates
On souhaite afficher le nom et le nombre de semaines d’ancienneté
de tous les employés du département 10
Fonctions Date Fonctions Date
Tronque une date à l’unité précisée par le modèle de format
TRUNC(date[,’fmt’])
Arrondit une date à l’unité précisée par le modèle de format
ROUND(date[,’fmt’])
Dernier jour du mois LAST_DAY(date)
Fournit la date de la première occurrence du jour spécifié ‘char’ ou nombre de jour n après la date fournie
NEXT_DAY(date, ‘char’) NEXT_DAY(date, n)
Ajoute un nombre n de mois calendaires à une ADD_MONTHS (date, n) date
Nombre de mois situés entre deux dates. La partie non entière représente une portion de mois MONTHS_BETWEEN(date1,
date2)
Description
Fonction
Fonctions Date Fonctions Date
01/01/02 TRUNC('25-JAN-02',’YEAR’)
01/02/02 ROUND('25-JAN-02',’MONTH’)
31/01/02 LAST_DAY('23-JAN-02')
28/01/02
NEXT_DAY('23-JAN-02', 'LUNDI') NEXT_DAY('23-JAN-02', 1)
11-JUL-99 ADD_MONTHS ('11-JAN-99', 6)
19.6774194 MONTHS_BETWEEN('01-SEP-
99','11-JAN-98')
Résultat
Exemple
Fonctions Date Fonctions Date
Afficher les dates d'embauches et le mois de début
d'activités des employés ayant commencé en 1987
Fonctions de conversion Fonctions de conversion
Conversion de types de données
Conversion implicite Conversion explicite
Conversion implicite Conversion implicite
VARCHAR2 DATE
VARCHAR2 NUMBER
DATE VARCHAR2 ou CHAR
NUMBER VARCHAR2 ou CHAR
Vers De
Pour les affectations
Conversion implicite Conversion implicite
DATE VARCHAR2 ou CHAR
NUMBER VARCHAR2 ou CHAR
Vers De
Pour l'évaluation d'expression
Conversion explicite Conversion explicite
Convertit une chaîne de caractères en date. Le format par défaut est DD-MON-YY
TO_DATE(chat,['fmt'])
Convertit une chaîne en un nombre TO_NUMBER
Convertit un nombre ou une date en une chaîne de type VARCHAR2
TO_CHAR(nombre|date,['fmt'])