



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti sui comandi SQL e esempi
Tipologia: Schemi e mappe concettuali
1 / 5
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Attivare laragon Tasto destro – maria db – versione – maria db Laragon – bin – mysql – maria db – bin -> mysql proprietà e copio percorso Copio percorso Nell promt dei comandi: cd percorso mysql –u root Per creare databse: CREATE DATABASE nomedb Per creare le varie tabelle: O mettiamo nometabella.nomedb Oppure all’inizio metto USE nomedb per dire che mi sto riferendo sempre al database varchar è l’equivalente delle stringhe varchar(30) il 30 indica la dimensione della stringa CHARSET=latin1; Riguarda il set di caratteri Nella shell incollo la tabella -> invio -> la tabella è stata creata Per vedere la struttura di una certa tabella: describe studenti; Con l’auto_increment se per esempio non specifico la matricola, questa viene calcolata automaticamente. Per inserire dati in una tabella: INSERT INTO nomeTabella (nomeColonna1, nome Colonna2, …) VALUES (elementoColonna1, elementoColonna2, …); Le scritte e le date vanno tra singoli apici. Le date: anno-mese-giorno. Da shell: Per dire di far vedere tutte le colonne dalla tabella: select * from studenti; Il default dell’enumerativo è il primo che viene nominato: genere enum('M','F') NOT NULL, Quindi in questo caso il default è ‘M’. INSERT INTO studenti (cognome, nome, data_nascita, genere, nazione, e_mail) VALUES ('De Chirico', 'Giorgio','1888-07-10','X', default,default); Qui da errore perché ‘X’ come genere non è ammesso perché gli unici valori messi nell’enum sono ‘M’ e ‘F’. I commenti: 1° modo:
-- verifico la modalità operativa 2° modo:
3° modo: /* commento */ Imposta il valore di una variabile: SET @variabile show warnings; select * from studenti; Cancellare un database: DROP DATABASE nome_db È un comando che ELIMINA TUTTE le tabelle di quel database MI posiziono sul database dbscuola (quindi non sono obbligat a specificare nella query anche il nome del db): use dbscuola; Show tables; per vedere le tabelle presenti Select * from studenti; Describe studenti; info che riguardano la struttura della tabella Show create table studenti; per ottenere istruzione sql che genere la tabella Show create table studenti \G i dati vengono organizzati in maniera diversa (Backquote (la tilde) ALT * 96) Ciò che è tra [ ] non è obbligatorio, quindi ci possono essere o no, è opzionale. Opzioni tabella: come verrà salvata e quali funzionalità implementa. Indice: data la chiave restituisce la funzione di accesso al report. AUTO_INCREMENT : se non assegno un valore, lo fa il dbms: prende il massimo valore che ho e fa +1. UNSIGNED : viene usato in combinazione con gli interi ZEROFILL : per indicare al database di inserire 0 di riempimento a sinistra fino a riempire la lunghezza del cam po. NOTNULL : (vincoli integrità di COLONNA ) nel sql va sempre specificato. DEFAULT : da usare quando non viene dato un input. Se il campo che non ha un valore può avere nullo, allora viene assegnato NULL come valore. Se invece NON può assumere il valore NULL, se è abilità la modalità STRICT allora mysql o mariadb va a prendere un valore di default, se previsto, altrimenti da errore. Nel caso di enum il default è il primo valore specificato. Per i numeri e per le date è 0. Per le stringhe è la stringa vuota. Vincoli di integrità di COLONNA :
[WHERE where_condition] [GROUP BY {col_name| expr| position} [ASC | DESC], … [HAVING where_condition] [ORDER BY {col_name| expr| position} [ASC | DESC], ...] [LIMIT {[offset,] row_count| row_countOFFSET offset}] La SELECT definisce quali sono le colonne che vogliamo visualizzare. SELECT matricola, cognome, nome FROM studenti; Per rinominare una colonna uso l’operatore AS: SELECT campo AS ‘ nuovo_nome_campo’, campo1, campo2 FROM nome_tabella; L'AS si può omettere: SELECT campo ‘nuovo_nome_campo’, campo1, campo2 FROM nome_tabella; Quando ci sono due termini senza virgola, il secondo diventa un alias del primo. Ordinamento dei dati con ORDER BY: SELECT campo ‘nuovo_nome_campo’, campo1, campo FROM nome_tabella ORDER BY campo_di_ordinamento (es. cognome) ASC (ordinamento ascendente), campo_di_ordinamento_2 (es. Nome) DESC (ordinamento discendente); Se il verso di ordinamento non è specificato, il predefinito è ascendente. 04/10/ UPDATE nome_tabella SET campo = valore WHERE condizione = valore LIMIT 1 ; Installo su vs code MySQL (con simbolo delfino) DELETE FROM nome_tabella [ WHERE condizione = valore ] Vincoli di integrità referenziale: (slide 20 del file SQL 2) Coinvolgono le relazioni esistenti di tipo 1:N oppure 1:1 tra le tabelle. ALTER TABLE : serve a MODIFICARE la struttura / lo schema della tabella. ON DELETE e ON UPDATE : RESTRICT e NO ACTION : sono la stessa cosa, nel senso che l’impostazione di default è RESTRICT. CASCADE : in cascata, quindi quando viene fatta una modifica sulla chiave primaria riferita, vengono modificate anche le chiavi esterne (per esempio: se elimino una matricola dalla tabella studenti elimino anche le sue assenze). SET NULL : se elimino lo studente, le assenze le devo eliminare? Posso lasciarle, ma devo impostare NULL la chiave esterna, solo se la FOREIGN KEY può assumere valore nullo. In mysql per visualizzare il tipo di tabella: SHOW TABLE STATUS FROM db_name Si possono creare indici anche su tabelle già esistenti: CREATE [UNIQUE| FULLTEXT] INDEX nome_indice ON nome_tabella ({ nome_campo [(lunghezza)] [ASC| DESC]} [, …]) Show index from nome_stabella \G
L’indice si può eliminare con: DROW INDEX indice ON nome_tabella