Il linguaggio SQL
2




Structured

        Query

                 Language
SQL
Operazioni
                3




 Definizione dei dati
 Modifica dei dati
 Ricerca dei dati
 Ordinamento dei dati


SQL
Definizione dei dati (1/8)
                         4

 Creazione di tabelle




CREATE TABLE nome_tabella
       (nome_colonna1 tipo1 {vincolo},

          nome_colonnan tipon {vincolo})




SQL
Definizione dei dati (2/8)
                        5

 Possibili vincoli (clausole)



        PRIMARY KEY
        FOREIGN KEY
        UNIQUE
        NOT NULL
SQL
Definizione dei dati (3/8)
                           6

 Possibili tipi di dati
         SMALLINT
         INTEGER
         DECIMAL (p, q)
         FLOAT (p)
         CHAR (n)
         VARCHAR (n)
         DATE
         TIME

SQL
Definizione dei dati (4/8)
                  7

 Esempio


CREATE TABLE Dipartimenti
   (Dip INT NOT NULL UNIQUE ,
    Descrizione      CHAR(30),
    Località         CHAR(20),
    PRIMARY KEY (Dip));




SQL
Definizione dei dati (5/8)
                            8

CREATE TABLE Velisti (vid INTEGER,
                      vnome CHAR(20),
                      età INTEGER,
                      PRIMARY KEY (vid))

                                           RELAZIONI
CREATE TABLE Barche (bid INTEGER,
                     bnome CHAR(20),
                     colore CHAR(20),
                     PRIMARY KEY (bid))

CREATE TABLE Prenotazioni (vid INTEGER,
                       bid INTEGER,
                       giorno DATE,
                       FOREIGN KEY vid REFERENCES Velisti,
                       FOREIGN KEY bid REFERENCES Barche)

SQL
Definizione dei dati (6/8)
                          9

 Definizione di indici


CREATE INDEX nome_indice
       ON nome_tabella (nome_colonna)

Esempio:

CREATE INDEX indicevelisti
        ON Velisti (vnome)

SQL
Definizione dei dati (7/8)
                     10

 Modifica dello schema
ALTER TABLE identificatore_tabella
        ADD nome_colonna tipo

Esempio

ALTER TABLE Dipartimenti
        ADD Provincia CHAR (2)


SQL
Definizione dei dati (8/8)
                   11

 Cancellazione


ALTER TABLE nome_tabella DROP
 nome_colonna

DROP TABLE nome_tabella

Esempi:
ALTER TABLE Velisti DROP età
DROP TABLE Velisti

SQL
Modifica dei dati (1/3)
                      12

 Inserimento di record


INSERT INTO nome_tabella
    VALUES (costante1, costante2,…)

Esempio:
INSERT INTO Velisti
    VALUES (23, “Francesco”, 41)


SQL
Modifica dei dati (2/3)
                       13

 Modifica di record
UPDATE nome_tabella
  SET nome_colonna = espressione
    {WHERE condizione}

Esempio :
UPDATE Velisti
   SET età = età + 1


SQL
Modifica dei dati (3/3)
                   14

 Cancellazione


DELETE
      FROM nome_tabella
          {WHERE condizione}
Esempio :
DELETE
      FROM Velisti
           WHERE età=24

SQL
Ricerca dei dati (1/4)
                  15

SELECT nome_colonna
       FROM nome_tabella
             {WHERE condizione}

Esempio:
SELECT vnome FROM Velisti
          WHERE età>18




SQL
Ricerca dei dati (2/4)
                        16

Funzioni predefinite:

                  COUNT
                  MIN
                  MAX
                  SUM
                  AVG




SQL
Ricerca dei dati (3/4)
                    17

Esempi:

SELECT COUNT (città) FROM Fornitori

SELECT MAX (Prezzo), MIN (Prezzo) FROM
 Prodotti

SELECT Nome, Prezzo FROM Prodotti
      WHERE Prezzo < (SELECT AVG
 (Prezzo)
                       FROM Prodotti)
SQL
Ricerca dei dati (4/4)
                      18

 Generazione di tabelle


SELECT listacampi INTO nuovatabella
      FROM tabellaorigine
              {WHERE condizione}

SELECT Cognome, Nome INTO Maschi
       FROM Allievi
            WHERE sesso = „M‟

SQL
Ordinamento e raggruppamento (1/3)
                      19

 Clausola ORDER BY
SELECT nome_colonna FROM
 nome_tabella
         ORDER BY nome_colonna

 Clausola GROUP BY
SELECT nome_colonna FROM nome_tabella
         GROUP BY nome_colonna


SQL
Ordinamento e raggruppamento (2/3)
                   20

Esempi :

SELECT Nome, Prezzo FROM Prodotti
           ORDER BY Nome

SELECT Cognome, Nome, Città FROM Allievi
            GROUP BY Città




SQL
Ordinamento e raggruppamento (3/3)
                    21

 Clausola HAVING


