Introduzione a MySQL. Definizione SQL. Esempio

Documenti analoghi
PHP e MySQL. Scripting server-side per accesso a DB MySQL

Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione

2011 Politecnico di Torino 1

PHP e Structured Query Language

Structured Query Language

Connessione con MySQL

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

MY SQL Guida MySQL di base

MySQL Database Management System

Laboratorio di Basi di Dati Per Bioinformatica

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2016/2017

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Laboratorio di Basi di Dati

Basi di Da( MySQL & MySQL Workbench. Anna Monreale

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

Creare tabelle in MySQL

Laboratorio di Basi di Dati

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

Tabelle esempio: Impiegato/Dipartimento

Un client su arduino invia i dati acquisiti ad un database

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2014/2015

Corso base SQLite. Copyright (c) 2015 Antonio Gallo

APPUNTI DI PHP : V INFORMATICA SEZIONE G

La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti.

Interazione 1 linguaggio PHP con DB MySQL

Esercitazione: Interrogazioni SQL

Caratteristiche dei linguaggi per Database

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PROGETTAZIONE DI DATABASE Linguaggio SQL

Utilizzando per la connessione al database un driver di Tipo 1:

Gestione di un questionario (originariamente memorizzato in un DB) in XML

1. Schema concettuale della base di dati PROGETTO CONCETTUALE SCHEMA ER

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Tabelle esempio: Impiegato/Dipartimento

Manuale SQL. Manuale SQL - 1 -

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Utilizzare PHP 5. Le variabili GET e POST

Soluzione esercitazione 01

LE NOVITÀ Eppur si muove...61 Applicazioni ad alta disponibilità...62 Sicurezza...62

SQL - Structured Query Language

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Elena Baralis 2007 Politecnico di Torino 1

Gestire MySQL tramite PHP

Introduzione a MySQL

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Query SQL - singola tabella

Elementi di gestione di dati con MS Access 2000

Esempio di database relazionale con l utilizzo del prodotto MySQL

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

DATABASE PER IL WEB. Programmazione Web 1

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server)

ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA

ASP e Database. A cura di Michele Cavalieri

Il programma di oggi. Gli indici. Ottimizzazione. Metodi per la Gestione dei Dati (lezioni di laboratorio)

Soluzione traccia Informatica simulazione d esame di Stato Istituto GAUSS. 15/04/2013

Basi di Dati: Corso di laboratorio

Laboratorio di Basi di Dati e Web

OBIETTIVI MINIMI Anno scolastico TIC-TIT. 1. Foglio elettronico: funzioni fondamentali (Excel)

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

PHP 5. Accesso a database

MS Access: Tutorial Tabelle, Relazioni

Corso di Web Programming

PHP: form, cookies, sessioni e. Pasqualetti Veronica

APPUNTI DELLA LEZIONE DI DATABASE DEL 27/10/2016 (POMERIGGIO)

PHP + MySQL. Programmazione lato server. Cosa vediamo. MySQL. MySQL: comandi utili. MySQL: accesso al server. web server.

Attività Didattica Svolta

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Basi di Dati Corso di Laura in Informatica Umanistica

Laboratorio di Basi di Dati

Applicazione client-server in PHP con database MySQL

Laboratorio di Basi di Dati

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

(1) Collegarsi all indirizzo (più un codice numerico comunicato durante l esercitazione)

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Laboratorio di Basi di Dati Esercizio 8.4/9.1

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

SECONDA PARTE.omissis. . omissis

MySQL Database Management System

MYSQL. Avviare MySQL Per avviare il server MySQL basta lanciare il Servizio Mysql presente (aggiunto) tra i servizi di sistema.

2. Costruire un database con Apache, PHP e MySql

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP)

Corso di Basi di Dati

Laboratorio di Progettazione Web

CAPITOLO V. DATABASE: Il modello relazionale

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Gestione Orario Lezioni: Schema del Database

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

PHP + MySQL. Programmazione lato server. Cosa vediamo. web server. database server. request. response. web client

Transcript:

