La prova pratica del concorso scuola 2023 per la classe di concorso B016 prevede l’estrazione da parte della specifica Commissione di una delle seguenti tracce:
- analisi di un problema concreto e relativa progettazione e sviluppo di una base di dati e dell’interfaccia Web necessaria per interagire con essa;
- realizzazione di una semplice interfaccia Web alla base di dati che permetta di eseguire in modo interattivo e personalizzato, alcune delle
query previste al punto precedente, ovvero alcune query standard di popolamento, cancellazione, modifica e ricerca nella base di dati.
In questa guida ci occupiamo della seguente traccia:
Realizzazione di alcune interrogazioni significative in linguaggio SQL; per ciascuna di queste interrogazioni, oltre al codice, va riportata una descrizione testuale di cosa l’interrogazione si propone di fare.
Che cosa ci serve?
Possiamo usare un hosting (anche gratuito come altervista) oppure creare un ambiente di sviluppo locale. In ogni caso abbiamo la necessità di avere un database SQL con un programma grafico come PhpMyadmin.
Creare Database
In sql lanciamo la query:
CREATE DATABASE cineteca;
Questa query permette di creare il database assegnando un nome personalizzato.
Creare Tabella
Generato il database affinché abbia una sua utilità è necessario disporre di almeno una tabella.
create table film (id int not null auto_increment primary key, titolo varchar(255), regia varchar(255), anno int(4));
La query consente di creare una tabella assegnandoli un nome personalizzato e definendone la struttura dichiarando numero, nome e tipo di campo.
Il primo campo dichiarato deve essere sempre un campo ID (da identità) con chiave primaria che accetta solo valori univoci di tipo intero (int) e autoincrementati e non può essere lasciato vuoto.
Nel caso specifico tutti gli altri campi sono di tipo varchar accettando caratteri alfanumerici fino a un massimo di 255.
Attenzione! il nome del campo è personalizzabile ma non può contenere lo spazio, può essere sostituito dal simbolo underscore _
Inserire Dati nella Tabella
insert into cineteca (titolo, regia, anno) values (“Arancia meccanica”, “Stanley Kubrick”, “1971”), (“Barry Lyndon”, “Stanley Kubrick”, “1975”);
La query è formata da due parti, la prima specifica i campi dove inserire i dati, la seconda i dati da introdurre.
Attenzione! i dati da inserire devono essere digitati tra virgolette ‘ ‘o doppie virgolette “” e separati dalla virgola.
Qualora si usa la virgoletta ed è necessario inserire parole che prevedono l’apostrofo questo deve essere preceduto dallo slash \.
Visualizzare Dati
Select * from cineteca;
Visualizza tutti i dati presenti nella tabella.
Visualizzare Dati con condizione
select * from cineteca where regia=”Stanley Kubrick”;
Mostra tutti i dati della tabella dove sono presenti titoli diretti da Stanley Kubrick.
select * from cineteca where attore=”Sylvester Stallone” and regia=”Sylvester Stallone”;
Mostra tutti i dati dove sia presente sia nel campo attore sia nel campo regia il nome indicato. Devono essere soddisfatti entrambi i criteri con l’uso dell’operatore logico AND.
Attenzione! sostituendo l’operatore logico AND con OR basterà che solamente uno dei due criteri di ricerca sia soddisfatto.
Diversamente usando l’operatore logico NOT esclude dalla ricerca proprio il criterio definito. Quindi nell’esempio precedente saranno visualizzati tutti i dati dove non è presente Stallone.
select * from cineteca where titolo like “b%”;
Vedere tutti i titoli che iniziano con una lettera specifica.
Se invece mettiamo %b% mostrerà tutti i titoli che all’interno presentano quel carattere o insieme di caratteri.
select nomecampo from cineteca;
Vedere tutti i dati della tabella limitata a un campo specifico, ad esempio mostrare solo i registi, i titoli o gli anni oppure separandoli con la virgola è possibile vedere solo quei campi.
Visualizzare campi nulli o non nulli
Select * from cineteca where titolo is null
Fa vedere tutti i dati purché il titolo sia vuoto. Si può usare anche con il contrario IS NOT NULL.
Visualizzare dati compresi tra due valori
Select * from cineteca where anno between 1980 and 1990;
Mostra i dati tra un intervallo definito. Va usato insieme all’operatore logico AND.
Mentre se usiamo NOT BETWEEN chiediamo di cercare tutti i dati fuori da quel range.
Select * from cineteca where anno not between 1980 and 1990;
Seleziona Dati non duplicati
select distinct regione from serieA;
Fa vedere solamente dati non ripetuti per quel campo definito.
Ordinare i dati
Select * from cineteca order by titolo;
Mostra tutti i dati ordinati in modo crescente del campo titolo.
Aggiungo alla fine DESC ordina in maniera decrescente; ASC ordina in modo crescente.
Si possono usare anche più campi di ordinamento
select * from cineteca order by anno, titolo ASC;
In questo modo ordina prima per anno e poi per titolo in modo crescente.
Statistiche
Select count(*) from cineteca;
Conta il numero totale di record.
Select max(anno) from cineteca
Calcola il valore massimo di un campo numerico.
Sostituendo max con min ne calcola il minimo, mentre sostituendo con sum ne fa la somma e con avg calcola la media aritmetica.
Aggiungere un campo ad una tabella
alter table cineteca add column attore varchar(255);
Permette di aggiungere in coda un nuovo campo definendone nome e tipo.
Eliminare database, tabella, campo, record
Attenzione! Si tratta di un’azione irreversibile prima di procedere, se non si è sicuri, effettuare un backup integrale del database.
Drop database nomedatabase;
Drop table nometabella;
alter table cineteca drop column attore;
delete from cineteca where regia=”Charles Chaplin”;
delete from nometabella; SVUOTA LA TABELLA, ELIMINA TUTTI I RECORD!
Modificare campo, record
alter table cineteca rename column attrice to actress;
update serieA set città=”Salernitana” where città=”Bologna”;
Il nuovo buono Premium è sottoscrivibile dal 14 novembre, la nuova liquidità che concorre, invece, inizia dall'8 novembre. Ulteriori dettagli…
Sono venuto a conoscenza il 13/11/2024 del 3% tramite posta elettronica ma la scadenza indicata è del 14/11/2024 . Quale…
Ho lo stesso problema con una sim poste mobile: tracker non abilitato. Sarò costretto a fare il reso.
L'ho ricaricato completamente, ma non sono mai riuscita ad accenderlo.
grazi delle vostre informazioni mi son state utili, visto che nel mio caso sono vent'anni che non adopero il computer…