BTM

BASIC TRADING MULTIMEDIA

Archive for July, 2006

Depliant Stargayte

copertina.jpg

Tipo di lavoro:
Desktop Publishing
Anno di realizzazione: 2006

Descrizione:
realizzazione di un depliant informativo quadricromia con doppia piega. Studio grafico e realizzazione del pacchetto per al stampa.

Formato:
“piegato” A5 (cm 14.85 x 21)
“aperto” A3 (cm 29.7 x 42)

Download:
Depliant informativo Stargayte A3 (formato .pdf 168Kb bassa risoluzione)

  • 0 Comments
  • Filed under: Portfolio
  • Esempi pratici di MySql

    Ieri, in occasione di una goirnata di formazione con Joe Yates, ho preso un po’ di appunti sull’utilizzo base di MySql che magari possono risultare utili a chi si approccia a questo DB per la prima volta. E’ stato immaginato di dover creare un database di Film. Questo non vuole essere un tutorial; sono dei semplici appunti.

    Le prove sono state fatte su una distribuzione live (Knoppix 5.0); in questo caso è stato necessario avviare il demone come utente “sudo -s”:

    /usr/sbin/mysqld &

    #1 l’elenco dei comandi

    help
    /h

    #2 elenco dei database presenti sulla macchina

    show databases

    #3 creare un database

    create database films;

    #4 selezionare il database

    use films u films

    #5 creare tabelle (nome colonna - tipo di dato)

    CREATE [nome tabella] ([nome campo] [tipo], [nome campo] [tipo], primary key([campo]));
    CREATE films (titolo text, anno int); CREATE TABLE registi (id int auto_increment, nome text, cognome text, primary key(id));

    il tipo di dato serve a definire che tipo di valore il db si aspetta nella query
    può essere un campo testuale, o numerico, o binario ecc
    auto_increment genera un campo progressvo
    primary key(id) è il campo primario che non è duplicabile e viene controllato direttamente dal sistema.

    text (si aspetta un testo lungo)
    int (si aspetta un numero)

    #6 elenco delle tabelle (se il db è stato precedentemente selzionato nel punto 4)

    show tables

    #7 per inserire un dato nella tabella

    INSERT INTO [tabella] VALUES ([valore colonna 1], [valore colonna 2]);
    INSERT INTO [tabella] (colonna3, colonna2, colonna1) VALUES ([valore colonna 3], [valore colonna 2], [valore colonna 1]);
    INSERT INTO films VALUES ('pupl fiction', '1994');

    se si inserisce una riga senza valori es: insert into films values ();
    di default vengono inseriti tutti NULL
    NULL non è uno zero e non è nemmeno un campo vuoto del tipo ”
    NULL è un valore particolare che vale NULL
    Questo vale nei sistemi “seri” tipo postgres, oracle ecc. Mysql converte una stringa vuota ” in NULL

    # Se è settato una primary key e un autoincrement non è necessario indicare l’id nell’insert

    mysql> INSERT INTO registi (nome, cognome) VALUES ('alfred', 'hitchcok');

    in questo caso l’id è asseganto dal sistema am devo indicare quali campi corrispondono ai valori.#8 per visualizzare i record inseriti

    SELECT * FROM films;

    #9 per eliminare una tabella o un db

    DROP table films; DROP database films;

    #10 per cancellare record

    DELETE FROM [tabella] WHERE [campo]=[valore]; DELETE FROM films WHERE anno=1994; DELETE FROM films WHERE anno is NULL;

    #11 modificare i record

    UPDATE [tabella] SET [campo]=’[valore]‘ WHERE [campo]=[valore]; update regiti set nome=’albert’ where id=1;

    #12 sapere quale è il massimo valore, tipo per l’id

    mysql> SELECT max(id) FROM films;
    +---------+
    | max(id) |
    +---------+
    |       1 |
    +---------+

    Questo sistema può creare “atonicità” negli inserimenti. Non c’è garanzia di ribeccare ciò che hai inserito nel caso che due query agiscono in maniera contemporanea. La cosa si risolve in altri sistemi con le “stored procedure”.

    # FOREGIN VALUES
    ——————————————————————————————-
    # Abbiamo due tabelle, films e registi

    mysql> SELECT * FROM films;
    +------+------------+---------+------+
    | id   | id_regista | titolo  | anno |
    +------+------------+---------+------+
    |    1 |          1 | le iene | 2004 |
    +------+------------+---------+------+
    mysql> SELECT * FROM films;
    +------+------------+---------+------+
    | id   | id_regista | titolo  | anno |
    +------+------------+---------+------+
    |    1 |          1 | le iene | 2004 |
    +------+------------+---------+------+

    # rendiamo collegate due tabelle;

    SELECT * FROM [tabella] INNER JOIN [tabella2] ON [tabella1].[colonna]=[tabella2].[valore];

    seleziona tutto dalla tabella films fai unione interna a registi in cui film.regista è uguale a registi.id

    mysql> select * FROM films INNER JOIN registi ON films.id_regista=registi.id;
    +------+------------+---------+------+------+---------+-----------+
    | id   | id_regista | titolo  | anno | id   | nome    | cognome   |
    +------+------------+---------+------+------+---------+-----------+
    |    1 |          1 | le iene | 2004 |    1 | quentin | tarantino |
    +------+------------+---------+------+------+---------+-----------+

    #per evitare al riondanza di campi e flusso dati

    mysql> SELECT films.id, films.id_regista, films.titolo, registi.nome, registi.cognome FROM films INNER JOIN registi ON films.id_regista=registi.id;
    +------+------------+---------+---------+-----------+
    | id   | id_regista | titolo  | nome    | cognome   |
    +------+------------+---------+---------+-----------+
    |    1 |          1 | le iene | quentin | tarantino |
    +------+------------+---------+---------+-----------+

    # oppure, dato che mysql seleziona le colonne se sono univoche tra 2 tabelle

    mysql> SELECT films.id, id_regista, titolo, nome, cognome FROM films INNER JOIN registi ON films.id_regista=registi.id;
    +------+------------+---------+---------+-----------+
    | id   | id_regista | titolo  | nome    | cognome   |
    +------+------------+---------+---------+-----------+
    |    1 |          1 | le iene | quentin | tarantino |
    +------+------------+---------+---------+-----------+

    #possiamo fare selezioni con una determinata condizione. In questo caso vogliamo i film dell’anno 2004

    mysql> SELECT films.id, id_regista, titolo,anno, nome, cognome FROM films INNER JOIN registi ON films.id_regista=registi.id WHERE anno=2004;
    +------+------------+---------+------+--------+-----------+
    | id   | id_regista | titolo  | anno | nome   | cognome   |
    +------+------------+---------+------+--------+-----------+
    |    1 |          1 | le iene | 2004 | albert | tarantino |
    +------+------------+---------+------+--------+-----------+
  • 0 Comments
  • Filed under: How-to