MySQL Command Line Client: operazioni fondamentali



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

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

Corso sul linguaggio SQL

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Laboratorio di Basi di Dati e Web

Corso sul linguaggio SQL

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

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

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

IL DAT A B A S E DI ALGE B R A N D O

Introduzione a MySQL

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

Definizione di domini

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

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

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

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

2104 volume III Programmazione

19. LA PROGRAMMAZIONE LATO SERVER

Gestione delle tabelle

GENERAZIONE PREVENTIVI

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

NUOVO SISTEMA AGGIORNAMENTO DA FYO

Lavorare con MySQL Parte Prima.

Laboratorio di Basi di Dati

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

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Unità 2.1 Comandi sui database

MODULO 5 ACCESS Basi di dati. Lezione 4

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

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

Concetti fondamentali dei database database Cos'è un database Principali database

DBMS (Data Base Management System)

User Tools: DataBase Manager

OSSIF WEB. Manuale query builder

Istruzioni DML di SQL

Esercitazione: Il DBMS MySQL

Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/ fax: 041/

GERARCHIE RICORSIVE - SQL SERVER 2008

Guida all uso di Java Diagrammi ER

Basi di Dati: Corso di laboratorio

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Volumi di riferimento

Raggruppamenti Conti Movimenti

Corso di Informatica

SQL. Alcune note sulla definizione dei dati

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

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

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

MySQL Database Management System

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

MySQL Database Management System

Al giorno d oggi, i sistemi per la gestione di database

PHP e Structured Query Language

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

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

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at] .

CONCETTO DI ANNIDAMENTO

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

Lezione 8. Metadati, Viste e Trigger

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Dispensa di database Access

Informatica per le discipline umanistiche 2 lezione 10

STAMPA UNIONE DI WORD

Database 3 affitto veicoli. Testo del quesito

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

<?php include './include/page.php';

Esercitazione sulle libpq - libreria C per PostgreSQL

developed by Emanuele De Carlo

Database 1 biblioteca universitaria. Testo del quesito

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Access Control List (I parte)

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Esercizio data base "Biblioteca"

GESGOLF SMS ONLINE. Manuale per l utente

GUIDA ALLA GESTIONE DEI TICKET REV. 1. guida_gestione_tck_rev1.doc - 1 di 9

Access. P a r t e p r i m a

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

FISH Sardegna ONLUS. Manuale Utente.

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Amministrare MySQL con PhpMyAdmin

Lezioni di Laboratorio sui Data Base

Introduzione. Alberto Fortunato Pag. 1 di 137

Introduzione ai Sistemi di Gestione di Basi di Dati XML

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

1.0 GUIDA PER L UTENTE

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Interrogare il database: lavorare con le query

Sistema per il monitoraggio della Spesa Sanitaria

Transcript:

MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge le sue operazioni mediante righe di comando. Coloro i quali hanno avuto la possibilità di interagire con il vecchio sistema operativo della Microsoft, MS-DOS o coloro i quali si trovano ad utilizzare le shell, messe a disposizione dai sistemi Linux, possono avere una certa idea di come questo strumento funzioni. Specialmente all inizio, il non aver tutto graficamente a disposizione in modo pressoché immediato, come un interfaccia grafica può fare, potrebbe risultare decisamente frustrante e indurre gli utenti ad utilizzare il Query Browser. Tuttavia, per quelli che volessero approfondire le proprie conoscenze, qui vengono illustrati i principali comandi per eseguire agevolmente tutte le istruzioni base necessarie, facendo uso del CLC. Con un po di esercizio, capito il meccanismo, tutto diventa decisamente semplice. OPERAZIONI PRELIMINARI Una volta dato l avvio al CLC, appare una richiesta di immissione password. Acceduti al sistema compare una schermata come questa: Enter password: ***** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version 5.0.20a-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. Le prime danno informazioni di carattere generale sul sistema, ma in particolare è importante ricordare che le istruzioni devono venir terminate dal carattere punto e virgola. Possiamo volere, a questo punto, o accedere ad un database già esistente o crearne uno nuovo. CREAZIONE ED ELIMINAZIONE DI UN DATABASE Per la creazione di un nuovo database, la sintassi da utilizzare è semplice. Viene fatto uso del comando create database seguito dal nome del nuovo db. mysql> create database nuovodatabase; Query OK, 1 row affected (0.24 sec) Una volta dato l invio, un messaggio del sistema ci informa del fatto che il nostro nuovo database è stato creato correttamente. Viceversa se si vuole eliminare il database, vi è il comando drop database seguito dal nome del db: mysql> drop database nuovodatabase; Query OK, 0 row affected (0.24 sec) ACCEDERE AD UN DATABASE ESISTENTE Per poter visualizzare tutti i database creati e disponibili, bisogna utilizzare il comando show databases, che non richiede parametri. Il risultato è simile a questo: mysql> show databases; Database information_schema mysql test nuovodatabase 4 rows in set (0.12 sec) per poter far uso di uno di questi, bisogna utilizzare il comando use seguito dal nome del database che si intende usare: mysql> use nuovodatabase; Database changed da qui è possibile effettuare una molteplicità di operazioni tra le quali agire sulle tabelle e far query.

