MySQL: Introduzione e Sintassi PDF
Document Details
Uploaded by AffordableGroup7338
Università San Raffaele
Prof. M. Zaninelli
Tags
Summary
These are lecture notes from a course on MySQL and SQL. The notes cover the basics of database management, including types of data, creating databases and tables, and inserting data.
Full Transcript
Prof. M. Zaninelli MySQL Gli archivi digitali informatizzati MySQL 1 di 21 Prof. M. Zaninelli Introduzione MySQL è un DBMS relazionale Open Source m...
Prof. M. Zaninelli MySQL Gli archivi digitali informatizzati MySQL 1 di 21 Prof. M. Zaninelli Introduzione MySQL è un DBMS relazionale Open Source molto diffuso. Basti pensare che è presente in molte “distribuzioni” del sistema operativo LINUX costituendo, assieme ad altri applicativi (Aphace e PHP), il pacchetto di accessori denominato LAMP. Con MySQL è possibile creare e gestire: basi di dati di grandi dimensioni, Un numero di utenti elevato Una buona sicurezza e consistenza dei dati archiviati attraverso un controllo degli accessi e una articolata definizione di privilegi utente. MySQL 2 di 21 Prof. M. Zaninelli Caratteristiche E’ multipiattaforma (Linux, Windows, Apple) Si gestisce attraverso istruzioni date da riga di comando. In generale, attraverso tali comandi è possibile: – Avviare differenti applicativi che fanno parte del DBMS – Creare, popolare e gestire basi di dati attraverso comandi SQL. MySQL 3 di 21 Prof. M. Zaninelli MySQL e l’SQL In realtà, MySQL non utilizza delle vere e proprie istruzioni SQL standard. Esistono delle piccole differenze nell’implementazione dello standard sia nella struttura dei comandi che nella sintassi. Tutto ciò, comunque, accade anche in tutti glia altri DBMS. Ciascuno ha le sue specifiche peculiarità più o meno marcate. MySQL 4 di 21 Prof. M. Zaninelli Esempio -- -- Database: `o3_vet` -- -- -------------------------------------------------------- -- -- Struttura della tabella `users` -- CREATE TABLE `users` ( `USER_ID` smallint(6) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) NOT NULL DEFAULT '', `PASSWORD` varchar(20) NOT NULL DEFAULT '', `LEVEL` smallint(6) DEFAULT NULL, PRIMARY KEY (`USER_ID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ; -- -- Inserimento dati per la tabella `users` -- INSERT INTO `users` (`USER_ID`, `USER_NAME`, `PASSWORD`, `LEVEL`) VALUES (6, 'mauro', '1234', 1) MySQL 5 di 21 Prof. M. Zaninelli Sintassi: tipi di dati I dati di tipo TINYINT, SMALLINT, MEDIUMINT, INT e BIGINT rappresentano numeri interi composti rispettivamente da 1, 2, 3, 4 e 8 bytes FLOAT e DOUBLE rappresentano i numeri in virgola mobile I dati DECIMAL rappresentano i numeri "esatti“ Una colonna DATE può contenere date da '1000-01-01' (1° gennaio 1000) mentre una colonna DATETIME contiene una data e un'ora MySQL 6 di 21 Prof. M. Zaninelli Sintassi: tipi di dati CHAR è una stringa di lunghezza fissa mentre VARCHAR è una stringa a lunghezza variabile (TEXT si utilizza nel caso in cui si debba archiviare una lunga sequenza di caratteri) Una colonna ENUM può contenere uno dei valori elencati nella definizione MySQL 7 di 21 Prof. M. Zaninelli Sintassi: DB e Tabelle Per poter inserire delle Tabelle e dei dati nel DB occorre prima creare il DB con l’istruzione CREATE: CREATE DATABASE nome_db Successivamente si può procedere alla creazione delle Tabelle con l’istruzione CREATE TABLE: CREATE TABLE nome_tabella [(definizione,...)] MySQL 8 di 21 Prof. M. Zaninelli Sintassi: Tabelle Per definire una Tabella occorre dichiarare tutte le colonne (con relative proprietà) che compongono la Tabella: nome_colonna tipo [NOT NULL | NULL] [DEFAULT valore] [AUTO_INCREMENT] [PRIMARY KEY] AUTO_INCREMENT può essere usato con una colonna di tipo intero per avere un valore sequenziale generato automaticamente dal server per ogni riga inserita in tabella. PRIMARY KEY è la chiave primaria della tabella e, oltre a non ammettere duplicati, non può contenere valori NULL. MySQL 9 di 21 Prof. M. Zaninelli Sintassi: Dati L'inserimento dei dati in una tabella avviene tramite l'istruzione INSERT. INSERT [INTO] nome_tabella [(nome_colonna,...)] VALUES ((...),(...),(...),...) Con questa sintassi si possono inserire una o più righe nella tabella. Prima della clausola VALUES è possibile indicare i nomi delle colonne interessate dalla INSERT: a questi nomi corrisponderanno i valori compresi in ogni parentesi dopo VALUES. MySQL 10 di 21 Prof. M. Zaninelli Sintassi: Interrogazioni La SELECT è sicuramente l'istruzione più utilizzata in SQL, in quanto è quella che permette di svolgere il lavoro fondamentale che deve fare un database, cioè recuperare i dati memorizzati. Prima di analizzarne la sintassi è importante capire bene un concetto essenziale: ogni SELECT produce un risultato che è costituito, da un punto di vista logico, da una tabella, esattamente come quelle da cui va a leggere. MySQL 11 di 21 Prof. M. Zaninelli Sintassi: Interrogazioni Il risultato è composto, come ogni tabella, da righe e colonne. Le colonne sono quelle che si indicano nella SELECT, mentre le righe sono selezionate dalle tabelle originali in base alle condizioni espresse nella clausola WHERE. SELECT espressione,... [FROM tabelle] [WHERE condizioni] [GROUP BY {nome_colonna | espressione | posizione} [ASC | DESC] [ORDER BY {nome_colonna | espressione | posizione} [ASC | DESC] ,...] [LIMIT [offset,] numero_righe] MySQL 12 di 21 Prof. M. Zaninelli Sintassi: Interrogazioni La clausola FROM indica la tabella o le tabelle da cui i dati saranno estratti. La clausola WHERE determina le condizioni che saranno applicate ad ogni riga della tabella di input per decidere se tale riga farà parte del risultato La GROUP BY si usa per raggruppare i risultati sui valori di una o più colonne. La clausola HAVING svolge una funzione di selezione delle righe, esattamente come la WHERE. La differenza è che la WHERE viene applicata sulle righe delle tabelle originali, mentre la HAVING viene applicata sulle righe della tabella ottenuta a seguito dei raggruppamenti richiesti dalle GROUP BY. MySQL 13 di 21 Prof. M. Zaninelli Sintassi: Interrogazioni Con ORDER BY si indica su quali valori ordinare l'output. Se si aggiunge DESC i valori saranno ordinati in modo discendente, mentre il default è ascendente. La clausola LIMIT, infine, limita il numero di righe che saranno restituite. MySQL 14 di 21 Prof. M. Zaninelli Strumenti di gestione Esistono molti strumenti (anche grafici) che facilitano notevolmente la gestione di un DBMS MySQL, ossia, che consentono di creare DB, Tabelle ed inserire dati senza la necessità di scrivere istruzioni SQL. Tra quelli disponibili, PhpMyAdmin è probabilmente uno di quelli più diffusi in assoluto nel mondo del web. Si tratta infatti di uno strumento open source, scritto in PHP, che consente l'amministrazione di MySQL attraverso un'interfaccia web. PhpMyAdmin è sviluppato da una comunità autonoma rispetto a MySQL AB ed è un'applicazione web-based che necessita quindi di un server web in grado di eseguire PHP. La sua comodità principale consiste nel consentire l'amministrazione del database anche da remoto senza la necessità che il server sia aperto a connessioni remote: infatti è il server web su cui viene eseguito PhpMyAdmin che effettua le connessioni a MySQL. Di conseguenza è sufficiente installare il software sul web server locale rispetto a MySQL per poter poi effettuare l'amministrazione attraverso un qualsiasi browser. MySQL 15 di 21 Prof. M. Zaninelli PhpMyAdmin Si tratta di uno strumento open source, scritto in PHP, che consente l'amministrazione di MySQL attraverso un'interfaccia web. E’ un'applicazione web-based, che necessita di un server web in grado di eseguire PHP, in grado di creare e gestire delle connessioni locali a MySQL. Praticamente, installando PhpMyAdmin sul server su cui è installato MySQL è possibile amministrare il DBMS attraverso un qualsiasi browser. MySQL 16 di 21 Prof. M. Zaninelli PhpMyAdmin Va inoltre sottolineato che, nelle più comuni installazioni LINUX, quando si installa MySQL attraverso il pacchetto LAMP, il PhpMyAdmin è di solito già incluso. E la stessa cosa accade anche quando si utilizzano delle pacchetti compilati per essere installati localmente su PC Windows o Apple Nota: per maggior dettaglio si rimanda alla parte conclusiva della lezione relativa all’installazione degli applicativi descritti. MySQL 17 di 21 Prof. M. Zaninelli Installazione MySQL viene distribuito in differenti formati (si va dalle versioni da compilare a quelle autoinstallanti). La procedura di installazione dipende ovviamente dal tipo di SO su cui si intende lavorare. MySQL 18 di 21 Prof. M. Zaninelli Installazione Nel caso si voglia installare MySQL in locale su PC Windows o Apple esistono dei pacchetti autoinstallanti molto comodi. Si segnala: – EasyPHP (http://www.easyphp.org) – XAMPP (http://www.apachefriends.org/en/xampp.html) MySQL 19 di 21 Prof. M. Zaninelli Installazione Cosa installa con questi pacchetti: – Il DBMS MySQL – L’applicativo PhpMyAdmin, per gestire il DBMS attraverso una facile interfaccia grafica. – L’interprete del linguaggio PHP, necessario a far funzionare il PhpMyAdminm, ma non solo … – Aphace, il web server in grado di “pubblicare” pagine web e/o applicativi web-based (come il PhpMyAdmin e la piattaforma didattica che state utilizzando nel caso sia presente nell’istallazione anche il modulo PHP) MySQL 20 di 21 Prof. M. Zaninelli Installazione Questa suite di programmi è molto diffusa. Molte delle applicazioni web che necessitano anche di archiviare dei dati la utilizzano. Per citare solo un esempio, la piattaforma didattica che state utilizzando è un’istallazione Moodle che funziona su un web server configurato con gli stessi programmi applicativi. MySQL 21 di 21