Esempio:

SELECT Cognome, Nome, Città FROM Allievi
            GROUP BY Città
            HAVING COUNT (Città) >3




SQL

Il linguaggio SQL

  • 1.
  • 2.
    2 Structured Query Language SQL
  • 3.
    Operazioni 3  Definizione dei dati  Modifica dei dati  Ricerca dei dati  Ordinamento dei dati SQL
  • 4.
    Definizione dei dati(1/8) 4  Creazione di tabelle CREATE TABLE nome_tabella (nome_colonna1 tipo1 {vincolo}, nome_colonnan tipon {vincolo}) SQL
  • 5.
    Definizione dei dati(2/8) 5  Possibili vincoli (clausole) PRIMARY KEY FOREIGN KEY UNIQUE NOT NULL SQL
  • 6.
    Definizione dei dati(3/8) 6  Possibili tipi di dati SMALLINT INTEGER DECIMAL (p, q) FLOAT (p) CHAR (n) VARCHAR (n) DATE TIME SQL
  • 7.
    Definizione dei dati(4/8) 7  Esempio CREATE TABLE Dipartimenti (Dip INT NOT NULL UNIQUE , Descrizione CHAR(30), Località CHAR(20), PRIMARY KEY (Dip)); SQL
  • 8.
    Definizione dei dati(5/8) 8 CREATE TABLE Velisti (vid INTEGER, vnome CHAR(20), età INTEGER, PRIMARY KEY (vid)) RELAZIONI CREATE TABLE Barche (bid INTEGER, bnome CHAR(20), colore CHAR(20), PRIMARY KEY (bid)) CREATE TABLE Prenotazioni (vid INTEGER, bid INTEGER, giorno DATE, FOREIGN KEY vid REFERENCES Velisti, FOREIGN KEY bid REFERENCES Barche) SQL
  • 9.
    Definizione dei dati(6/8) 9  Definizione di indici CREATE INDEX nome_indice ON nome_tabella (nome_colonna) Esempio: CREATE INDEX indicevelisti ON Velisti (vnome) SQL
  • 10.
    Definizione dei dati(7/8) 10  Modifica dello schema ALTER TABLE identificatore_tabella ADD nome_colonna tipo Esempio ALTER TABLE Dipartimenti ADD Provincia CHAR (2) SQL
  • 11.
    Definizione dei dati(8/8) 11  Cancellazione ALTER TABLE nome_tabella DROP nome_colonna DROP TABLE nome_tabella Esempi: ALTER TABLE Velisti DROP età DROP TABLE Velisti SQL
  • 12.
    Modifica dei dati(1/3) 12  Inserimento di record INSERT INTO nome_tabella VALUES (costante1, costante2,…) Esempio: INSERT INTO Velisti VALUES (23, “Francesco”, 41) SQL
  • 13.
    Modifica dei dati(2/3) 13  Modifica di record UPDATE nome_tabella SET nome_colonna = espressione {WHERE condizione} Esempio : UPDATE Velisti SET età = età + 1 SQL
  • 14.
    Modifica dei dati(3/3) 14  Cancellazione DELETE FROM nome_tabella {WHERE condizione} Esempio : DELETE FROM Velisti WHERE età=24 SQL
  • 15.
    Ricerca dei dati(1/4) 15 SELECT nome_colonna FROM nome_tabella {WHERE condizione} Esempio: SELECT vnome FROM Velisti WHERE età>18 SQL
  • 16.
    Ricerca dei dati(2/4) 16 Funzioni predefinite: COUNT MIN MAX SUM AVG SQL
  • 17.
    Ricerca dei dati(3/4) 17 Esempi: SELECT COUNT (città) FROM Fornitori SELECT MAX (Prezzo), MIN (Prezzo) FROM Prodotti SELECT Nome, Prezzo FROM Prodotti WHERE Prezzo < (SELECT AVG (Prezzo) FROM Prodotti) SQL
  • 18.
    Ricerca dei dati(4/4) 18  Generazione di tabelle SELECT listacampi INTO nuovatabella FROM tabellaorigine {WHERE condizione} SELECT Cognome, Nome INTO Maschi FROM Allievi WHERE sesso = „M‟ SQL
  • 19.
    Ordinamento e raggruppamento(1/3) 19  Clausola ORDER BY SELECT nome_colonna FROM nome_tabella ORDER BY nome_colonna  Clausola GROUP BY SELECT nome_colonna FROM nome_tabella GROUP BY nome_colonna SQL
  • 20.
    Ordinamento e raggruppamento(2/3) 20 Esempi : SELECT Nome, Prezzo FROM Prodotti ORDER BY Nome SELECT Cognome, Nome, Città FROM Allievi GROUP BY Città SQL
  • 21.
    Ordinamento e raggruppamento(3/3) 21  Clausola HAVING Esempio: SELECT Cognome, Nome, Città FROM Allievi GROUP BY Città HAVING COUNT (Città) >3 SQL