MySQL: principali comandi



Похожие документы
Basi di Da( MySQL & MySQL Workbench. Anna Monreale

Introduzione a MySQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

DBMS: MySQL CORSO DI BASI DI DATI 2014/2015

Preparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL

Corso sul linguaggio SQL

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

DBMS (Data Base Management System)

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

Laboratorio di Basi di Dati e Web

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Lavorare con MySQL Parte Prima.

Laboratorio di Basi di Dati

DB2 Universal Database (UDB) DB2 Universal Database (UDB)

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

MANUALE ESSENZIALE MYSQL

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

Unità 2.1 Comandi sui database

Esercitazione: Il DBMS MySQL

Programmazione lato server PHP + MySQL

Strumenti Software per Esercitazioni (ambiente Windows) Basi di Dati L LS Ing. Gestionale

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Dott. Gianni Nigita Dott. Sebastiano Di Bella. 8 aprile

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

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

Lezione 8. Metadati, Viste e Trigger

SQL (STRUCTURED QUERY LANGUAGE)

MySQL Command Line Client: operazioni fondamentali

Lezione 9. Applicazioni tradizionali

LINGUAGGIO SQL. Introduzione

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Informatica per le discipline umanistiche 2 lezione 10

SQL (STRUCTURED QUERY LANGUAGE)

Architettura MySQL. E Motori MySQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Il linguaggio SQL: DDL di base

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

MySQL Database Management System

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

Corso sul linguaggio SQL

SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

Introduzione a phpmyadmin

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

Basi di dati e Sistemi informativi aziendali

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

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

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

SQL PER LA DEFINIZIONE DI BASI DI DATI

DBMS. DataBase Management System. L. Vigliano

PHP e Structured Query Language

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

Basi di Dati: Corso di laboratorio

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

Esercitazione sulle libpq - libreria C per PostgreSQL

Basi di Dati: Corso di laboratorio

DUE GRUPPI DI COMANDI

PROGRAMMA DI CLASSE 5AI

Creazione manuale delle tabelle (mediante scrittura del codice SQL corrispondente)

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

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

Lezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3. Lo Standard SQL

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

ISTRUZIONI INSTALLAZIONE PMANGO

Definizione di domini

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Lezione V. Aula Multimediale - sabato 29/03/2008

Basi di Dati. S Q L Lezione 5

Esercitazione 01: DDL e DML di base

Gestione delle tabelle

MYSQL CLUSTER. Di Stefano Sardonini

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

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.

Linguaggio SQL: fondamenti. Basi di dati. Elena Baralis Pag. 1. Linguaggio SQL: fondamenti. Sistemi informativi. Introduzione

MagiCum S.r.l. Progetto Inno-School

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

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

Corso di Informatica (Basi di Dati)

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

1 - MANUALE INSTALLAZIONE ED USO DEL SOFTWARE Di Sergio Capretta

Tool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A

L interfaccia a riga di comando di MySql

L architettura di un DBMS

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

Corso di Laboratorio di Basi di Dati

Indice. Introduzione PARTE PRIMA L ARCHITETTURA DEI DATABASE 1

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

19. LA PROGRAMMAZIONE LATO SERVER

2104 volume III Programmazione

Capitolo 1 Oracle: la società e il software Terminologia Oracle Corporation: la storia L offerta corrente 12 1.

Транскрипт:

MySQL: principali comandi Ing. Davide Vetrale Sommario Introduzione a MySQL e alle sue licenze Connessione/Disconnessione da un database MySQL Creazione utenti Programmi client SQL in MySQL DDL e DML Tipi di dati Load data

Caratteristiche DBMS Relazionale Struttura Client/Server Motore MULTITHREAD un thread fisso controlla le connessioni in ingresso un thread attivo per ogni connessione Interfaccia ODBC Portabile su qualsiasi piattaforma Novità della versione 5 MySQL 5 Performance Reliability Ease of Use Stored Procedures Cluster query push down Query optimizations Archive Engine InnoDB storage improvements SQL Mode Triggers View Precision Math Distributed Transactions Cluster object support Instance Manager Information Schema Cursors Enhanced GUI Tools Migration Toolkit Faster Better Increased Manageability

MySQL Licenses MySQL viene rilasciato con: Licenza GNU GPL : Utilizzo open source di MySQL; le applicazioni basate su MySQL sono distribuite con la stessa licenza. Licenza commerciale (conosciuta come OEM License) Utilizzo commerciale di MySQL; le applicazioni basate su MySQL possono essere distribuite senza sorgenti. MySQL Business Model Free Community Edition Software tested by Community Basic MySQL AB testing Available under GPL Release early & often cycle (3 to 4 weeks) Bleeding edge No Maintenance SLA Not supported No ISV certification Great for open source developers & technology enthusisats Subscription MySQL Network Software fully tested, certified and optimized by MySQL AB PRO Edition (Transactions enabled) RTU is via the GPL Enterprise release cycles (6 to 9 months) Annual Subscription Update Advisor Technical Alert Advisor Knowledge Base Production Support Indemnification Great for enterprise customers OEM License Perpetual, non_gpl License Software fully tested, certified and optimized by MySQL AB Sales to OEMs/ISVs and Enterprises One time fee, non-gpl nonviral license, no product updates Optional Support Agreement available (break/fix) Developer Support via Prof Svcs Updates via optional support agreement Great for OEMs, ISVs & VARs

Architettura Connessione/disconnessione Per connettersi al server è necessario fornire login e password shell> mysql -h host -u user -p Enter password: ******** host and user rappresentano: l hostname dove risiede MySQL; lo username di un utente che possiede un account sul server; -p specifica al server la richiesta della password all utente.

Connessione/disconnessione C:\>mysql -u davide -p Enter password: ******* Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 to server version: 5.0.27-community-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Per avere l help: C:\>mysql help Per uscire: mysql> QUIT Creazione di un utente CREATE USER USER davide@localhost; CREATE USER USER davide@localhost IDENTIFIED BY BY 'password'; DROP DROP USER USER davide@localhost; SET SET PASSWORD = PASSWORD('pw'); richiedono il permesso CREATE USER è possibile per chiunque sia collegato come utente non anonimo SET SET PASSWORD FOR FOR davide@localhost = PASSWORD('pw'); richiede il permesso UPDATE sul database mysql 1. Crea un utente senza password 2. Crea un utente con password 3. Elimina un utente 4. Imposta la password 'pw' per l'utente collegato 5. Imposta la password 'pw' per l'utente davide@localhost

Creazione di un account Tipicamente viene eseguita dall utente root, mediante l uso del comando GRANT. C:\>mysql -u root -p Enter password: ******* mysql> GRANT ALL ON nomedb.* to -> user @ localhost IDENTIFIED BY -> nome_password ; Connessione da un client Per consentire la connessione da un server specifico. mysql> GRANT ALL ON nomedb.* to -> user @ nome_server IDENTIFIED BY -> nome_password ;

MySQL Administrator Amministrazione del database degli utenti operazioni pianificate carico del server Query Browser Esecuzione di svariati tipi di query

Comandi MySQL SELECT INSERT UPDATE DELETE CREATE ALTER DROP RENAME TRUNCATE COMMIT ROLLBACK SAVEPOINT GRANT REVOKE Estrazione Dati Data manipulation language (DML): servono a manipolare i dati (interrogazione, modifica, rimozione) Data definition language (DDL): servono a definire le tabelle, e gli elementi accessori Controllo Transazioni Data control language (DCL): servono a definire il controllo dell accesso dei dati contenuti nel database. Prompt di MySQL Prompt mysql> -> '> "> `> Significato Pronto per ricevere un comando; In attesa della successiva linea per un comando multiple-line. In attesa della successiva linea per un comando multiple-line, apice di apertura nella riga precedente ('). In attesa della successiva linea per un comando multiple-line, doppio apice di apertura nella riga precedente ("). In attesa della successiva linea per un comando multiple-line, che fa riferimento ad un identificatore che inizia con backtick (`).

CREATE DATABASE CREATE {DATABASE SCHEMA} [IF NOT EXISTS] db_name [create_specification [, create_specification]...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name CREATE DATABASE crea un database con il nome dato Per poter eseguire il comando bisogna avere il privilegio CREATE per creazione database DROP DATABASE DROP {DATABASE SCHEMA} [IF EXISTS] db_name Cancella il database e tutte le sue tabelle

CREATE TABLE CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement] CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(] LIKE old_tbl_name [)]; CREATE TABLE crea una tabella nel db Per poter eseguire il comando bisogna avere il privilegio CREATE per le tabelle CREATE TABLE (cont.) Nella CREATE TABLE può essere usata la clausola TEMPORARY. Una tabella TEMPORARY è visibile solo nella connessione corrente all uscita la tabella è rimossa. Bisogna avere il privilegio CREATE TEMPORARY TABLES. Può essere specificata la parola chiave IF NOT EXISTS per evitare errori se la tabella già esiste. Nota: non viene verificato che la tabella che si sta creando ha la stessa struttura di quella esistente.

