SQL l'acronimo di Structured Query Language. SQL il linguaggio utilizzato per comunicare con un database. La prima versione standard di Sql stata quella definita dall'American National Standards Institute (ANSI), Sql il linguaggio standard per la gestione dei DBMS relazionali (versione SQL-3). Le istruzioni SQL vengono utilizzate per eseguire operazioni come l'aggiornamento dei dati su un database, o recuperare i dati da un database.
Prof.ssa G. Russo
SQL
Molti tra i pi noti DBMS relazionali utilizzano il linguaggio Sql: Oracle Sybase Microsoft SQL Server Access Ingres MySql
Prof.ssa G. Russo
SQL
Sebbene la maggior parte dei DBMS utilizzino SQL standard, importante considerare che quasi tutti hanno anche le proprie ulteriori estensioni proprietarie, in genere utilizzabili e comprensibili solo al loro interno. Tuttavia, lo standard di SQL che mette a disposizione istruzioni come "Select", "Insert", "Update", "Delete", "Create", e "Drop" pu essere utilizzato per realizzare quasi tutto ci che si vuole da un database.
Prof.ssa G. Russo
Tabelle
Un database relazionale contiene una o pi oggetti denominati tabelle. I dati o le informazioni del database sono memorizzate in tabelle. Le tabelle sono univocamente identificate dal nome e sono organizzate in righe e colonne.
Prof.ssa G. Russo
Tabelle
Prof.ssa G. Russo
Tabelle
Prof.ssa G. Russo
Tabelle
Prof.ssa G. Russo
Tabelle
Le colonne contengono il nome della colonna, il tipo di dato, ed ogni altro attributo della colonna stessa. Le righe contengono i record o i dati della colonna.
Prof.ssa G. Russo
L'istruzione o statement select viene usata per realizzare delle query (interrogazioni) sulla base di dati. L'istruzione select pu ricercare dei dati in base a criteri specifici.
Prof.ssa G. Russo
Formato tipo di select semplice: select nome_colonnax [,"nome_colonnay",etc] from "nome_tabella" [where "condizione"];
N.B.: le parentesi quadre indicano le opzioni, se si vogliono tutte le colonne baster indicare solo *, il ; termina l'istruzione.
Prof.ssa G. Russo
SELECT [ALL | DISTINCT] column1[,column2] FROM table1[,table2] [WHERE "conditions"] [GROUP BY "column-list"] [HAVING "conditions] [ORDER BY "column-list" [ASC | DESC] ]
N.B.: le parentesi quadre indicano le opzioni, se si vogliono tutte le colonne baster indicare solo *, il ; termina l'istruzione.
Prof.ssa G. Russo
Operatori condizionali utilizzati nella clausola where: = Equal > Greater than < Less than >= Greater than or equal <= Less than or equal <> Not equal to LIKE
Prof.ssa G. Russo
LIKE Si tratta di un operatore logico utilizzabile nella condizione WHERE, particolarmente utile per effettuare le ricerche su dati parziali. Nel caso dell'operatore LIKE chiediamo al sistema SQL di ricercare tutti quei record in cui un determinato campo simile alla parola ricercata
Prof.ssa G. Russo
Il risultato dell'interrogazione sar una lista di alunni con nome simile e comprensivo della parola 'anna'. Ad esempio: Annalaura, Anna, Marianna...
Prof.ssa G. Russo
Lo statement CREATE TABLE serve a creare una tabella. Il formato pi semplice il seguente:
CREATE TABLE tablename (nome_columnx DATA TYPE, nome_columny DATA TYPE, nome_columnz DATA TYPE);
Prof.ssa G. Russo
Esempio semplice:
CREATE TABLE impiegati (nome varchar(15), cognome varchar(20), anni number(3), indirizzo varchar(30), citta varchar(20), regione varchar(20));
Prof.ssa G. Russo
Prof.ssa G. Russo
I nomi delle tabelle e delle colonne devono iniziare con una lettera. Dopo il primo carattere possono seguire numeri o underscore. Massimo 30 caratteri. Non devono essere usate parole chiave del lingiaggio, ad esempio "select", "create", "insert", etc.
Prof.ssa G. Russo
Prof.ssa G. Russo
Prof.ssa G. Russo
Nota: InnoDb consente l'uso della Foreign Key e delle transazioni KEY editore indice su campo editore
Prof.ssa G. Russo
Prof.ssa G. Russo
Esercizio
Prof.ssa G. Russo
Esercizio
Selezionare dalla tabella precedente,utilizzando istruzioni sql, tutti gli studenti (nome, cognome e matricola) nati nell'anno 2005. Selezionare dalla tabella precedente, utilizzando istruzioni sql, tutti gli studenti di nome Giovanni.
Prof.ssa G. Russo
Esercizio
Select statement exercises Enter select statements to: Display the first name and age for everyone that's in the table. Display the first name, last name, and address for everyone that's not from Payson. Display all columns for everyone that is over 40 years old. Display the first and last names for everyone whose last name ends in an "ay". Display all columns for everyone whose first name equals "Mary". Display all columns for everyone whose first name contains "Mary".
Prof.ssa G. Russo
Dot notation, abbreviazioni, alias Partiamo dalla seguente select SELECT articoli.descrizione, Percentuali.percentuale From articoli, percentuali Where articoli.codice=Percentuali.codice; Equivale anche a Select A.descrizione, P.percentuale From articoli A, percentuali P Where A.codice=B.codice; Con gli alias Select A.descrizione AS Descrizione Articolo, P.percentuale as Percentuale di incremento prezzo From articoli A, percentuali P Where A.codice=B.codice;
Prof.ssa G. Russo
Alter table statement: esempio Aggiunta di un campo alla tabella Mansioni ALTER TABLE Mansioni ADD COLUMN data_mansione DATE; Eliminazione di un campo ALTER TABLE Mansioni DROP COLUMN data_mansione;
Prof.ssa G. Russo
INSERT INTO statement Il costrutto INSERT consente di inserire nuove righe nella tabella specificata. Il nuovo record viene aggiunto in coda, sempre che non violi eventuali vincoli (ad esempio l'integrit referenziale). Sintassi INSERT INTO nome tabella [(nome campo[,...])] {VALUES (espressione[,...]) | SELECT...} Esempio INSERT INTO piloti (codice,cognome) VALUES (1,'Schumaker');
Prof.ssa G. Russo
DELETE FROM statement L'eliminazione di tuple da una tabella si ottiene mediante il costrutto DELETE (in rispetto dei vincoli d'integrit se presenti). Sintassi DELETE FROM nome tabella [WHERE condizione] [LIMIT massimo numero di righe ammesse] Esempio DELETE FROM piloti; (cancella tutte le tuple presenti in piloti) DELETE FROM atleti WHERE nome_atleta='Gustav';
Prof.ssa G. Russo
UPDATE statement Il costrutto UPDATE consente l'aggiornamento delle righe di una tabella, eventualmente in base a d una condizione. Sintassi UPDATE nome tabella SET nome campo= {espressione | NULL | DEFAULT | SELECT...} [WHERE condizione] Esempio UPDATE piloti SET gare_vinte=101 WHERE cognome='Schumacher' and nome='Michael';
Prof.ssa G. Russo
Le relazioni Creiamo due tabelle che sono in relazione 1 a N tramite la chiave primaria ID_Paziente della tabella pazienti, con id_paziente della tabella Visite. CREATE TABLE Pazienti (ID_paziente int not null, nome CHAR(20), Cognome CHAR(20), DataNascita DATE, Provincia char (2), Cod ASL char(8), Primary Key(Id_paziente), UNIQUE(Id_paziente), INDEX(Id-paziente)) TYPE=Innodb;
Prof.ssa G. Russo
Le relazioni
CREATE TABLE Visite (ID_paziente int, (id_paziente INT NULL, DataVisita DATE, Peso INT, Altezza INT, PressioneMin SMALLINT, PressioneMax SMALLINT, Primary Key(Id_visita), UNIQUE(Id_visita), INDEX(Id_visita), INDEX (id_paziente), FOREIGN KEY(id_paziente) REFERENCES Pazienti(Id_paziente) ON DELETE CASCADE) Type=Innodb;
Prof.ssa G. Russo
Le relazioni: Select
SELECT V.dataVisita, P.cognome, P.nome From pazienti P, visite V Where P.ID_paziente=V.id_paziente and (V.pressioneMAXV.pressionemin)>40;
Prof.ssa G. Russo