Database – base di dati
          DBMS
DATABASE MANAGEMENT SYSTEM

           Sistema di gestione di
                base ...
Caratteristiche

    Grandi quantità
●




    Condivisione
●




    Persistenza
●




    Affidabilità
●




    Control...
RDBMS
           modello RELAZIONE dei database
 RELAZIONE (o tabella)
Indirizzi
 CAMPO (a attributi della relazione)
|Cog...
Relazioni collegate
.============================================.
|Articoli                                    |
|-------...
Unioni – Intersezioni ­ Differenze
Teoria degli insiemi
.----------------------------------------------------------.
|CODI...
Vincoli sui campi
    Insieme dei valori ammissibili
●



        NULL, NOT NULL, INT, ....
    –


    Valori univoci
●

...
SQL
                   Structured Query Language
      linguaggio di gestione per basi di dati relazionali
Convenzioni sul...
6 azioni – 6 comandi
AZIONE                  COMANDO
Creare tabelle          CREATE TABLE
Eliminare tabelle       DROP TAB...
Tipi di dati
Stringhe di caratteri
    VARCHAR (dimensioni)
   TEXT
I valori vanno dichiarati fra virgolette (Es: 'Nome')
...
Tabella ­ sintassi
Creare

CREATE TABLE nome_tabella (
        nome_colonna1 TIPO_COLONNA1
VINCOLI_COLONNA1,
        nome_...
Tabella ­ esempio

CREATE TABLE indirizzi (
   id serial PRIMARY KEY,
   nome varchar(40) NOT NULL,
   cognome varchar(40)...
Inserire ­ sintassi

INSERT INTO nome_tabella (
     colonna_1,
     colonna_2,
     ...
      colonna_ n
)
VALUES (
     ...
Inserire ­ esempio
INSERT INTO Indirizzi (
      nome,
      cognome,
     indirizzo,
      telefono,
     compleanno
  )
...
Cancellare
Sintassi
DELETE FROM nome_tabella [WHERE condizione]

Esempio

DELETE FROM indirizzi;

           Mancando una ...
Operatori di condizione
... WHERE campo OPERATORE valore

Operatori di confronto

> maggiore di
< minore di
= uguale a
!= ...
Modifica ­ sintassi
UPDATE nome_tabella SET

colonna_1 = nuovo_valore_1,

colonna_2 = nuovo_valore_2,

...

colonna_n = nu...
Modifica ­ esempio

UPDATE indirizzi SET

  nome='Gigino'

     WHERE

cognome='Marzullo';
Interrogare ­ sintassi

SELECT

campo1,campo2,...,campoN

FROM nome_tabella

[[WHERE condizione [ORDER BY campoN]];
Interrogare ­ esempi

SELECT * FROM indirizzi;

SELECT nome, cognome FROM indirizzi;

SELECT * FROM indirizzi WHERE
      ...
Operatori logici
          AND, OR, NOT,     ...

Esempio con SELECT
SELECT nome, cognome FROM indirizzi WHERE
data_nascit...
Query (select) di unione fra 2 tabelle
                S
   SELECT indirizzi.nome, ammcom.descrizion
                E
   ...
Extra
Funzioni
sono chiamate tramite il comando SELECT

Esempio sintassi per SUM()
SELECT SUM(expression )
FROM tables
WHE...
Upcoming SlideShare
Loading in …5
×

Introduzione al SQL e ai database

5,969 views
5,755 views

Published on

Semplice introduzione ai DBMS e al linguaggio SQL (con attenzione verso pgsql). Ispirato da Appunti di Informatica Libera - http://informaticalibera.net/

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,969
On SlideShare
0
From Embeds
0
Number of Embeds
258
Actions
Shares
0
Downloads
176
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introduzione al SQL e ai database

  1. 1. Database – base di dati DBMS DATABASE MANAGEMENT SYSTEM Sistema di gestione di base di dati contenitori che immagazzinano grandi ● quantità di dati i dati sono fruibili tramite un sistema ● di gestione
  2. 2. Caratteristiche Grandi quantità ● Condivisione ● Persistenza ● Affidabilità ● Controllo sugli accessi (DBA) ●
  3. 3. RDBMS modello RELAZIONE dei database RELAZIONE (o tabella) Indirizzi CAMPO (a attributi della relazione) |Cognome |Nome |Indirizzo |Telefono | RECORD (valori) |Pallino |Pinco |Via Biglie 1|0222,222222 | .======================================================. |Indirizzi | |------------------------------------------------------| |Cognome |Nome |Indirizzo |Telefono | |---------------|----------|------------|--------------| |Pallino |Pinco |Via Biglie 1|0222,222222 | |Tizi |Tizio |Via Tazi 5 |0555,555555 | |Cai |Caio |Via Caini 1 |0888,888888 | |Semproni |Sempronio |Via Sempi 7 |0999,999999 | `======================================================'
  4. 4. Relazioni collegate .============================================. |Articoli | |--------------------------------------------| |Codice|Descrizione |Fornitore1|Fornitore2| |------|---------------|----------|----------| |vite30|Vite 3 mm | 123| 126| |vite40|Vite 4 mm | 126| 127| |dado30|Dado 3 mm | 122| 123| |dado40|Dado 4 mm | 126| 127| |rond50|Rondella 5 mm | 123| 126| `============================================' .==============================================. |Movimenti | |----------------------------------------------| |Codice|Data |Carico|Scarico|CodFor|CodCli| |------|----------|------|-------|------|------| |vite40|01/01/1999| 1200| | 124| | |vite30|01/01/1999| | 800| | 825| |vite30|02/01/1999| | 1000| | 954| |rond50|03/01/1999| | 500| | 954| `=============================================='
  5. 5. Unioni – Intersezioni ­ Differenze Teoria degli insiemi .----------------------------------------------------------. |CODICE|DATA |CARICO|SCARICO|... |DESCRIZIONE |... | |------|----------|------|-------|----|---------------|----| |vite40|01/01/1999| 1200| |... |Vite 4 mm |... | |vite30|01/01/1999| | 800|... |Vite 3 mm |... | |vite30|02/01/1999| | 1000|... |Vite 3 mm |... | |vite30|03/01/1999| 2000| |... |Vite 3 mm |... | |rond50|03/01/1999| | 500|... |Rondella 5 mm |... | `==========================================================' Esempio di unione fra Articoli e Movimenti attraverso il campo Codice
  6. 6. Vincoli sui campi Insieme dei valori ammissibili ● NULL, NOT NULL, INT, .... – Valori univoci ● CHIAVE PRIMARIA – Relazione con altri valori  ● stessa tabella  – esterni –
  7. 7. SQL Structured Query Language linguaggio di gestione per basi di dati relazionali Convenzioni sul linguaggio: Comandi scritti maiuscolo ● non fa differenza se non per i valori dei campi della tabella Nomi degli oggetti (tabelle, campi ...) sono composti solo da ● lettere, numeri e underscore (“_”) Primo carattere del nome deve essere una lettera o ● underscore La fine di una istruzione e' data dal punto e virgola o ● riga vuota
  8. 8. 6 azioni – 6 comandi AZIONE COMANDO Creare tabelle CREATE TABLE Eliminare tabelle DROP TABLE Inserire record INSERT  Interrogare record SELECT Modificare record UPDATE Cancellare record DELETE
  9. 9. Tipi di dati Stringhe di caratteri VARCHAR (dimensioni) TEXT I valori vanno dichiarati fra virgolette (Es: 'Nome') dimensioni => numero di caratteri utilizzabili nella stringhe Valori numerici INT FLOAT interi e numeri con virgola mobile Date DATE TIME TIMESTAMP I valori vanno dichiarati fra virgolette o apici
  10. 10. Tabella ­ sintassi Creare CREATE TABLE nome_tabella ( nome_colonna1 TIPO_COLONNA1 VINCOLI_COLONNA1, nome_colonna2 TIPO_COLONNA2 VINCOLI_COLONNA2, .... nome_colonnan TIPO_COLONNA_n VINCOLI_COLONNA_n ); Cancellare DROP TABLE nome_tabella;
  11. 11. Tabella ­ esempio CREATE TABLE indirizzi ( id serial PRIMARY KEY, nome varchar(40) NOT NULL, cognome varchar(40) NOT NULL, indirizzo varchar(40) DEFAULT 'sconosciuto', telefono varchar(40) NOT NULL, id_comune int references (ammcom.id), data_nascita date ); DROP TABLE indirizzi;
  12. 12. Inserire ­ sintassi INSERT INTO nome_tabella ( colonna_1, colonna_2, ... colonna_ n ) VALUES ( valore_1, valore_2, ... valore_n );
  13. 13. Inserire ­ esempio INSERT INTO Indirizzi ( nome, cognome, indirizzo, telefono, compleanno ) VALUES ( 'Gigi', 'Marzullo', 'Via Teulada 66 Roma', '06 1234567', '1915/03/26' );
  14. 14. Cancellare Sintassi DELETE FROM nome_tabella [WHERE condizione] Esempio DELETE FROM indirizzi; Mancando una condizione (WHERE) il comando SVUOTA LA TABELLA
  15. 15. Operatori di condizione ... WHERE campo OPERATORE valore Operatori di confronto > maggiore di < minore di = uguale a != diverso da Esempio delete con condizione DELETE FROM indirizzi WHERE nome = 'Gigi';
  16. 16. Modifica ­ sintassi UPDATE nome_tabella SET colonna_1 = nuovo_valore_1, colonna_2 = nuovo_valore_2, ... colonna_n = nuovo_valore_n [WHERE condizione]
  17. 17. Modifica ­ esempio UPDATE indirizzi SET nome='Gigino' WHERE cognome='Marzullo';
  18. 18. Interrogare ­ sintassi SELECT campo1,campo2,...,campoN FROM nome_tabella [[WHERE condizione [ORDER BY campoN]];
  19. 19. Interrogare ­ esempi SELECT * FROM indirizzi; SELECT nome, cognome FROM indirizzi; SELECT * FROM indirizzi WHERE data_nascita >= '1986/03/01'; SELECT nome, cognome FROM indirizzi WHERE data_nascita >= '1986/03/01' ORDER BY nome;
  20. 20. Operatori logici AND, OR, NOT, ... Esempio con SELECT SELECT nome, cognome FROM indirizzi WHERE data_nascita >= '1986/03/01' AND data_nascita <='1986/04/30' Esempio con DELETE DELETE FROM indirizzi WHERE nome = 'Gigi' OR nome='Silvio'
  21. 21. Query (select) di unione fra 2 tabelle S SELECT indirizzi.nome, ammcom.descrizion E FROM indirizzi, ammcom L WHERE indirizzi.id_comune = ammcom.id E C id T id descrizion id_comune n geometry cognome o nome m nome e . descrizion indirizzi amm_com i n join d i
  22. 22. Extra Funzioni sono chiamate tramite il comando SELECT Esempio sintassi per SUM() SELECT SUM(expression ) FROM tables WHERE predicates; Molti DBMS permettono di creare nuovi funzioni attraverso un linguaggio specifico (SQL Procedural Language) spesso estendibile Es: Postgresql offre pgSQL estendibile con R Trigger le funzioni possono essere associate ad eventi

×