CodeGym/Java Course/All lectures for IT purposes/Controllo della visualizzazione dei dati

Controllo della visualizzazione dei dati

Disponibile

4.1 LIMITE

Se prevedi che la tua query SQL restituisca troppi dati, puoi limitare il numero massimo in anticipo. Dopotutto, le tabelle possono contenere migliaia o addirittura milioni di righe.

SQL rende molto semplice limitare il numero di righe nel risultato di una query utilizzando l'estensione LIMIT. Questa parola chiave viene utilizzata alla fine della query SQL e ha il seguente aspetto:

LIMIT quantity

Scriviamo una query sulla tabella dei prodotti, che contiene un elenco dei prodotti del nostro negozio. Ma poiché abbiamo un negozio di grande successo e vendiamo molti prodotti, vogliamo ottenere solo le prime 10 righe della risposta. Ecco come sarebbe la richiesta:

SELECT * FROM product
LIMIT 10

E otteniamo il seguente risultato della query:

id nome marca prezzo contare
1 Tavolo IKEA 20.00 15
2 Sedia IKEA 5.00 45
3 Divano IKEA 80,00 10
4 Letto IKEA 75,00 10
5 Guardaroba Bosch 125,00 15
6 Mensola Mensola 25.00 114
7 tv LG 350,00 4
8 Lampada LG 15.00 100
9 Costumista IKEA 99,00 10
10 Piatto Bosch 199,00 10

Ora richiederemo solo le prime 5 righe. Ecco come sarebbe la richiesta:

SELECT * FROM product
LIMIT 5

Otteniamo il seguente risultato della query:

id nome marca prezzo contare
1 Tavolo IKEA 20.00 15
2 Sedia IKEA 5.00 45
3 Divano IKEA 80,00 10
4 Letto IKEA 75,00 10
5 Guardaroba Bosch 125,00 15

4.2 SCOSTAMENTO

L'ultima volta abbiamo imparato come limitare il numero di righe nella risposta del server. E ora, invece di migliaia di righe dalla tabella dei prodotti, possiamo ottenere le prime 10 righe e mostrarle all'utente. È perfettamente. Ma come mostriamo le seconde 10 righe? E il terzo?

Se scriviamo LIMIT 20, o LIMIT 30, il server non restituirà rispettivamente 20 e 30 righe?

È per questo caso che SQL ha una parola chiave speciale OFFSETcon la quale puoi chiedere al server di saltare N righe nella sua risposta. Questa parola chiave viene utilizzata alla fine della query SQL (dopo LIMIT) e ha il seguente aspetto:

OFFSET quantity

Scriviamo una query sulla tabella del prodotto e proviamo a ottenere i record da 11 a 15. In altre parole, chiediamo al server di restituirci 5 righe, ma prima saltiamo le prime 10 righe della risposta. Ecco come sarebbe la richiesta:

SELECT * FROM product
LIMIT 5
OFFSET 10

Otteniamo il seguente risultato della query:

id nome marca prezzo contare
undici Poltrona Bosch 44.00 8
12 vaso di fiori Fiore intelligente 99,00 9
13 In piedi IKEA 100,00 10

Il server ha restituito solo 3 righe, il che significa che c'erano 13 righe in totale nella nostra tabella. Il server ha saltato i primi 10 e ha restituito i successivi 5.

4.3 SELEZIONA DISTINTO

Un'altra parola chiave utile è DISTINCT. Viene utilizzato quando nella tabella sono presenti record duplicati e si desidera rimuovere i duplicati.

Da dove vengono i duplicati nella nostra tabella? Potrebbero non esserci duplicati nella tabella, ma come risultato della query è facile. Scriviamo una query che restituirà i marchi di tutti i prodotti che vendiamo. Ecco come sarebbe la richiesta:

SELECT brand FROM product

Otteniamo il seguente risultato della query:

marca
IKEA
IKEA
IKEA
IKEA
Bosch
Bosch
LG
LG
IKEA
Bosch
Bosch
Fiore intelligente
IKEA

È facile vedere che ci sono righe duplicate in questa tabella. È per garantire che non ci siano duplicati e devi usare la parola chiave DISTINCT. Ecco come apparirà la richiesta corretta:

SELECT DISTINCT brand
FROM product

Otteniamo il seguente risultato della query:

marca
IKEA
Bosch
LG
Fiore intelligente

Molto meglio. Non è questo? ;)

4.4 ORDINE PER

E finalmente siamo arrivati ​​allo smistamento . Per ordinare i risultati di una query, è necessario utilizzare la parola chiave ORDER BY. Tecnicamente, queste sono due parole, ma l'essenza non è importante. Due parole, un operatore.

Deve essere scritto dopo la parola chiave WHERE, ma prima LIMITe OFFSET. Se scrivi ORDER BYdopo LIMIT, il server SQL ti restituirà semplicemente un errore.

In generale, questo operatore ha questo aspetto:

ORDER BY column order

Dove colonna è il nome della colonna nella tabella/risultato dell'ordinamento. E l'ordine è l'ordinamento.

L'ordinamento può essere di tre tipi:

  • ASC(da Ascending) - ascendente;
  • DESC(da Discendente) - discendente;
  • Non specificato - verrà utilizzatoASC

Scriviamo una query che restituirà un elenco di prodotti ordinati per prezzo in ordine crescente. Ecco come sarebbe la richiesta:

SELECT * FROM product
ORDER BY price ASC
LIMIT 10

Otteniamo il seguente risultato della query:

id nome marca prezzo contare
2 Sedia IKEA 5.00 45
8 Lampada LG 15.00 100
1 Tavolo IKEA 20.00 15
6 Mensola Bosch 25.00 114
undici Poltrona Bosch 44.00 8
4 Letto IKEA 75,00 10
3 Divano IKEA 80,00 10
12 vaso di fiori Fiore intelligente 99,00 9
9 Costumista IKEA 99,00 10
13 In piedi IKEA 100,00 10

Otterremo lo stesso risultato se non specifichiamo l'ordinamento: salteremo la parola ASC.

4.5 ORDER BY su più colonne

L'operatore ORDER BYconsente di ordinare il risultato per diverse colonne. Questo può essere molto utile quando la prima colonna ha molti elementi duplicati. La forma generale di questo operatore è la seguente:

ORDER BY column 1 order 1, column 2 order 2, column 3 order 3

In altre parole, se dopo l'ordinamento in base alla prima colonna sono presenti diversi valori identici nelle vicinanze, vengono ordinati in base alla seconda colonna e così via.

Scriviamo una query che ordinerà i nostri prodotti per marca e per i prodotti con la stessa marca, in ordine decrescente del loro numero. Ecco come sarebbe la richiesta:

SELECT * FROM product
ORDER BY brand ASC, count
DESC

Otteniamo il seguente risultato della query:

id nome marca prezzo contare
6 Mensola Bosch 25.00 114
5 Guardaroba Bosch 125,00 15
10 Piatto Bosch 199,00 10
undici Poltrona Bosch 44.00 8
2 Sedia IKEA 5.00 45
1 Tavolo IKEA 20.00 15
9 Costumista IKEA 99,00 10
13 In piedi IKEA 100,00 10
4 Letto IKEA 75,00 10
3 Divano IKEA 80,00 10
8 Lampada LG 15.00 100
7 tv LG 350,00 4
12 vaso di fiori Fiore intelligente 99,00 9

Osserva attentamente la tabella: le sue righe sono ordinate per nome del marchio (ordine alfabetico) e le righe con lo stesso nome del marchio sono ordinate per numero di prodotto in ordine decrescente (ultima colonna).

Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti