Gestionale con MySql e Openoffice – 2 prima tabella mysql

Una volta che abbiamo installato libreoffice e mysql (con workbench e  connettore ODBC) e che abbiamo creato in mysql il nostro schema  (“nuovoschema”), procediamo a creare la prima tabella.

Questa prima tabella non sarà quella definitiva.

Differisce dalla definitiva per la colonna ragione sociale che qui contiene una stringa (cioè un testo) mentre nella definitiva conterrà un numero.
Questo permette anche a chi non è esperto di database relazionali di capire il mecanismo.

Accediamo quindi alla workbench di mysql e di lì clicchiamo sopra la connessione che abbiamo creato in precedenza.

Vogliamo creare una tabella fatture che contenga i seguenti campi:

1) numero interno, 2) ragione sociale, 3) data fattura, 4)
imponibile, 5) iva, 6) totale fattura, 7) note.

Una tabella di un database non è come una tabella in excel. In particolare si  distingue per due cose: le colonne possono contenere solo la tipologia di dato  che si imposta all’inizio: se si sceglie che una colonna contenga dei numeri interi  non potrà avere nessuna riga con numeri con la virgola o con parole. Se si prova  a farlo il server dà errore.
La seconda cosa è che ogni riga è contraddistinta da un indice univoco: un  numero che nessun’altra riga ha, quindi se sai quel numero puoi chiedere al  database: dammi la riga corrispondente a questo numero, e il database può  risponderti coi dati che ti servono.
Di solito si imposta questo indice in modo che si incrementi da solo, senza  bisogno che l’utente digiti niente.
Questo indice di solito non appare mai nelle tabelle di libre/open office, le tabelle  su cui effettivamente si lavora perchè ha solo una funzione interna

Nella workbench si selezionata il nostro schema nuovoschema.
Per creare la tabella si clicca sull’iconcina della tabella poi si inserisce

nome: “fatture”,
collation: latin1 – default collation
Engine: MyIsam

MyIsam è l’unico database che permette di impostare in ciacuna tabella una  cartella di salvataggio diversa da quella generale di mysql.
Invece innodb è l’unico che permette di utilizzare le foreign key.

Poi si procede a creare le colonne:
Di norma il nome della prima colonna lo si lascia come è impostato,  quindi “idfatture”, con tipo di dati: “int”. si spunta su “PK”(primary key) su “NN” (not null) e su “AI”(auto-increment).
In questo modo si è impostato la prima colonna come chiave primaria che si auto imposta incrementandosi ad ogni nuova riga

Poi si clicca sulla seconda riga e mettiamo il nome: num_fat, si imposta come datatype: “INT” e si clicca su NN [ossia: tutte le fatture devono avere un numero interno]
3^ riga: nome: “ragionesociale_fat” Datatype: “varchar(45)” e si clicca su
NN
4^ riga: nome: data_fat, tipo: “date”
5: nome: imponibile_fat, tipo: “double”
6: IVA_fat, double
7: totale_fat, double

Per finire impostiamo i valori per difetto dei campi

`imponibile_fat`
`IVA_fat`
`totale_fat`

Si va sulla colonna “default” e si inserisce 0 (zero) per ciascuno di questi  campi. Questo farà sì che se l’utente non digita niente, mysql  riempie quei campi col valore zero.
Se non viene impostato un valore di default, non si impone la clausola  NN (not-null) e quando l’utente non digita niente, verrà inserito il valore NULL, che non è un valore. E’ un non-valore, può essere un problema in  alcuni casi, ad esempio quando si devono sommare i valori di una  colonna, non è detto che NULL venga inteso come uno zero.

Dato che se due tabelle hanno campi con lo stesso nome possono crearsi  problemi (ad es tabella fatture ha il campo “data” e la tabella ddt ha il suo campo  “data”), è sempre meglio quando si danno i nomi, di qualificare con un suffisso o  in altro modo il campo in modo da rendere improbabile l’esistenza di due
campi con lo stesso nome.
E’ sempre preferibile, se si devono usare numeri con la virgola usare il tipo  double: il tipo float è molto casareccio e può creare problemi anche se risparmia qualche byte di spazio.

Una volta impostato tutto, clicchiamo su apply.
Appare una schermata con la traduzione in comandi sql di tutto quello che abbiamo impostato per via grafica.
Se clicchiamo di nuovo su Apply, il server esegue i comandi e crea la  nostra tabella, con i campi che abbiamo chiesto.
Deve apparire la scritta che dice che i comandi sono stati eseguiti  correttamente e si può cliccare close.

Al posto di procedere per via grafica si può inserire nella zona testo della  workbench i comandi sql corrispondenti e cliccare sull’icona con il lampo. Il risultato è lo stesso.
Addirittura si potrebbe teoricamente fare a meno della workbench e digitare i comandi dalla riga di comando sql. Tuttavia la workbench consente una maggiore intuitività e  rapidità anche nel modificare le tabelle.

Se tornando alla schermata del nostro schema non vediamo la tabella appena creata, serve cliccare il tasto “aggiorna schema” (per chi ce l’ha).

Adesso se si fa doppio clic sulla tabella creata (o se no tasto destro-> edit table data) appare una schermata con i dati della tabella (ancora nessuno: li si possono inserire facendo doppio clic sui campi con scritto NULL, scrivendoci quello che si vuole e infine cliccando su “apply” o  l’iconcina con la spunta verde)
La data deve essere inserita con il formato AAAA-MM-GG, tipo 2009-08-31.

Lo stesso succede se sulla parte bianca della schermata cancello
tutte le scritte e scrivo:

USE nuovoschema;
SELECT * FROM fatture;

e clicco sull’icona con il lampo (quello senza barrette o lenti)

SELECT * – indica che nel risultato dovranno apparire tutte le colonne
FROM fatture – indica che i dati vanno presi dalla tabella fatture

SELECT * FROM table; E’ il più elementare comando SQL

Ogni comando sql che permette di vedere i dati di una o più tabelle si chiama query. SELECT * FROM table; è la query più semplice.

Annunci

3 responses to “Gestionale con MySql e Openoffice – 2 prima tabella mysql

  • Massimo

    ho eseguito alla lettera tutti i comandi ma, dopo aver creato la prima tabella, mi riporta il messaggio d’errore:
    ERROR 1064: 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 ‘COMMENT ”)

  • controlamatrice

    Se ho capito giusto l’errore ti appare sulla workbench, quando clicchi per creare la nuova tabella.

    Se è così, mi sembra ragionevole pensare che si tratti di un errore di apici/virgolette: ad esempio quando c’è scritto

    3^ riga: nome: “ragionesociale_fat”

    le virgolette ci sono solo per indicare che si tratta del nome di un campo ma non vanno inserite quando si digita nella workbench.
    Noto adesso che l’uso delle virgolette potrebbe aver dato luogo a incomprensioni perché in effetti mi rendo conto che non le ho usate in maniera uniforme nel testo.

    Non so se questa possa essere la soluzione, è la prima cosa che mi viene in mente, altrimenti servirebbe che mi dettagliassi meglio cosa hai fatto prima che appaia l’errore.

  • controlamatrice

    Hai risolto?

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: