web

SQL (structure query language)
Istruzione Select utilizzata per selezionare record da una o più tabelle.
 Istruzione Update utilizzata per aggiornare campi di uno o più record.
Istruzione Insert Into utilizzata per l'inserimento nel Database di nuovi record. 

         il mio computer  
 

Istruzione Select

Pubblicato il: 4-5-2020

Ultima Modifica: 6-1-2024

La clausola Select seleziona record all'interno di una o più tabelle. La sintassi minima di Select è descritta di seguito.

SELECT campi FROM tabella

Dove in campi è possibile inserire uno o più campi separati da una virgola, e in tabella il nome di una o più tabelle sempre separate da una virgola. Se nel parametro campi si desidera inserite tutti i campi è possibile farlo semplicemente inserendo un simbolo di asterisco (*).

Di solito raramente si desidera selezionare tutti i record della tabella, ma solitamente con la clausola Select si chiede di selezionare e restituire solo un certo numero di record, ad esempio se abbiamo una tabella dove in ogni record sono contenuti tre campi, dove il primo si chiama campo1 ed è previsto per inserire un nome di persona, il secondo si chiama campo2 ed è previsto per inserire un cognome e il terzo si chiama campo3 per inserire un numero di telefono, tutti di tipo stringa e si desidera estrarre dalla tabella solo i record dove il campo  campo1 è uguale a "paolo" allora alla clausola SELECT si deve aggiungere un'altro comando che specifica la condizione necessaria. Quì sotto l'esempio.

SELECT * FROM tabella WHERE campo1 = "paolo"

Questo esempio in pratica dice seleziona tutti i campi di ogni record dalla tabella tabella quando il campo campo1 è uguale a "paolo"

Notare le virgolette che contengono il nome paolo, queste sono necessarie quando il valore di un determinato campo è rappresentato da una stringa, nel caso di numeri non si devono mettere.

In questa istruzione di selezione nella condizione WHERE si è utilizzata la riga campo1 = "paolo". Questa istruzione seleziona solo quei record che nel campo campo1 contengono esattamente "paolo", se il campo contiene "Paolo" il record non sarebbe stato selezionato perchè il simbolo di uguale seleziona solo quei record che nel campo campo1 contengono esattamente quello che c'è scritto. Se si desidera selezionare i record senza tener conto di maiuscole e minuscole al posto dell'operatore di =(uguale) si deve utilizzare l'operatore LIKE. Vediamo sotto l'esempio descritto sopra ma con l'operatore LIKE.

  SELECT * FROM tabella WHERE campo1 LIKE "paolo"

Con questa SELECT verrebbero selezionati tutti i record i cui campi campo1 contengono "paolo" "PAOLO" "pAoLO". In pratica non c'è distinzione tra maiuscole e minuscole.

Nei campi di tipo stringa è possibile usare un simbolo di percentuale(%) molto importante, in quanto consente di selezionare una sottostringa contenuta in una stringa

SELECT * FROM tabella WHERE campo1 LIKE "%"

Questa query (interrogazione) seleziona tutti i campi di ogni record restituito da tabella, quando campo1 contiene qualsiasi stringa o quando la stringa è vuota.

 

SELECT * FROM tabella WHERE campo1 LIKE "domani%"

Questa query seleziona tutti i campi di ogni record restituito quando campo1 contiene all'inizio la sottostringa domani ( o DomaNi visto che si sta usando l'operatore LIKE) seguita da niente altro o da qualsiasi altra sottostringa.

 

SELECT * FROM tabella WHERE campo1 LIKE "%domani"

Qesta query fà la stessa cosa di quella precedente con la differenza che seleziona tutti i campi per ogni record restituito  quando campo1 contiene la sottostringa domani preceduta da niente o qualsiasi altra sottostringa.

 

Adesso pensandoci bene, se si vuole costruire una query dove vengano selezionati tutti i campi per ogni record restituito quando all'interno di campo1 che contiene ad esempio una stringa sia presente una determinata sottostringa. basta fare così come quì sotto descritto..

 SELECT * FROM tabella WHERE campo1 LIKE "%domani vado%"

Questa query seleziona tutti i campi per ogni record restituito quando in campo1 è presente la sottostringa domani vado, che può trovarsi all'inizio della stringa, alla fine, o anche in mezzo alla stringa.

Istruzione UPDATE

Con questo comando è possibile aggiornare i dati di uno o più campi già presenti all'interno della tabella. Ad esempio è possibile che in una tabella come quella creata precedentemente chiamata impiegati, uno degli impiegati già presente al suo interno cambi numero di telefono, ecco quindi che è necessario un aggiornamento. Vediamo quindi la sintassi di questo comando:
UPDATE tabella SET campo=valore WHERE condizione, quindi supponendo applicato alla tabella impiegati avremmo:
UPDATE impiegati SET telefono="3394578396" WHERE telefono="3392864211"
in questo caso come condizione ho usato il campo telefono ma nulla vieta ad esempio di usare qualsiasi altro campo.
La seguente istruzione (o comando) per una maggiore leggibilità può anche essere scritta in questo modo:
UPDATE impiegati
SET
telefono="3394578396"
WHERE telefono="3392864211"

è anche possibile in una unica istruzione UPDATE aggiornare più campi, quindi dopo la clausola SET basta inserire più campi separati da una virgola.

Istruzione INSERT INTO

Con questo comando è possibile aggiungere all'interno della tabella nuovi record. Vediamo sotto la sintassi:
INSERT INTO tabella (elenco campi) VALUES (elenco valori) ad esempio vediamo sotto una aggiunta nella tabella impiegati:
INSERT INTO impiegati (nome, cognome, telefono) VALUES ("Michele" , "Danzi" , "3348958310")
ovviamente il campo id trattandosi di un campo che si autoincrementa non è necessario coinvolgerlo. Anche qui vediamo come scrivere l'istruzione nel modo più leggibile.
INSERT INTO impiegati
(
nome,
cognome,
telefono
)
VALUES
(
"Michele",
"Danzi",
"3348958310"
)