Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32

Discussione: [PILLOLINA] PostgreSQL

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    313

    [PILLOLINA] PostgreSQL

    Scarichiamoci i sorgenti da www.postgresql.org e salviamoli dentro
    /usr/local/src e lanciamo il comando:

    tar -zxf postgresql-7.x.x.tar.gz

    poi entriamo dentro la cartella /usr/local/src/postgresql-7.x.x

    cd postgresql-7.x.x

    Prima di lanciare il comando ./configure dovete avere installato
    i sorgenti della zlib e della readline, quindi controllare dalla
    vostra distribuzione, se avete redhat fate

    rpm -qa | grep readline-dev
    rpm -qa | grep zlib-dev

    Se avete debian vi basterà lanciare il comando apt-get

    apt-get install libreadline4-dev
    apt-get install zlib1g-dev

    Se avete le altre distribuzioni...trovatevela!
    Ora inziamo a compilare il tutto, naturalmente sarete ancora dentro
    la cartella di postgresql:

    ./configure --prefix=/usr/local/postgresql-7.x.x/

    Quando completato lanciate:

    make && make install

    Ora create l'utente postgres:

    adduser postgres

    Configurate le opzioni e ora posizionatevi nella cartella /usr/local
    e lanciate il seguente comando:

    chown -R postgres.postgres /usr/local/postgresql-7.x.x/

    Dopo diventate postgres:

    su - postgres

    Andate dentro la cartella /usr/local/postgresql-7.x.x/bin e lanciate

    ./initdb -D /usr/local/postgresql-7.x.x/data

    Quando avete fatto vi basterà andare dentro al cartella data che
    è stata creata con l'initdb e dare un pò di configurazioni, nel
    file postgresql.conf nelle prime righe si deve decommentare

    tcpip_socket = true #il true lo dovete scrivere al posto del false

    Se poi andate un pò più giù troverete anche le opzioni per i file
    di log.

    Ora salvate il file(sempre come utente postgres) ed editate il file
    pg_hba.conf poichè dovete inserire dentro l'utente postgres con la
    seguente riga:

    host all postgres indirizzo_ip subnet_maksk trust

    Ora dopo avere salvato possiamo avviare postgres:

    cd /usr/local/postgresql-7.x.x/bin
    ./pg_ctl -D /usr/local/postgresql-7.x.x/data -l pg_file.log start

    Per stopparlo vi basterà lanciare
    ./pg_ctl -D /usr/local/postgresql-7.x.x/data stop


    Adesso il vostro postgres è installato e configurato!

    Postgresql di default supporta:

    Transazioni
    Trigger (Foreign Key)
    Subquery
    Espressioni regolari
    e tante altre belle cosine.

    Spero che ora avete un'idea.!
    Windows era mia moglie,
    ora siamo separati in pc...
    Linux sta per diventare mia moglie
    -Ciociaria Linux User Group-
    http://www.cilug.org

  2. #2
    Utente di HTML.it L'avatar di indre
    Registrato dal
    Jan 2002
    Messaggi
    2,735

    re

    ahhh finalmente qualcuno che usa postgres...

    ben fatta la pillolina...
    semplice...e geniale..

    una curiosità..ma non devi mettere il $PATH nella shell?
    così che tu possa fare direttamente psql nome_db ovunque tu sia??
    comunque grazie..chissà...magari con ciò alcuni abbandoneranno mysql per postgres..
    ciao
    When I was young I used to pray for a bike. Then I realized that God doesn't work that way. So I stole a bike and prayed for forgiveness.

  3. #3
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    696
    Aggiunta alle pillole.

    Perchè non fate anche un esempio di collegamento e una query.
    Sarebbe molto interessante per chi comincia ad usare PostgreSQL

  4. #4
    Originariamente inviato da bubu sette sette
    Aggiunta alle pillole.

    Perchè non fate anche un esempio di collegamento e una query.
    Sarebbe molto interessante per chi comincia ad usare PostgreSQL
    Infatti, così com'è è una pillola sull'installazione di Postgres.

    Appena metto su la macchina Linux, mi sa che la integro io questa pillolina
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    313
    prometto che per oggi pomeriggio vi faccio vedere come interagire
    con postgres, usare transaction, foreign key, sequence, subquery,
    utilizzando le classi PEAR DB, creare un utente ed inserire file sql

    p.s.: Grazie per tutti i complimenti...
    ...modestamente sono il migliore
    :quote:
    Windows era mia moglie,
    ora siamo separati in pc...
    Linux sta per diventare mia moglie
    -Ciociaria Linux User Group-
    http://www.cilug.org

  6. #6
    Originariamente inviato da netbomb
    ...usare transaction, foreign key, sequence, subquery...
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    313
    PostgreSQL SECONDA PUNTATA (TRIGGER oppure FOREIGN KEY)

    Entriamo nel sistema come utente postgres e creare il db
    chiamandolo con qualsiasi nome

    /usr/local/postgresql-7.x.x/bin/createdb nomedb

    Ed ora entriamo nel db

    /usr/local/postgresql-7.x.x/bin/psql nomedb

    Immaginiamo che nel nostro database dobbiamo registrare ogni cognome
    ad una città, però può capitare che un cognome sia presente in più
    città e vogliamo che ogni qual volta effettuiamo una cancellazione
    il tutto faccia rimanere il database sempre coerente, quindi
    usiamo le FOREIGN KEY(I Trigger impliciti):

    CREATE SEQUENCE nm_seq;
    questo comando lo dobbiamo creare ogni qual volta creiamo una tabella
    dove abbiamo bisogno di un valore autoincrementale unico,
    naturalmente il nome della SEQUENCE la scegliete voi.

    CREATE SEQUENCE nm_seq;
    CREATE TABLE cognomi (
    n_id INTEGER DEFAULT NOT NULL nextval('nm_seq'),
    cognomi VARCHAR(65) NOT NULL,
    CONSTRAINT n_pk PRIMARY KEY (n_id)
    );

    CREATE SEQUENCE ctt_seq;
    CREATE TABLE citta (
    c_id INTEGER DEFAULT NOT NULL nextval('ctt_seq'),
    citta VARCHAR(80) NOT NULL,
    CONSTRAINT c_pk PRIMARY KEY (c_id)
    );

    CREATE SEQUENCE co_ci_seq;
    CREATE TABLE co_ci (
    cc_id INTEGER DEFAULT NOT NULL nextval('co_ci_seq'),
    n_id VARCHAR(80),
    c_id VARCHAR(80),
    CONSTRAINT a_pk PRIMARY KEY (cc_id),
    CONSTRAINT n_fk FOREIGN KEY(n_id) REFERENCES cognomi(n_id)
    ON DELETE CASCADE,
    CONSTRAINT c_fk FOREIGN KEY(c_id) REFERENCES citta(c_id)
    ON DELETE CASCADE
    );
    Leggete bene la FOREGIN KEY in modo da capire!

    Bene ora abbiamo creato tre tabelle dove in cognomi andiamo ad
    inserire vari dati mentre nella tabella citta(lo so che ci vuole
    l'accento) inseriamo gli altri dati:

    INSERT INTO cognomi(cognomi) VALUES ("Saibal");
    INSERT INTO citta(citta) VALUES ("Roma");

    Però inseriamone almeno 5 per tabella.
    Ora che abbiamo un pò di dati nel db possiamo inziare a fare
    inserimenti nella tabella co_ci

    INSERT INTO co_ci(n_id,c_id) VALUES(1,1);

    In questo inserimento non possiamo inserire quello che ci pare,
    visto che abbiamo creato i vincoli tra tabelle, quindi saranno
    accettati gli id effettivamente esistenti nelle altre tabelle.
    Quindi mettiamo caso che al cognome saibal è stato dato nella
    tabella cognomi 1 e alla città Roma nella tabella citta è stato
    dato 1, allora l'inserimento avviene senza problemi.

    Ora però noi vogliamo visualizzare i dati presenti dentro la
    tabella co_ci:

    SELECT * FROM co_ci;

    Vediamo solo numeri, ma se volessimo trasformare quei numeri in
    informazioni vere e proprie?
    La risposta sono le 'join' che permettono di incrociare i dati.
    Ma vediamo come impostare la nostra join

    SELECT cognomi.cognomi,citta.citta FROM cognomi,citta,co_ci WHERE
    cognomi.n_id=co_ci.n_id AND citta.c_id=co_ci.c_id

    Ora se vediamo l'output possiamo vedere che i dati non sono numerici,
    ma abbiamo le due tabelle virtualmente insieme.
    Ora vi basterà ammazzarvi con un pò di join per averle bene in mente.
    Se ora proviamo a cancellare un dato dalla tabella cognomi,
    possiamo vedere che nella tabella co_ci vengono cancellate tutte
    le righe dove era presente l'id del record cancellato nella tabella
    cognomi, stessa cosa se proviamo a cancellare qualche città.

    Se volete cancellare una tabella ricordatevi di cancellare anche il
    sequence

    DROP TABLE cognomi;
    DROP SEQUENCE nm_seq;

    Signori vi aspetto ala prossima puntata!

    FINE SECONDA PUNTATA
    Windows era mia moglie,
    ora siamo separati in pc...
    Linux sta per diventare mia moglie
    -Ciociaria Linux User Group-
    http://www.cilug.org

  8. #8
    Utente di HTML.it L'avatar di Doimo
    Registrato dal
    Mar 2002
    Messaggi
    25
    Questa ci voleva!
    --- L'uomo gioca a fare Dio manipolando il suo DNA ---
    Chi pensa di essere dalle parti di Treviso e conosce il PHP mi contatti!

  9. #9
    Utente di HTML.it L'avatar di blukarma
    Registrato dal
    Aug 2002
    Messaggi
    1,186
    io avrei una domandina semplice semplice:

    a cosa serve questo script?
    "viva la mucca, che dio la beneducca"
    (Diego Abatantuono - Eccezziunale... Veramente - 1982)

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    313
    Originariamente inviato da blukarma
    io avrei una domandina semplice semplice:

    a cosa serve questo script?

    Sinceramente non ho capito!
    Windows era mia moglie,
    ora siamo separati in pc...
    Linux sta per diventare mia moglie
    -Ciociaria Linux User Group-
    http://www.cilug.org

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.