Introducere în Oracle SQL
Hadrien Lacroix
Content Developer
Funcțiile pot fi utilizate pentru:
| Date numerice | Date de tip caracter | Date calendaristice | |
|---|---|---|---|
AVG |
x | ||
SUM |
x | ||
MIN |
x | x | x |
COUNT |
x | x | x |
Tipurile de date definesc ce tip de date poate conține o coloană.
UPPER(column): convertește toate valorile alfabetice în litere mari
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): convertește toate valorile alfabetice în litere mici
SELECT LOWER(Email) AS LowercaseEmail
FROM Customer
| LowercaseEmail |
|--------------------------|
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
| ... |
SUBSTR(column, m, n): returnează o porțiune dintr-un șir de la poziția m, cu lungimea n
SELECT Phone
FROM Customer
| Phone |
|-------------------|
| +56 02 635 4444 |
| +91 0124 39883988 |
| +44 0131 315 3300 |
Scop: Extragerea codului de țară dintr-un număr de telefon, fără +
Scop: extragerea codului de țară dintr-un număr de telefon, fără +
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 |
| ... | |
Scop: Generarea numelor de utilizator din primele 5 litere ale numelui de familie și ID-ul clientului
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): returnează lungimea unui șir
SELECT LENGTH('cat')
3
REPLACE(val, m, n): înlocuiește m cu n în val
SELECT REPLACE('kayak', 'k', 'y')
yayay
ROUND(column, m): rotunjește column la m zecimale
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): trunchiază column la m zecimale
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): returnează restul împărțirii
SELECT MOD(14, 4)
2
MOD(column1, column2): returnează restul împărțirii
SELECT MOD(14, 2)
0
SELECT MOD(15, 2)
1
Avem un număr par de angajați?
SELECT MOD(COUNT(Employee),1)
FROM Employee
0
Da.
Introducere în Oracle SQL