Memorizzazione tabelle MySQL memorizza il formato di ogni tabella come un file.frm nella directory del db. Possono essere creati anche altri file Nel caso di tabelle di tipo MyISAM il sistema crea tre file per una tabella tbl_name: tbl_name.frm File di definizione del formato tbl_name.myd Data file tbl_name.myi Index file Storage Engine Storage Engine Descrizione ISAM HEAP (MEMORY) MERGE MyISAM (MRG_MyISAM) BDB (BerkleyDB) InnoDB Primo storage engine di MySQL I dati della seguente tabella sono solamente memorizzati nella memoria principale Una collezione di tabelle MyISAM usate come una singola tabella Storage engine binario portabile. Evoluzione di ISAM Tabelle transaction-safe con page locking Tabella transaction-safe con lock di righe e chiavi esterne Questi Engine non supportano le chiavi esterne Questi si

MyISAM MyISAM è lo storage engine di default da MySQL 3.23. E basato sullo storage ISAM. Ogni tabella MyISAM è memorizzata all interno del disco con tre file. Per specificare in maniera esplicita la tipoligia di tabella desiderata bisogna usare il comando ENGINE o TYPE. CREATE TABLE t (i INT) ENGINE = MYISAM; CREATE TABLE t (i INT) TYPE = MYISAM; Storage Engine Alcuni storage consentono di specificare il tipo di indice (struttura dati) durante la creazione della tabella. Bisogna usare la parola chiave USING type_name. MyISAM InnoDB MEMORY/HEAP BTREE BTREE HASH, BTREE Esempio: CREATE TABLE lookup (id INT, INDEX USING BTREE (id)) ENGINE = MEMORY;