Introduzione a MySQL Moreno Marzolla Dipartimento di Informatica Università Ca' Foscari di Venezia marzolla@dsi.unive.it http://www.dsi.unive.it/~marzolla Definizione Una tabella (o relazione) è costituita da Un insieme di colonne Ciascuna colonna è etichettata con un nome, e tutti i dati di quella colonna hanno lo stesso tipo (intero, stringa, ecc.) Un insieme di righe Ciascuna riga prende il nome di record, e rappresenta una informazione memorizzata nel database Una base di dati relazionale (database relazionale) è un insieme di tabelle Moreno Marzolla Tecnologie Web 2 SQL SQL è un linguaggio standard per la manipolazione di database relazionali Creazione/cancellazione/modifica di tabelle Creazione/cancellazione/modifica di colonne da tabelle Inserimento e rimozione di record dalle tabelle Interrogazioni complesse per recuperare tutte le informazioni in una o più tabelle che soddisfano determinati criteri Quale è l'articolo più costoso che abbiamo in magazzino? Moreno Marzolla Tecnologie Web 3 Esempio 1 Manzoni I Promessi Sposi 10.00 2 Asimov Io, Robot 12.00 3 Alighieri La Divina Commedia 8.00 Moreno Marzolla Tecnologie Web 4

Creare tabelle con SQL create table nome_tabella ( nome_col_1 tipo attributi, nome_col_2 tipo attributi, nome_col_3 tipo attributi, primary key (nome_col), index nome_indice(nome_col) ) Tipi di colonne di testo char(lunghezza) testo di lunghezza fissa, max 255 caratteri varchar(lunghezza) testo di lunghezza variabile, max 255 caratteri tinytext Equivalente a varchar(255) text testo di lunghezza variabile, max 65535 caratteri mediumtext, longtext testo di lunghezza ancora più lunga Moreno Marzolla Tecnologie Web 5 Moreno Marzolla Tecnologie Web 6 Tipi di colonne numerici / 1 int [unsigned] numero intero compreso tra 0 e 4294976295 se unsigned, altrimenti tra -2147483648 e 2147483647 tinyint [unsigned] numero intero compreso tra 0 e 255 se unsigned, altrimenti tra -128 e 127 mediumint [unsigned] / bigint [unsigned] altri intervalli... float / double numero con la virgola; double ha precisione (numero di cifre dopo la virgola) doppia rispetto a float Moreno Marzolla Tecnologie Web 7 Tipi di colonne per data e ora date Data in formato AAAA-MM-GG datetime Data in formato AAAA-MM-GG OO:MM:SS timestamp(size) Memorizza automaticamente l'ora della modifica più recente apportata ad una riga. La dimensione è un numero tra 2 e 14 (vedi libro) time Archivia l'ora nel formato OO:MM:SS year[ ( 2 4 ) ] Memorizza un anno in formato a 2 oppure 4 cifre Moreno Marzolla Tecnologie Web 8

Esempio / 1 1 Manzoni I Promessi Sposi 10.00 2 Asimov Io, Robot 12.00 3 Alighieri La Divina Commedia 8.00 CREATE TABLE libri ( Codice INT UNSIGNED not null AUTO_INCREMENT, Autore VARCHAR (255) not null, Titolo VARCHAR (255) not null, Prezzo FLOAT not null, PRIMARY KEY (Codice), INDEX (Codice) ) Moreno Marzolla Tecnologie Web 9 Inserire valori nelle tabelle insert into nome_tabella (nome_col_1, nome_col_2,...) values (valore_1, valore_2,...) insert into libri (Autore, Titolo, Prezzo) values ( Verga, I Malavoglia, 18.0) Moreno Marzolla Tecnologie Web 10 SELECT Interrogare un database Viene utilizzata per estrarre delle colonne da una o più tabelle Le colonne così selezionate sono usate per comporre una tabella (che però non esiste realmente nel database) Esempio / 1 Le seguenti interrogazioni sono equivalenti: select * from libri select Codice, Autore, Titolo, Prezzo from libri Entrambe producono: 1 Manzoni I Promessi Sposi 10.00 2 Asimov Io, Robot 12.00 3 Alighieri La Divina Commedia 8.00 Moreno Marzolla Tecnologie Web 11 Moreno Marzolla Tecnologie Web 12

