




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
MySQLi e linguaggio SQL, approfondimenti su DML, DDL e QL
Tipologia: Appunti
1 / 8
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





Materia INFORMATICA Materia 2.0 ʟᴀʙᴏʀᴀᴛᴏʀɪᴏ Tipo ᴍᴀᴛᴇʀɪᴀʟᴇ Created time Last edited time Created by Last edited by Tag Persone 📌 PRINCIPALE ✅ ꜱᴛᴀᴛᴜꜱ In progress Data/Scadenza Relazione File URL Carattere Related to Scuola (Relazione)
@December 14, 2022 12:37 PM @January 26, 2023 12:40 AM
Avviare MySQL Creazione database DDL Creazione tabelle Tipi Vincoli Eliminazione tabella Aggiunta di un campo Eliminazione di un campo modifica di un campo DML Inserimento Eliminazione dati Update dati QL Proiezioni e Selezioni Condizioni
dalla shell andare in xampp/mysql/bin ed eseguire mysql specificando il nome del computer sul quale lavorare e l’utente
c:\xampp\mysql\bin mysql -h localhost -u root
per creare una scorciatoia, creare un file .bat nella cartella xampp che esegua le istruzioni. così eseguendo il file creato dalla shell si avvierà mysql.
MariaDB [(none)]> show databases; //per visualizzare i database presenti +--------------------+ | Database | +--------------------+| information_schema | | mysql | | performance_schema | | phpmyadmin | | scuola| test || +--------------------+ 6 rows in set (0.017 sec) MariaDB [(none)]> use test; //utilizzare uno dei database presenti Database changed MariaDB [test]> show tables; //visualizzare le tabelle del database Empty set (0.000 sec) MariaDB [test]>
tra parentesi è specificato il database su cui si lavora. tutti i comandi devono terminare con ;
MariaDB [test]> create database scuola1; Query OK, 1 row affected (0.002 sec) MariaDB [test]> use scuola1; MariaDB [scuola1]>
il DDL opera sul grado
MariaDB [scuola1]> create table interrogazioni ( -> ID_interrogazione int auto_increment primary key, //definire la primary key, intera, auto incrementante (surrogata) -> cognome_alunno varchar(20) not null unique, //not null = vincolo di obbligatorietà dell'attributo, non può essere null -> data_interrogazione date not null,
data in italiano:
elt(dayofweek(curdate()), 'dom','lun','mar','mer','gio','ven','sab');
auto_increment = il campo sarà auto-incrementante, non andrà inserito, si usa con le pk e la rende surrogata. primary_key = definisce la primary key, campo obbligatorio e univoco
not null = vincolo obbligatorietà del campo, non potrà essere null, se non si mette potrà essere null. default = definisce un valore di default per un campo se non si mette check = filtrare l’inserimento dei dati, che dovranno rispettare le condizioni specificate. unique = definisce una chiave candidata, che identifica in modo univoco, oltre la pk, la tupla
drop table nome_tabella
alter table nome_tabella add campo3 int not null;
alter table nome_tabella drop campo1;
è come se lo ridefinissi da zero.
alter table nome_tabella change column nome_vecchio nome_nuovo varchar(15) not null; //eventuali vincoli
Il DML opera sulla cardinalità
inserimento delle tuple.
insert into interrogazioni (nome_alunno, data_interrogazione, tipo, voto, scelta) values( -> 'Daniela Bertozzi', '2022-12-08', 'O', 4.50, 'S', -> 'Lina', 20221214, null, 8.50, 'N' //anche scrivendo il tipo date senza gli apici //verrà comunque scritto correttamente in tabella -> ); +-------------------+------------------+---------------------+------+------+ | ID_interrogazione | nome_alunno | data_interrogazione | tipo | voto |
select * from tabella where campo1==2 and campo2=='B'; //selezione select campo1,campo2,campo3 from nome_tabella; //proiezione select campo1,campo2,campo3 from nome_tabella where campo1==2 and campo2=='B'; //selezione + proiezione
La proiezione è diversa dalla selezione perché vengono scelti solo alcuni campi della tabella. la select può contenere: campo as nuovo_campo (il campo visualizzato nella query sarà quello specificato, non cambia effettivamente nella tabella). distinct nome_campo: rimuove i duplicati
dopo where posso trovare: order by nome_campo desc/asc : per ordinare in base a un campo in ordine decrescente o crescente
le condizioni possono contenere: operatori relazionali: <,>,=. il diverso è <>, non != operatori logici: and , or , not operatore like operatore between … and … operatore in : elenco [ where campo in (1,2,3,4) ]
select distinct materia as new_materia from studenti where classe in ('1AIN','2AIN') and (media between 1 and 5) and (nome like '%a') order by materia desc;
select * from studenti where datan is not null;
Risorse