Selezione di un database Comandi show - use mysql> show databases; +--------------+ Database +--------------+ sampledb mysql test +--------------+ 3 rows in set (0.00 sec) SHOW: fornisce informazioni riguardo ai database, alle tabelle, colonne, indici, ecc. Fornisce anche informazioni riguardo il server. USE: seleziona il database corrente sul quale si intende operare. mysql> use sampledb; Database changed Esempio: creazione di un database Si effettua l accesso come DBA: C:\ mysql u sampledba p Si crea il proprio database; mysql> CREATE DATABASE stdxxxxxdb; mysql> use stdxxxxxdb; Si crea un account per il proprio db: GRANT ALL ON stdxxxxxdb.* to -> stdxxxxx @ localhost IDENTIFIED BY -> password ;

Esempio: creazione di un database Successivamente l utente crea le tabelle che desidera: CREATE TABLE studenti (Matricola integer primary key, NomeCognome char(50) not null, DataNascita date not null, LuogoNascita char(50), Sesso char, idcorsolaurea int not null references CorsiLaurea(idCorsoLaurea) ); Tipi di dati: Numerici Tipo Byte Minimum Value Maximum Value (Signed/Unsigned) (Signed/Unsigned) TINYINT[(M)] 1-128 127 0 255 SMALLINT [(M)] 2-32768 32767 0 65535 MEDIUMINT [(M)] 3-8388608 8388607 0 16777215 INT [(M)] 4-2147483648 2147483647 0 4294967295 BIGINT [(M)] 8-9223372036854775808 9223372036854775807 0 18446744073709551615 FLOAT[(M,D)] 4 +/-1.175494351E-38 +/- 3.402823466E+38 DOUBLE [(M,D)] 8 +/-2.2250738585072014E-308 +/-1.7976931348623157E+308

Tipi di dati: testo Tipo Max size Byte CHAR[(M)] M M VARCHAR(M) M L+1 TINYBLOB/ TINYTEXT 2 8-1 L+1 BLOB/TEXT MEDIUMBLOB/MEDIUMTEXT LONGBLOB/LONGTEXT ENUM( value1, value2, ) SET ( value1, value2, ) 2 16-1 2 24-1 2 32-1 65535 elementi 64 elementi L+2 L+3 L+4 1 o 2 byte 1,2,3,4 o 8 byte L rappresenta la lunghezza effettiva del testo Tipi di dati: date e time Tipo Range Byte DATE 1000-01-01 9999-12-31 3 DATETIME TIMESTAMP[(M)] TIME YEAR [(M)] 1000-01-01 00:00:00 9999-12-31 23:59:59 Da 19700101000000 ad una data nel 2037-838:59:59-838:59:59 1901 al 2155 per YEAR(4) 8 4 3 1

LOAD DATA LOAD DATA [LOW_PRIORITY CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY '\t'] [[OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '\\' ] ] [LINES [STARTING BY ''] [TERMINATED BY '\n'] ] [IGNORE number LINES] [(col_name,...)] Il comando LOAD DATA INFILE consente il caricamento di una tabella ad alta velocità leggendo le righe da un file di testo. LOAD DATA Caricamento dei dati: mysql> LOAD DATA LOCAL INFILE studenti.txt INTO TABLE studente; N.B. Se il file di testo viene generato su alcuni editor Windows potrebbe essere necessario aggiungere LINES TERMINATED BY '\r\n';

LOAD DATA mysql> LOAD DATA INFILE studenti.txt -> INTO TABLE studente LINES STARTING BY yyy"; Quindi un file contenente yyy"row",1 blablabla yyy"row",2 Può essere letto e verrà caricato come ( row,1), ( row,2)