SQL (Structured Query Language)
- Funzioni sulle potenze, logaritmi e radici in SQL
Un dispensa che tratta le funzioni sulle potenze, logaritmi, radici e caratteri in SQL

Indice articolo

  1. Introduzione alla SQL (Structured Query Language)
  2. Query SQL
  3. Espressioni e operatori condizionali
  4. Operatori di insieme
  5. Funzioni SQL
  6. Funzioni sulle potenze, logaritmi e radici in SQL
  7. Funzioni in SQL - Esercizi capitolo 3
  8. Clausole SQL
  9. Clausole SQL - Esercizi capitolo 4
  10. Join - combinazioni di tabelle in SQL
  11. Subquery SQL
  12. Manipolare dati con SQL
  13. Creare e mantenere le tabelle
  14. View e Indici
  15. SQL - Soluzioni esercizi cap. 1
  16. SQL - Soluzioni esercizi cap. 2
  17. SQL - Soluzioni esercizi cap. 3
  18. SQL - Soluzioni esercizi cap. 4
  19. SQL - Soluzioni esercizi cap. 5
  20. SQL - Soluzioni esercizi cap. 6

Capitolo 3

Segue dalla pagina web precedente

CONCAT

Questa sintassi non è accettata da Access. L’equivalente di questa funzione è stato utilizzato nel Capitolo 2, quando si è parlato di operatori. Il simbolo usato nel capitolo 2 è il seguente: che unisce insieme due stringhe di caratteri, come la funzione CONCAT. Ecco un esempio:

SELECT CONCAT(NOME, COGNOME) "NOME E COGNOME"
FROM CARATTERI;

NOME E COGNOME
--------------------------
GIGIROSSI
MARIOBIANCHI
MARIANERI
ANGELOBRUNI
ANNASCURI
ANTONIOVERDI


INITCAP

La funzione INITCAP trasforma in maiuscolo o lascia in maiuscolo il primo carattere di una parola e trasforma in minuscolo o lascia in minuscolo tutti gli altri caratteri. Questa funzione non è implementata da Access.
Vediamo un esempio:

SELECT NOME PRIMA, INITCAP(NOME) DOPO
FROM CARATTERI;

PRIMA
-----------------
 
DOPO
--------------
GIGI Gigi
MARIO Mario
MARIA Maria
ANGELO Angelo
ANNA Anna
ANTONIO Antonio


LOWER e UPPER

La funzione LOWER trasforma tutti i caratteri di una parola in maiuscolo; UPPER esegue l’operatore inversa. Questa funzione non è implementata da Access. Vediamo degli esempi:

UPDATE CARATTERI
SET NOME = 'Mario'
WHERE NOME = 'MARIO';

Aggiornata 1 riga.

Con questa espressione abbiamo modificato il formato con cui viene rappresentato uno dei nomi della tabella CARATTERI , al fine di accertarci che la funzione esegua il suo compito correttamente.

SELECT NOME, UPPER(NOME), LOWER(NOME)
FROM CARATTERI;

NOME
------------------
UPPER(NOME)
--------------------------
LOWER(NOME)
-------------------------
GIGI  GIGI gigi
Mario MARIO mario
MARIA MARIA maria
ANGELO ANGELO angelo
ANNA ANNA anna
ANTONIO ANTONIO antonio


LPAD e RPAD

La ‘L’ e la ‘R’ stanno per left e right mentre ‘PAD’ significa in inglese cuscinetto.
Queste due funzioni richiedono da due a tre argomenti. Il primo argomento rappresenta le stringhe sulle quali operare. Il secondo argomento è il numero di caratteri da aggiungere alla stringa. Il terzo argomento (facoltativo) è il carattere da aggiungere, che può essere un singolo carattere o una stringa di caratteri; se non viene specificato, sarà automaticamente aggiunto uno spazio. Questa funzione non è implementata da Access. Vediamo alcuni esempi:

SELECT COGNOME, LPAD(COGNOME,20,'*')
FROM CARATTERI;

COGNOME
--------------
LPAD(COGNOME,20,'*')
-------------------------------
ROSSI  ***************ROSSI
BIANCHI *************BIANCHI
NERI ****************NERI
BRUNI ***************BRUNI
SCURI ***************SCURI
VERDI ***************VERDI


SELECT COGNOME, LPAD(COGNOME,20,'tra')
FROM CARATTERI;

