Database 8 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale che è diventatouno standard tra i linguaggi per la gestione di database relazionali. Il linguaggio SQL consente all’ utente di 1. Definire la struttura delle tabelle del database. (funzione di DDL) 2. Modificare i dati contenuti nel database (funzioni di DML) 3. Gestire il controllo degli accessi e i permessi per gli utenti (funzioni di DCL) 4. Porre interrogazioni al database (funzioni di query language) Identificatori e tipi di dati. Gli identificatori (nomi di tabelle e di attributi) sono costituiti da sequenze di massimo 18 caratteri che devono iniziare con una lettera e possono contenere anche il carattere underscore( _ ). Quando è necessario identificare il nome di un attributo della tabella si deve usare la notazione : NomeTabella.NomeAttributo separati dal punto . Nella dichiarazione degli attributi di una tabella occorre specificare il tipo dei dati scelto per gli attributi. Tra questi indichiamo come tipi usati più frequentemente i seguenti: CHAR(n) stringa di lunghezza n INT(p) numero intero di p cifre DEC(p,s) numero decimale di p cifre intere e s cifre decimali La definizione delle tabelle Le tabelle vengono definite con il comando CREATE TABLE, seguito dal nome della tabella e dall’elenco degli attributi. Per ogni attributo occorre specificare il nome e il tipo di dato. Esempio: Esempio: CREATE TABLE Personale CREATE TABLE Dipendenza (Matricola char(5), (CodFil char(5), Cognome char(30), Descrizione char(20), Nome char(20) ); Indirizzo char(25)); ----La struttura della tabella può essere successivamente modificata con il comando ALTER TABLE , per aggiungere una nuova colonna (ADD) o per togliere una colonna già inserita (DROP). Esempio: 1) ALTER TABLE Personale ADD Funzione char(15); 2)ALTER TABLE Personale DROP Nome; ----L’istruzione CREATE INDEX crea un nuovo indice su una tabella esistente. Se si vuole che l’indice non abbia duplicati si deve aggiungere la clausola UNIQUE. Esempio: CREATE UNIQUE INDEX Iper ON Personale (Matricola); -----Una tabella o un indice possono essere eliminati con il comando DROP Esempio : DROP TABLE Personale; DROP INDEX Iper ON Personale;