CREAZIONE E DISTRUZIONE DI TABELLE La sintassi da utilizzare per la creazione delle tabelle è esattamente uguale a quella che sarebbe necessario immettere nel Query Browser. Nello specificare gli attributi bisogna far attenzione a non mettere il punto e virgola prima che tutta la tabella sia stata descritta. Supponiamo di voler creare una tabella di nome miatabella avente un attributo di tipo carattere chiave primaria, un secondo attributo di tipo carattere che non deve esser nullo, un terzo attributo numerico e un attributo di tipo data. mysql> create table miatabella ( -> att1 char(10) primary key, -> att2 varchar(10) not null, -> att3 numeric(3), -> att4 date -> ); Query OK, 0 rows affected (0.25 sec) Da notare è che i vari attributi sono sempre divisi tramite virgola, i ritorni a capo sono del tutto opzionali (MySQL ignora spazi bianchi), il punto e virgola chiude la descrizione della tabella e permette all interpretatore, una volta dato l invio, di eseguire le varie operazioni. Se durante la scrittura si dovesse commettere qualche errore allora possiamo cancellare tutto ciò che è stato fin lì immesso attraverso la sequenza \c. Attenzione: \c non deve trovarsi all interno dei caratteri di una stringa, altrimenti non verrà eseguito. mysql> create table miatabella2 ( -> att1 cher(10) promory kei, -> \c mysql> L eventuale presenza di errori verrebbe logicamente segnalata qualora si utilizzasse il punto e virgola, dopo che il codice è stato mandato in esecuzione. mysql> create table miatabella2 ( -> att1 cher(10) promory kei, -> ); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'miatabella2(att1 cher(10) promory kei)' at line 1 Analogamente alla sintassi utilizzata per il database, è possibile eliminare una tabella mediante il comando drop table seguito dal nome della tabella. mysql> drop table miatabella; Query OK, 0 rows affected (0.06 sec) INFORMAZIONI SULLA TABELLA Qualora avessimo bisogno di ricordarci che struttura abbia una tabella da noi creata, possiamo ricorrere all istruzione show columns from, specificando contestualmente il nome della tabella. mysql> show columns from miatabella; Field Type Null Key Default Extra att1 char(10) NO PRI att2 varchar(10) NO att3 decimal(3,0) YES att4 date YES 4 rows in set (0.00 sec) Tipicamente la prima colonna denominata Field indica il nome degli attributi presenti, la colonna Type, invece, dà informazioni sul tipo dell attributo, Null segnala se è possibile utilizzare il valore nullo per un determinato attributo, Key se l attributo specifico è chiave e, nel caso, di che genere, Default se l attributo ha un valore predefinito, Extra per tutte le informazioni accessorie.

POPOLARE UNA TABELLA Dopo aver creato la tabella, bisogna operare con delle query e inserire delle tuple. L operazione di inserimento (o insert) proviene direttamente dall algebra relazionale e si realizza praticamente attraverso l istruzione insert così strutturata: insert into nometabella values(valore1, valore2,, valoren); Nel caso particolare, che abbiamo fino ad adesso considerato, l istruzione sarebbe: insert into miatabella values( Alessandro, Magno, 1, 2003-12-05 ); mysql> insert into miatabella values( Alessandro, Magno, 1, 2003-12-05 ); Query OK, 1 row affected(0.06 sec) Attenzione: l ordine di inserimento dei valori delle tuple deve avvenire in concordanza con la posizione delle colonne. mysql> insert into miatabella values( Antonietta, Maria, 1789-07-14, 5 ); ERROR 1366 (HY000): Incorrect decimal value: '1789-07-14' for column 'att3' at row 1 Se non si vuole rispettare l ordine di inserimento è possibile utilizzare la seguente sintassi: insert into nometabella(att2, att1, att3,, attn) values(valore2, valore1, valore 3,, valoren); In questo caso l ordine che deve esser rispettato è quello specificato all interno delle parentesi che seguono il nome della tabella. Infine se non disponiamo di un informazione o non vogliamo che venga specificata, allora è lecito far uso della seguente sintassi (laddove N-k è il numero degli attributi a cui esplicitamente non assegniamo un valore): insert into nometabella(att1, att2,, attn-k) values(valore1, valore2, valoren-k); Attenzione: questa pratica è consentita unicamente se per gli attributi per i quali non si specifica un valore è stato preventivamente assegnato un valore di default. VISUALIZZARE IL CONTENUTO DI UNA TABELLA Dopo aver popolato la tabella, si rende necessario visualizzare ciò che è contenuto all interno di essa. Questo genere di operazione è effettuabile mediante una query ed in particolare servendosi del comando select, che ha questa sintassi: select colonnedavisualizzare from nometabella; Se vogliamo visualizzare tutto il contenuto della tabella, cioè se la schermata deve essere comprensiva di tutte le colonne che abbiamo creato allora, utilizziamo il carattere * (si legge all) dopo select, in particolare nel nostro caso: select * from miatabella; mysql> select * from miatabella; -------+------+-------------+ -------+------+-------------+ -------+------+-------------+ 1 row in set (0.00 sec) Se abbiamo intenzione di sapere unicamente i valori di una (o più) particolare colonna allora l istruzione diventa: select att1,, attk from nometabella; mysql> select att1 from miatabella; att1 Alessandro 1 row in set (0.00 sec) Accanto all istruzione di select possiamo aggiungere vari parametri o condizioni per visualizzare le informazioni con un determinato criterio oppure per restringere il campo delle tuple. Per decidere quale parametro utilizzare per ordinare le tuple è possibile aggiungere in coda all istruzione precedente order by e specificare, dopo di esso, mediante quale attributo deve essere eseguito l ordinamento.

select attributi from nometabella order by attributo; mysql> select * from miatabella order by att4; Antonietta Maria 2 1789-07-14 3 rows in set (0.00 sec) In questo caso l ordine viene stabilito mediante la data. Aggiungendo all istruzione di select where stabiliamo la condizione o le condizioni che permettono la visualizzazione di alcune tuple e non di altre. select attributi from nometabella where condizione; mysql> select * from miatabella where att3=1; La condizione all interno della query impone la visualizzazione di quelle tuple che hanno come valore impostato per l attributo att3 uguale a 1. Suggerimento: order by e where possono essere utilizzati in simultanea. MODIFICARE IL CONTENUTO DI UNA TABELLA Ogni DBMS permette la modifica delle informazioni. Il MySQL utilizza l istruzione update con la seguente sintassi: update nometabella set valoredamodificare where condizione; attraverso il sintagma set stabiliamo quale valore debba esser modificato e mediante where quale (o quali) valori devono esser modificati. Se la mia tabella è questa: Antonietta Maria 2 1789-07-14 Posso voler decidere di modificare tutte le tuple che hanno valore 1 per att3 e sostituirlo con 3. In particolare la mia istruzione sarebbe la seguente: mysql> update miatabella set att=3 where att3=1; Query OK, 2 rows affected (0.03 sec) Rows matched: 2 Changed: 2 Warnings: 0 ELIMINARE TUPLE Possiamo eliminare tutte le tuple con l istruzione delete, mediante la seguente sintassi: delete from nometabella; Volendo invece restringere il campo, inseriamo in coda il sintagma where: delete from nometabella where condizione;

mysql> delete from miatabella where att3=2; Query OK, 1 row affected (0.06 sec) mysql> select * from miatabella; Alessandro Magno 3 2003-12-05 Costantino Cesare 3 0313-02-09 VISUALIZZARE INFORMAZIONI DA PIÙ TABELLE Mediante l operazione di select possiamo visualizzare informazioni derivanti da più tabelle ed unirle. Poniamo di avere due tabelle così strutturate: Alessandro Magno 3 2003-12-05 Costantino Cesare 3 0313-02-09 id code id2 1 uno 1 2 due 1 3 tre 1 Se volessimo far corrispondere ad ogni nome e cognome un valore della colonna code, servendoci dell id, potremmo scrivere la seguente query: mysql> select miatabella.att1, miatabella.att2, miatabella2.code -> from miatabella, miatabella2 -> where miatabella.att3=miatabella2.id; att1 att2 code Alessandro Magno tre Costantino Cesare tre In generale dopo il comando select scegliamo le informazioni da visualizzare, indichiamo da quali tabelle le informazioni devono provenire mediante from ed infine con where la condizione che permette alle tabelle di collegarsi tra loro. Questi appunti sono stati scritti da hunter85 per il sito http://www.quellidiinformatica.org. Il presente documento non è da considerarsi privo di errori, mancanze o quant altro, pertanto è consigliata una lettura critica del testo e non limitata a questo. Per segnalazioni o suggerimenti è possibile utilizzare il servizio di messaggistica messo a disposizione della comunità.