COGNOME
---------------
LPAD(COGNOME,20,'TRA')
-------------------------------
ROSSI  tratratratratraROSSI
BIANCHI tratratratratBIANCHI
NERI tratratratratratNERI
BRUNI tratratratratraBRUNI
SCURI tratratratratraSCURI
VERDI tratratratratraVERDI


SELECT COGNOME, RPAD(COGNOME,20,'/')
FROM CARATTERI;

COGNOME
-----------------
RPAD(COGNOME,20,'/')
---------------------------
ROSSI ROSSI///////////////
BIANCHI BIANCHI/////////////
NERI NERI////////////////
BRUNI BRUNI///////////////
SCURI SCURI///////////////
VERDI VERDI///////////////


LTRIM e RTRIM

La ‘L’ e la ‘R’ stanno per left e right mentre To trim in inglese significa anche tagliare.
Il primo argomento, come per le funzioni RPAD e LPAD, rappresenta le stringhe sulle quali operare. Il secondo argomento può essere un carattere o una stringa di caratteri. Queste due funzioni non sono implementate da Access.
Vediamo alcuni esempi:

SELECT NOME, RTRIM(NOME, 'O')
FROM CARATTERI;

NOME
----------------
RTRIM(NOME, ‘O’)
-------------------------------
GIGI  GIGI
MARIO MARI
MARIA MARIA
ANGELO ANGEL
ANNA ANNA
ANTONIO ANTONI


SELECT NOME, RTRIM(NOME, 'N')
FROM CARATTERI;

NOME
---------- 
RTRIM(NOME, ‘N’)
-------------------------------
GIGI GIGI
MARIO MARIO
MARIA MARIA
ANGELO ANGELO
ANNA ANNA
ANTONIO ANTONIO


SELECT NOME, LTRIM(NOME, 'A')
FROM CARATTERI;

NOME
----------
LTRIM(NOME, ‘A’)
------------------------------
GIGI GIGI
MARIO MARIO
MARIA MARIA
ANGELO NGELO
ANNA NNA
ANTONIO NTONIO


REPLACE

REPACE permette di sostituire una stringa di caratteri con quella specifica. Richiede tre argomenti: il primo rappresenta le stringhe sulle quali effettuate le ricerche ; il secondo è la stringa da ricercare e sostituire; il terzo è facoltativo e specifica la stringa di sostituzione.
Se l’ultimo argomento non viene indicato, ogni ricorrenza della chiave di ricerca (stringa trovata) viene eliminata, senza essere sostituita da un’altra stringa. Questa funzione non è implementata da Access. Vediamo alcuni esempi:

SELECT NOME, REPLACE(NOME, 'R', '**')
FROM CARATTERI;

NOME
------------

