ORDINA SQL PER
ORDINE SQL PER viene utilizzata per ordinare i dati archiviati nelle tabelle nel database . L'ordinamento può essere effettuato in modo crescente, decrescente o in base a più colonne della tabella .
In genere, l'ordinamento predefinito è crescente.
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
Quella che segue è la sintassi di una clausola ORDER BY generale:
Esempio:
Consideriamo i seguenti Clienti tabella.
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgar | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
La query precedente ordinerà tutti i record in ordine crescente in base alle colonne NOME e STIPENDIO.
Risultato:
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
4 | Ritesh yadav | 36 | Azamgar | 26000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
La query precedente ordinerà tutti i record nella tabella in modo decrescente in base alla colonna NAME.
Risultato:
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgar | 26000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
Ci sono vari argomenti nella clausola SQL ORDER BY. Vale a dire, sono:
- ORDINE SQL PER ASC – Ordina i dati in modo crescente
- ORDINE SQL PER DESC – Ordina i dati in modo decrescente
- ORDINE SQL PER CASO – Ordina i dati casuali
- ORDINE SQL PER LIMITE – Seleziona dati limitati dal database
- ORDINE SQL PER colonne multiple – Ordina i dati in base a più colonne.
Discutiamo ciascuno di essi in dettaglio.
ORDINE SQL PER ASC
ORDINE SQL PER ASC La clausola ordina i dati in ordine crescente in base ad alcune colonne. In genere, l'ordinamento predefinito è crescente.
Esempio:
Consideriamo i seguenti Clienti tabella.
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgar | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
La query precedente ordinerà tutti i record in ordine crescente in base alle colonne NOME e STIPENDIO.
Risultato:
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
4 | Ritesh yadav | 36 | Azamgar | 26000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
ORDINE SQL PER DESC
La clausola SQL ORDER BY DESC ordina i dati in ordine decrescente in base ad alcune colonne.
Esempio:
Consideriamo i seguenti Clienti tabella.
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgar | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
La query precedente ordinerà tutti i record nella tabella in modo decrescente in base alla colonna NAME.
Risultato:
ID | NOME | ETÀ | INDIRIZZO | STIPENDIO |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgar | 26000 |
6 | Mahesh Sharma | 26 | Matura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
ORDINE SQL PER LIMITE
La clausola SQL ORDER BY LIMIT aiuta a recuperare un numero specifico di record dalla tabella del database. Viene generalmente utilizzato in situazioni in cui esiste un gran numero di tuple che soddisfano la condizione data. Imposta un limite superiore al numero di record che vengono recuperati.
Per utilizzare la clausola LIMIT in SQL, è necessario utilizzare ROWNUM clausola con esso.
Nota:va notato che la clausola LIMIT non è supportata da tutte le versioni SQL.
Questa clausola può essere specificata utilizzando SQL 2008 OFFSET o clausole FETCH FIRST .
Esempio:
Consideriamo il seguente Studente tabella.
RollNo | Nome | Voto |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Ema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anna | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5;
La query precedente restituirà solo i primi 5 studenti dalla tabella Studenti.
Risultato:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Ema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
La clausola LIMIT può essere utilizzata anche con la clausola ORDER BY.
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
La query precedente restituirà i primi 3 studenti con i voti più alti in ordine decrescente.
Risultato:
12006 | Anna | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
L'operatore LIMIT è particolarmente utile in situazioni in cui è necessario recuperare dati limitati senza utilizzare alcuna istruzione condizionale.
L'operatore LIMIT può essere utilizzato anche con l'operatore OFFSET.
LIMITE con OFFSET
Si noti che il valore OFFSET deve essere maggiore di zero , e non può essere negativo. Se viene fornito un valore negativo, verrà restituito un errore.
Esempio:
Consideriamo la stessa tabella Student.
RollNo | Nome | Voto |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Ema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anna | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5 OFFSET 2 ORDER BY RollNo;
Questa query restituirà i primi 5 record della tabella Student escluse le prime 2 voci.
Risultato:
RollNo | Nome | Voto |
12003 | Ema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anna | 10 |
12007 | Yusuf | 7 |
LIMITA TUTTO
Esiste un'altra clausola simile a LIMIT nota come LIMIT ALL . La clausola LIMIT ALL non porrà alcun limite e restituirà tutte le voci della tabella.
Esempio:
Consideriamo ancora la stessa tabella Student.
RollNo | Nome | Voto |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Ema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anna | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
Query:
SELECT * FROM Student LIMIT ALL;
RollNo | Nome | Voto |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Ema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anna | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
ORDINE SQL PER colonne multiple
ORDINE SQL PER colonne multiple restituirà le voci di dati nella colonna ordinandole utilizzando più colonne che sono state fornite nella query.
Ordina i dati in base all'ordine dei nomi delle colonne che sono stati forniti dopo la clausola ORDER BY. Il nome delle colonne deve essere aggiunto nell'ordine corrispondente in cui l'utente desidera che avvenga l'ordinamento.
È possibile aggiungere più nomi di colonna separandoli utilizzando una virgola (,). Inoltre, le parole chiave ASC o DESC possono essere utilizzate per specificare l'ordine di ordinamento.
Esempio:
Consideriamo il seguente Dipendente tabella con quattro colonne vale a dire id, nome, cognome e stipendio.
id | nome | cognome | stipendio |
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Tommaso | Verde | 2400 |
4 | Michele | Muller | 3000 |
5 | Maria | Verde | 2400 |
Query:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Risultato:
id | nome | cognome | stipendio |
4 | Michele | M uler | 3000 |
1 | Lisa | U lman | 3000 |
3 | Tommaso | G reen | 2400 |
5 | Maria | G reen | 2400 |
2 | Ada | M uler | 2400 |
Quindi, prima, l'output è stato ordinato per stipendio in ordine decrescente e poi per cognome in ordine crescente. Va notato che se ASC o DESC non è menzionato, per impostazione predefinita, ordinerà entrambe le colonne in ordine crescente.
Conclusione
Quindi, sopra ci sono alcune delle clausole ORDER BY più importanti e utilizzate di frequente che vengono utilizzate quotidianamente dagli sviluppatori per eseguire operazioni specifiche sul database e recuperare i dati. Queste clausole possono essere utilizzate singolarmente oppure possono essere utilizzate anche insieme, in modo combinato, per eseguire operazioni di database.