Esempio / 2 select Autore, Prezzo from libri Autore Prezzo Manzoni 10.00 Asimov 12.00 Alighieri 8.00 Omero 10.00 Omero 11.00 La clausola where E' possibile dire alla select che deve mostrare solo le righe nella tabella risultato che soddisfano una determinata condizione, definita dalla clausola where select nome_col_1, nome_col_2,... from tabella where condizione Moreno Marzolla Tecnologie Web 13 Moreno Marzolla Tecnologie Web 14 Esempio / 1 Tutti i libri che costano più di 10 euro select * from libri where Prezzo > 10.0 2 Asimov Io, Robot 12.00 Tutti i libri scritti da Omero select * from libri where Autore = Omero Esempio / 2 Tutti i libri di prezzo compreso tra 9.0 e 12.0 euro select * from libri where Prezzo > 9.0 and Prezzo < 12.0 1 Manzoni I Promessi Sposi 10.00 Moreno Marzolla Tecnologie Web 15 Moreno Marzolla Tecnologie Web 16

Esempio / 3 Il titolo e l'autore di tutti i libri scritti da Manzoni oppure da Omero select Autore, Titolo from libri where Autore= Manzoni or Autore= Omero Autore Manzoni Omero Omero Titolo I Promessi Sposi Iliade Odissea Moreno Marzolla Tecnologie Web 17 Forme Normali / Prima FN Ogni colonna deve contenere valori atomici Solo un valore per cella Niente array simili Ogni colonna deve avere un nome univoco Ogni tabella deve avere un insieme di valori che identificano univocamente ciascuna riga Questa è nota come la chiave primaria della tabella Non devono esserci righe duplicate Non devono esserci gruppi di dati ripetuti Moreno Marzolla Tecnologie Web 18 Forme Normali / Seconda FN Il valore di ciascuna colonna deve dipendere da tutta la chiave primaria Non solo da una sua parte Forme normali / Terza FN Tutte le colonne devono dipendere direttamente dalla chiave primaria Non sono ammesse dipendenze transitive company_name company_location company_ceo company_addr BigCo Company San Francisco Bill Hurt 1121 43rd St LittleCo Company LA LittleCo Company 4444 44th st Esempio: Chiave primaria multicolonna Se BigCo Company apre una nuova filiale in un'altra città, il capo della compagnia è comunque lo stesso e va ripetuto Moreno Marzolla Tecnologie Web 19 Moreno Marzolla Tecnologie Web 20

Relazione uno-a-molti Relazioni uno-a-uno Moreno Marzolla Tecnologie Web 21 Moreno Marzolla Tecnologie Web 22 Relazioni molti-a-molti Connessione al DB con PHP mysql_connect("localhost", "nobody","password") or die ("Could not connect to database"); mysql_select_db("guestbook") or die ("Could not select database"); La connessione dura solo per la pagina PHP corrente Se l'utente apre una nuova pagina, occorre nuovamente connettersi al DB PHP può anche gestire connessioni persistenti Moreno Marzolla Tecnologie Web 23 Moreno Marzolla Tecnologie Web 24

Inserire informazioni $query = "insert into guestbook (name,location,email,url,comments) values (`$name', `$location', `$email', `$url', `$comments')"; mysql_query($query) or die (mysql_error()); Ricordarsi di connettersi prima al DB! Interrogare il DB $result = mysql_query("select * from guestbook") or die (mysql_error()); while ($row = mysql_fetch_array($result)) { echo "<b>name:</b>"; echo $row["name"]; echo $row["location"]; echo $row["email"]; echo $row["url"]; echo $row["comments"]; } mysql_free_result($result);?> Nomi di colonne del DB Moreno Marzolla Tecnologie Web 25 Moreno Marzolla Tecnologie Web 26 Interrogare il DB / 1 Interrogare il DB / 2 $db = mysql_connect("localhost","root", "") or die ("Could not connect to localhost"); mysql_select_db("test", $db) or die ("Could not find test"); $db_name ="topics"; $query = "select * from $db_name"; $result = mysql_query($query); $num_fields = mysql_num_fields($result); //create table header echo "<table border = 1>"; echo "<tr>"; for ($i=0; $i<$num_fields; $i++) { echo "<th>"; echo mysql_field_name ($result, $i); echo "</th>"; } echo "</tr>"; //end table header Moreno Marzolla Tecnologie Web 27 Moreno Marzolla Tecnologie Web 28

Interrogare il DB / 3 //create table body echo "<tr>"; for ($i=0; $i<$num_fields; $i++) { echo "<td valign = top>"; echo mysql_field_type ($result, $i). "<br> \n"; echo "(". mysql_field_len ($result, $i). ")<br> \n"; echo mysql_field_flags ($result, $i). "<br> \n"; echo "</td>"; } echo "</tr>"; //end table body echo "</table>"; Moreno Marzolla Tecnologie Web 29