REPLACE(NOME,'R','**)
------------------------------------
GIGI GIGI
MARIO MA**IO
MARIA MA**IA
ANGELO ANGELO
ANNA ANNA
ANTONIO ANTONIO


SELECT NOME, REPLACE(NOME, 'A')
FROM CARATTERI;

NOME
---------------
REPLACE(NOME, ‘A’)
----------------------------------
GIGI GIGI
MARIO MRIO
MARIA MRI
ANGELO NGELO
ANNA NN
ANTONIO NTONIO


SUBSTR

Questa funzione consente si estrarre una serie di caratteri (sottostringa) da una stringa specificata. SUBSTR richiede tre argomenti: il primo è la stringa specificata da esaminare; il secondo è la posizione del primo carattere da estrarre; il terzo è il numero di caratteri da estrarre. Se il terzo parametro viene omesso la query visualizza tutti i caratteri rimanenti dopo la posizione specificata. Questa funzione non è implementata da Access. Vediamo alcuni esempi:

SELECT COGNOME, SUBSTR(COGNOME, 2, 3)
FROM CARATTERI;

COGNOME
--------------
SUBSTR(COGNOME, 2, 3)
-------------------------------
ROSSI OSS
BIANCHI IAN
NERI ERI
BRUNI RUN
SCURI CUR
VERDI ERD


SELECT COGNOME, SUBSTR(COGNOME,2)
FROM CARATTERI;

COGNOME
-------------
SUBSTR(COCOGNOME, 2)
--------------------------------
ROSSI OSSI
BIANCHI IANCHI
NERI ERI
BRUNI RUNI
SCURI CURI
VERDI ERDI


Se viene utilizzato un numero negativo come secondo argomento, la posizione iniziale viene determinata contando la stringa da destra verso sinistra iniziando dal suo ultimo carattere. Vediamo alcuni esempi:

SELECT COGNOME, SUBSTR(COGNOME,-4, 2)
FROM CARATTERI;

COGNOME
--------------
SUBSTR(COGNOME, -4, 2)
---------------------------------
ROSSI  OS
BIANCHI NC
NERI NE
BRUNI RU
SCURI CU
VERDI ER


SELECT COGNOME, SUBSTR(COGNOME,-5, 2)
FROM CARATTERI;

COGNOME
-----------------
SUBSTR(COGNOME,-5, 2)
-------------------------------
ROSSI RO
BIANCHI AN
NERI  
BRUNI BR
SCURI SC
VERDI VE


Vediamo un esempio in cui vogliamo visualizzare solo le iniziali dei nominativi presenti in CARATTERI:

SELECT SUBSTR(NOME, 1, 1) ' - ' SUBSTR(COGNOME, 1, 1)
FROM CARATTERI;

SUBST
---------
G - R
M - B
M - N
A - B
A - S
A - V


INSTR

La funzione INSTR permette di sapere in quale punto di una stringa si trova un particolare schema di caratteri. Il primo argomento della funzione è la stringa da esaminare. Il secondo argomento è lo schema da ricercare. Il terzo e il quarto argomento sono numeri che indicano dove iniziare le ricerche e quale tipo di corrispondenza fornire. Vediamo alcuni esempi:

SELECT COGNOME, INSTR(COGNOME, 'I', 2, 1)
FROM CARATTERI;

COGNOME
-------------
INSTR(COGNOME, 'I', 2, 1)
------------------------------
ROSSI 5
BIANCHI 2
NERI 4
BRUNI 5
SCURI 5
VERDI 5


SELECT COGNOME, INSTR(COGNOME, 'I', 2, 2)
FROM CARATTERI;

COGNOME
-------------
INSTR(COGNOME,'I',2,2)
------------------------------
ROSSI 0
BIANCHI 7
NERI 0
BRUNI 0
SCURI 0
VERDI 0


SELECT COGNOME, INSTR(COGNOME, 'R', 2, 2)
FROM CARATTERI;

COGNOME
--------------
INSTR(COGNOME, 'R', 2, 2)
-------------------------------
ROSSI 0
BIANCHI 0
NERI 0
BRUNI 0
SCURI 0
VERDI 0


SELECT COGNOME, INSTR(COGNOME, 'N', 2, 1)
FROM CARATTERI;

COGNOME
--------------
INSTR(COGNOME, 'N', 2, 1)
------------------------------
ROSSI 0
BIANCHI 4
NERI 0
BRUNI 4
SCURI 0
VERDI 0


SELECT NOME, INSTR(NOME, 'N', 2, 2)
FROM CARATTERI;

COGNOME
-------------
INSTR(NOME, 'N', 2, 2)
---------------------------
ROSSI 0
BIANCHI 0
NERI 0
BRUNI 0
SCURI 3
VERDI 5


Il valore di default per il terzo e il quarto argomento è 1.

Access implementa questa funzione usando un’altra sintassi, vediamo come:

InStr([inizio, ]stringa1, stringa2[, confronto])

La sintassi della funzione InStr è composta dai seguent argomenti:

  • inizio Facoltativa. Espressione numerica che definisce la posizione di inizio per ciascuna ricerca. Se omessa, la ricerca inizia dalla posizione del primo carattere.
  • stringa1 Obbligatoria. Espressione stringa oggetto della ricerca.
  • stringa2 Obbligatoria. Espressione stringa cercata.
  • confronto Facoltativa. Specifica il tipo di confronto di stringa. Per ulteriori informazioni consultare la guida in linea.

LENGTH

La sintassi accettata da Access per tale funzione è: Len(nome_campo)
La funzione LENGTH restituisce la lunghezza del suo argomento, come in questo esempio:

SELECT NOME, LENGTH(NOME)
FROM CARATTERI;

NOME
------------
LENGTH(NOME)
---------------------
GIGI 4
MARIO 5
MARIA 5
ANGELO 6
ANNA 4
ANTONIO 7


Funzione USER

Questa funzione restituisce il nome dell’utente corrente alla tabella specificata. Questa funzione non è implementata da Access. Vediamo un esempio:

SELECT USER
FROM CARATTERI;

USER
--------------------------
DEMO
DEMO
DEMO
DEMO
DEMO
DEMO

Art Net - 6.2.2006

Tags:  SQL funzioni potenze logaritmi radici caratteri
Previous   Pagina 6 / 20   Next
Aggiungi un Commento



captcha
Inserisci il codice visualizzato
Il commento sarĂ  visualizzato dopo l'approvazione dello staff