• Aucun résultat trouvé

SQL*Plus - Oracle

N/A
N/A
Protected

Academic year: 2022

Partager "SQL*Plus - Oracle"

Copied!
50
0
0

Texte intégral

(1)

  

 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

(2)

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

(3)

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

(4)

SQL*Plus et requêtes

SQL*Plus et requêtes

(5)

Interaction entre SQL et Interaction entre SQL et

SQL*Plus SQL*Plus

Serveur

Buffer SQL SQL*Plus

Résultats

Ordre SQL

(6)

Connexion à SQL*Plus Connexion à SQL*Plus

Depuis une session ouverte

C:\> sqlplus [username[/Password[@database]]]

Depuis une ligne de commande

Depuis Programmes/Oracle/Application …

(7)

SQL*Plus et requêtes SQL*Plus et requêtes

Les tables utilisées

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

Utilisation d'alias

Utilisation d'alias

(15)

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

(16)

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)

(17)

Opérateurs arithmétiques Opérateurs arithmétiques

La multiplication et la division ont priorité sur

l'addition et la soustraction

(18)

Opérateurs arithmétiques Opérateurs arithmétiques

Trouver la liste des employés avec leur salaire annuel

augmenté d'un bonus de 100 €

(19)

Opérateurs arithmétiques Opérateurs arithmétiques

Trouver le résultat de 1654.52*999

(20)

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

(21)

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)

(22)

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)

(23)

Combinaisons de tables

Combinaisons de tables

(24)

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

(25)

Commandes d'Edition Commandes d'Edition

Exemple

(26)

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

(27)

Environnement SQL*Plus

Environnement SQL*Plus

(28)

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

(29)

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, …])

(30)

Fonctions Mono-ligne Fonctions Mono-ligne

Numérique

Conversion Date Caractère

Générale

Fonctions Mono-ligne

(31)

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

(32)

Fonctions caractères

Fonctions caractères

(33)

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

-n

Ex: TRUNC(45.636,2) = 45.63 TRUNC(Colonne|expression, n)

Arrondit la valeur du paramètre à une précision de 10

-n

Ex: ROUND(45.636,2) = 45.64 ROUND(Colonne|expression, n)

Description

Fonction

(34)

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

(35)

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

(36)

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

(37)

Utilisation des dates Utilisation des dates

Comment afficher dans une requête la date du jour

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

Fonctions de conversion Fonctions de conversion

Conversion de types de données

Conversion implicite Conversion explicite

(44)

Conversion implicite Conversion implicite

VARCHAR2 DATE

VARCHAR2 NUMBER

DATE VARCHAR2 ou CHAR

NUMBER VARCHAR2 ou CHAR

Vers De

Pour les affectations

(45)

Conversion implicite Conversion implicite

DATE VARCHAR2 ou CHAR

NUMBER VARCHAR2 ou CHAR

Vers De

Pour l'évaluation d'expression

(46)

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'])

Résultat

Fonction

(47)

TO_CHAR avec les Dates

TO_CHAR avec les Dates

(48)

TO_CHAR avec les Nombres TO_CHAR avec les Nombres

1,234 999,999

Séparateur de milliers ,

1234.00 999999.99

Point décimal .

€1234 L999999

Symbole monétaire local flottant L

$1234

$999999 Signe dollar flottant

$

001234 099999

Affichage des zéros de gauche 0

1234 999999

Détermine la largeur maximum de l'affichage 9

Résultat Exemple

Description

Elément

(49)

TO_CHAR avec les nombres TO_CHAR avec les nombres

Afficher le salaire des employés en dollar

Ou en Euro

(50)

Fonction TO_NUMBER Fonction TO_NUMBER

Afficher les employés embauchés le 22

février 1981

Références

Documents relatifs

 Le demi additionneur est un circuit combinatoire qui permet de réaliser la somme arithmétique de deux nombres A et B chacun sur un bit.  A la sotie on va avoir la somme S et

• La fameuse fonction τ de Ramanujan (ne pas confondre avec la fonction nombre de diviseurs), qui tant me fascina dans le fameux petit Cours d’arithmétique supérieure

Au bout de combien d’années le capital a-t-il

L’accès aux archives de la revue « Nouvelles annales de mathématiques » implique l’accord avec les conditions générales d’utilisation ( http://www.numdam.org/conditions )..

Il est d'une grande uti- lité pour opérer sur des nombres qui dépassent les bornes des Tables logarithmiques et surtout pour vérifier toute opération sur de grands nombres 5

D'autre part, par t la première case on peut mener (n -+- i) lignes arithmétiques, une ligne horizontale ou verticale, et n autres qui passent successivement par les n cases de

¾ les chemins de données ; ce sont des liaisons entre les registres et les opérateurs ; ces liaisons peuvent être des connexions simples ou alors peuvent admettre plusieurs

Une suite arithmétique est une suite de nombres réels telle que chacun de ses termes, autres que le premier, est obtenu en ajoutant au terme qui le précède un même