Introduction à Oracle SQL
Hadrien Lacroix
Content Developer
Les fonctions servent à :
| Données numériques | Données caractères | Données de date | |
|---|---|---|---|
AVG |
x | ||
SUM |
x | ||
MIN |
x | x | x |
COUNT |
x | x | x |
Les types de données définissent ce qu'une colonne peut contenir.
UPPER(column) : met en majuscules toutes les lettres
SELECT UPPER(State) AS State, UPPER(PostalCode) AS PostalCode
FROM Customer
| State | PostalCode |
|-------|------------|
| CA | 95014 |
| DF | 71020-677 |
| AB | T6G 2C7 |
| BC | V6C 1G8 |
| QC | H2G 1A7 |
| ... | |
LOWER(column) : met en minuscules toutes les lettres
SELECT LOWER(Email) AS LowercaseEmail
FROM Customer
| LowercaseEmail |
|--------------------------|
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
| ... |
SUBSTR(column, m, n) : renvoie une sous-chaîne à partir de m, de longueur n
SELECT Phone
FROM Customer
| Phone |
|-------------------|
| +56 02 635 4444 |
| +91 0124 39883988 |
| +44 0131 315 3300 |
Objectif : extraire l'indicatif du pays sans le +
Objectif : extraire l'indicatif du pays sans le +
SELECT Phone, SUBSTR(Phone, 2, 2) AS cc
FROM Customer
| Phone | cc |
|-------------------|----|
| +56 (0)2 635 4444 | 56 |
| +91 0124 39883988 | 91 |
| +44 0131 315 3300 | 44 |
| +39 06 39733434 | 39 |
| +48 22 828 37 39 | 48 |
| ... | |
Objectif : générer des identifiants à partir des 5 premières lettres du nom de famille et de l'ID
SELECT LastName, CustomerId, CONCAT(SUBSTR(LastName,1,5), CustomerId) AS UserName
FROM customer
| LastName | CustomerId | UserName |
|----------|------------|----------|
| Almeida | 12 | Almei12 |
| Barnett | 28 | Barne28 |
| Bernard | 39 | Berna39 |
| Brooks | 18 | Brook18 |
| Brown | 29 | Chase21 |
| ... | | |
LENGTH(val) : renvoie la longueur d'une chaîne
SELECT LENGTH('cat')
3
REPLACE(val, m, n) : remplace m par n dans val
SELECT REPLACE('kayak', 'k', 'y')
yayay
ROUND(column, m) : arrondit column à m décimale(s)
SELECT Total, ROUND(Total, 1) AS Round1, ROUND(Total, 0) AS Whole
FROM Invoice
| Total | Round1 | Whole |
|-----------|--------|-------|
| 11.94 | 11.9 | 12 |
| 14.91 | 14.9 | 15 |
| 0.99 | 1.0 | 1 |
| 5.94 | 5.9 | 6 |
| 7.96 | 8.0 | 8 |
| ... | | |
TRUNC(column, m) : tronque column à m décimale(s)
SELECT DISTINCT Total, ROUND(Total, 1) AS Dec1, TRUNC(Total, 1) AS Trun1
FROM Invoice
| Total | Dec1 | Trun1 |
|-------|------|-------|
| 15.86 | 15.9 | 15.8 |
| 13.86 | 13.9 | 13.8 |
| 8.94 | 8.9 | 8.9 |
| 1.99 | 2.0 | 1.9 |
| 7.96 | 8.0 | 7.9 |
MOD(column1, column2) : renvoie le reste de la division
SELECT MOD(14, 4)
2
MOD(column1, column2) : renvoie le reste de la division
SELECT MOD(14, 2)
0
SELECT MOD(15, 2)
1
Avons-nous un nombre pair d'employés ?
SELECT MOD(COUNT(Employee),1)
FROM Employee
0
Oui.
Introduction à Oracle SQL