SQL base e avanzato nel “Progetto metodologie e statistiche Ambientali”

◊ Introduzione a SQL ◊ Le tipologie di istruzioni ed i comandi principali in SQL ◊ Le tipologie di dati in Oracle ◊ Esempi ed esercizi
Cecilia Colasanti 1

SQL base e avanzato nel “Progetto metodologie e statistiche Ambientali”
◊ La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli ◊ La gestione dei dati in Oracle: il dizionario dei dati ◊ Il prodotto standard di interfaccia con Oracle: SQL Plus ◊ Esempi ed esercizi
Cecilia Colasanti 2

Introduzione a SQL
SQL (Structured Query Language) è il linguaggio standard per la manipolazione dei database su qualsiasi DBMS. Nasce in ambiente IBM negli anni ’70 all’interno del progetto di System R. SQL costituisce uno standard ed è stato adottato dall’International Standards Organization (ISO) e dall’American National Standards Istitute (ANSI).
Cecilia Colasanti 3

Introduzione a SQL
Utilizzato in ambienti diversi come Oracle, Informix, Ingres, SQL Server, DB2, R*, Starburst,…, lo standard si limita alla sintassi ed al nome dei comandi, ma ogni DBMS parla un dialetto che si differenzia sia pur minimamente dagli altri. Alcuni DBMS, ad esempio, utilizzano dei comandi proprietari di quello stesso DBMS che non esistono su altri programmi.
Cecilia Colasanti 4

Introduzione a SQL
Con SQL è possibile creare una tabella, modificarne la struttura o cancellarla. E' possibile effettuare ricerche più o meno precise tra i record di una tabella, inserire nuovi dati, modificare o cancellare dati esistenti. E' anche possibile mettere in relazione due o più tabelle in funzione della struttura delle stesse e delle esigenze.
Cecilia Colasanti 5

Introduzione a SQL
SQL è un linguaggio molto semplice che si avvicina molto al linguaggio umano e lo stesso utilizzo di un DBMS non è di particolare complessità; la difficoltà di essere un buon progettista di database è quella di avere cognizione di cosa vuol dire gestire un archivio.
Cecilia Colasanti 6

Introduzione a SQL
SQL è un linguaggio di tipo dichiarativo che consente di interrogare il database semplicemente descrivendo il risultato che si vuole ottenere.

Cecilia Colasanti

7

Le tipologie di istruzioni ed i comandi principali in SQL
Come un qualsiasi linguaggio di programmazione, anche SQL utilizza una serie di simboli atti a definire uguaglianze, a fare confronti e calcoli. Per questo esistono gli operatori e si fa riferimento ai tipi di dato che può assumere un campo.
Cecilia Colasanti 8

Le tipologie di istruzioni ed i comandi principali in SQL
Definiamo gli operatori messi a disposizione dagli standard SQL. Gli operatori si dividono in quattro categorie: •Operatori di confronto •Operatori aritmetici •Operatori condizionali •Operatori logici
Cecilia Colasanti 9

Le tipologie di istruzioni ed i comandi principali in SQL
Gli operatori di confronto servono a determinare uguaglianze e disuguaglianze tra valori e ad effettuare ricerche all'interno dei dati.

Cecilia Colasanti

10

Le tipologie di istruzioni ed i comandi principali in SQL
= LIKE < > Esprime uguaglianza tra due valori Esprime somiglianza tra due valori Stabilisce che un valore è minore di un altro Stabilisce che un valore è maggiore di un altro

Cecilia Colasanti

11

Le tipologie di istruzioni ed i comandi principali in SQL
<= >= <> Stabilisce che un valore è minore o uguale di un altro Stabilisce che un valore è maggiore o uguale di un altro Stabilisce che due valori sono diversi tra loro

BETWEEN Recupera un valore compreso tra due valori
Cecilia Colasanti 12

Le tipologie di istruzioni ed i comandi principali in SQL
Gli operatori aritmetici effettuano calcoli all'interno di una ricerca.

Cecilia Colasanti

13

Le tipologie di istruzioni ed i comandi principali in SQL
+ * / Effettua un'addizione Effettua una sottrazione Effettua una moltiplicazione Effettua una divisione

Cecilia Colasanti

14

Le tipologie di istruzioni ed i comandi principali in SQL
L'unico operatore condizionale di SQL è WHERE e serve a definire criteri di ricerca mirati.

Cecilia Colasanti

15

Le tipologie di istruzioni ed i comandi principali in SQL
Gli operatori logici di SQL sono AND e OR e servono rispettivamente ad indicare alla ricerca di restituire dati in cui due (o più) valori devono rispettivamente: essere entrambi (o tutti) trovati oppure almeno uno dei due (o più) valori devono essere trovati.
Cecilia Colasanti 16

Introduzione a SQL
I comandi SQL possono essere classificati secondo 5 grandi categorie: 3. DDL (Data Definition Language) 4. DML (Data Manipulation Language) 5. QML (Query Manipulation Language) 6. DCL (Data Control Language) 7. DTL (Data Translation Language)
Cecilia Colasanti 17

Introduzione a SQL
DDL/Data definition language Crea, modifica e distrugge una tabella Create - Alter - Drop DML/Data manipulation language Manipola i dati. Inserisce, modifica ed elimina i dati presenti all’interno delle tabelle Insert – Update – Delete
Cecilia Colasanti 18

Introduzione a SQL
QML/Query manipulation language Interroga il DB selezionando determinati dati da tabelle, viste o altri oggetti Select DCL/Data control language I comandi DCL vengono usati per la gestione dei privilegi e dei ruoli Grant - Revoke
Cecilia Colasanti 19

Introduzione a SQL
DTL/Data translation language Controlla le transazioni. Le rende permanenti (commit), le ignora (rollback) o identifica un punto all’interno del blocco a cui si può tornare (savepoint) Commit – Rollback - Savepoint

Cecilia Colasanti

20

Introduzione a SQL

Tutti i comandi SQL si possono scrivere su più righe e terminano con “;”

Cecilia Colasanti

21

Le tipologie di istruzioni ed i comandi principali in SQL
Anche se non abbiamo introdotto ancora il DB Oracle, i suoi strumenti proprietari ed i suoi oggetti, Oracle è il nostro DB di riferimento. Per fare esercizi ed usare gli operatori ed i comandi SQL useremo un server su cui è installato Oracle ed useremo comandi SQL che valgono per ogni DB e comandi SQL*Plus che valgono solo per Oracle. Ogni volta ciò sarà specificato.
Cecilia Colasanti 22

Le tipologie di dati in Oracle
Il linguaggio SQL relativamente al DB Oracle supporta i seguenti tipi di dato: CHAR(n): Stringa costituita esattamente da n caratteri; se la lunghezza effettiva della stringa e’ m < n, Oracle aggiunge in coda al record n-m caratteri vuoti VARCHAR2(n): Stringa costituita al massimo da n caratteri. Non puo’ comunque eccedere la lunghezza di 2000 caratteri
Cecilia Colasanti 23

Le tipologie di dati in Oracle
LONG: Puo’ contenere stringhe lunghe fino a 2GB. E’ utile ma ha diverse limitazioni (una tabella puo’ contenere solo un campo LONG, non si possono fare ricerche su sottostringhe al suo interno, ecc...) NUMBER: Dati di tipo numerico. Accetta numeri interi o decimali purche’ il numero complessivo di cifre sia al massimo 38.
Cecilia Colasanti 24

Le tipologie di dati in Oracle
NUMBER(p): Accetta solo numeri interi con un numero massimo di p cifre NUMBER(p,s): p=precision,num. max.cifre s= scale, num. max di cifre decimali DECIMAL (p,s): E’ sinonimo di NUMBER (p,s) INTEGER o SMALLINT: Sono sinonimi di NUMBER(38)
Cecilia Colasanti 25

Le tipologie di dati in Oracle
DATE: Usato per contenere informazioni su data e tempo, piu’ precisamente su: secolo, anno, mese, giorno, ora, minuto, secondo E’ possibile selezionare un campo DATE con numerosissimi formati ROWID: Tipo di dato particolare che e’ restituito dalla pseudo-colonna ROWID e che rappresenta l' indirizzo fisico del record. E' normalmente visualizzato in esadecimale.
Cecilia Colasanti 26

Le tipologie di dati in Oracle
RAW(n): Stringa binaria della lunghezza specificata (max 2000 bytes). Puo’ essere utilizzato per memorizzare su tabelle programmi applicativi in altri linguaggi o immagini grafiche. LONG RAW: Stringa binaria come RAW, con caratteristiche simili al tipo LONG.
Cecilia Colasanti 27

Le tipologie di istruzioni ed i comandi principali in SQL
Ogni database Oracle ha un utente standard che si chiama scott (password: tiger). Con questo utente si può accedere al database ed eseguire i comandi elementari.

Cecilia Colasanti

28

Il prodotto standard di interfaccia con Oracle: SQL Plus
telnet dbsrv sqlplus digitare login/password (cecilia/…) Per cambiare la password si usa alter user cecilia identified by <new password>
Cecilia Colasanti 29

Il prodotto standard di interfaccia con Oracle: SQL Plus
Se si è già “dentro” sqlplus e si vuole cambiare utente si usa connect login/passwd oppure connect login e poi viene richiesta una password
Cecilia Colasanti 30

Le tipologie di istruzioni ed i comandi principali in SQL
Quando si accede ad un database di cui non si conosce nulla, la prima cosa da fare è: select * from cat; Con questo comando si visualizzano tutte le tavole presenti nel database relativamente ad un certo utente.
Cecilia Colasanti 31

Il prodotto standard di interfaccia con Oracle: SQL Plus
Per avere un file dove siano scritti tutti i comandi sqlplus digitati ed il relativo output, si usa il comando: spool <nome del file>

Cecilia Colasanti

32

Le tipologie di istruzioni ed i comandi principali in SQL
Scopo dei seguenti esercizi è creare una piccola simulazione di un DB con una serie di tabelle che gestiscano i clienti ed i relativi conti in una banca. Si vedrà in particolare come i clienti, i conti ed i relativi movimenti siano legati tra loro. In questo modo saranno usati i principali comandi SQL.
Cecilia Colasanti 33

Le tipologie di istruzioni ed i comandi principali in SQL
Creare la tabella “clienti” avente i campi: codice, nominativo, data di nascita, luogo di nascita. create table clienti (codice number(4), nominativo varchar2(15), data_nas date, luogo_nas varchar2(20)); commit;
Cecilia Colasanti 34

Il prodotto standard di interfaccia con Oracle: SQL Plus
Per ripetere l’ultimo comando digitare ‘l' Per sostituire una parola nell’ultimo comando si usa 'l‘ seguita da 'c‘ simbolo < parola da sostituire > simbolo < sostituzione > Per dare il comando con la sostituzione digitare 'r '
Cecilia Colasanti 35

Le tipologie di istruzioni ed i comandi principali in SQL
Rendere il campo codice una chiave primaria per la tabella clienti – una chiave primaria è un elemento della tabella a partire dal quale viene identificato univocamente un intero record

Cecilia Colasanti

36

Le tipologie di istruzioni ed i comandi principali in SQL
alter table clienti add constraint pk_clienti_codice primary key (codice); commit;

Cecilia Colasanti

37

Le tipologie di istruzioni ed i comandi principali in SQL
Creare la tabella “conti” avente i campi: •codice che deve essere chiave primaria •cod_cli che deve far riferimento al codice della tabella clienti •data_acc •data_est •tipo_con – che accetta solo i valori A,M,C
Cecilia Colasanti 38

Le tipologie di istruzioni ed i comandi principali in SQL
create table conti (codice number (5), cod_cli number (4), data_acc date, data_est date, tipo_con varchar2(1)); crea la tabella conti alter table conti add constraint pk_conti_codice primary key (codice); codice è chiave primaria per conti
Cecilia Colasanti 39

Le tipologie di istruzioni ed i comandi principali in SQL
alter table conti add constraint fk_conti_cod_cli foreign key (cod_cli) references clienti (codice); cod_cli fa riferimento al campo codice della tabella clienti alter table conti add constraint ck_conti_tipo_con check (tipo_con in (‘A’,’M’,’C’)); tipo_con accetta solo i valori A, M, C commit;
Cecilia Colasanti 40

Le tipologie di istruzioni ed i comandi principali in SQL
Creare la tabella “temp” con la seguente struttura: •col1 -> number(5) •col2 -> number(5) •message -> varchar2(15)

Cecilia Colasanti

41

Le tipologie di istruzioni ed i comandi principali in SQL
create table temp (col1 number(5), col2 number(5), message varchar2(15)); commit;

Cecilia Colasanti

42

Le tipologie di istruzioni ed i comandi principali in SQL
Creare la tabella “movimenti” avente i campi: •cod_con -> number(5) •data -> date •importo -> number(12) •tipo -> char(1) che accetta solo i valori A,I,G tenuto conto che:
Cecilia Colasanti 43

Le tipologie di istruzioni ed i comandi principali in SQL
non deve essere possibile inserire il codice di un conto se questo non è presente nella tabella conti (praticamente cod_con deve far riferimento al campo codice della tabella “conti”) e che se cancelliamo un conto dalla riga della tabella conti i relativi movimenti dovranno essere cancellati anch’essi.
Cecilia Colasanti 44

Le tipologie di istruzioni ed i comandi principali in SQL
create table movimenti (cod_con number(5), data date, importo number(12), tipo varchar2(1)); alter table movimenti add constraint fk_movimenti_cod_con foreign key (cod_con) references conti(codice) on delete cascade; cod_con fa riferimento al campo codice della tabella “conti” se si cancella un conto dalla tabella conti i relativi movimenti dovranno essere cancellati

Cecilia Colasanti

45

Le tipologie di istruzioni ed i comandi principali in SQL
alter table movimenti add constraint ck_movimenti check (tipo in (‘A’,’I’,’G’)); tipo accetta solo i valori ‘A’, ’I’, ‘G’ commit;

Cecilia Colasanti

46

Le tipologie di istruzioni ed i comandi principali in SQL
Aumentare a 30 l'ampiezza della colonna nominativo della tabella « clienti » alter table clienti varchar2(30); modify nominativo

Cecilia Colasanti

47

Le tipologie di istruzioni ed i comandi principali in SQL
Aggiungere la colonna data_inser (di tipo data) alla tabella clienti alter table clienti add data_inser date;

Cecilia Colasanti

48

Le tipologie di istruzioni ed i comandi principali in SQL
Rendere col1 nella tabella “temp” chiave primaria ed eliminare dopo questa condizione alter table temp add constraint pk_temp_col1 primary key (col1); alter table temp drop constraint pk_temp_col1;
Cecilia Colasanti 49

Le tipologie di istruzioni ed i comandi principali in SQL
Eliminare la tabella “temp” drop table temp; commit;

Cecilia Colasanti

50

Le tipologie di istruzioni ed i comandi principali in SQL
Popolare tutti i campi della tabella “clienti” con due nominativi: insert into clienti values (7301, ‘cecilia colasanti’, to_date (’17-feb1972’,’dd-mon-yyyy’), ‘roma’, sysdate); sysdate prende la data di sistema insert into clienti values (7302, ‘fulvio giannetti’, to_date (’05-0362’,’dd-mm-yy’), ‘roma’, sysdate); commit;

Cecilia Colasanti

51

Le tipologie di istruzioni ed i comandi principali in SQL
Popolare i campi codice, cod_cli e tipo_con di “conti” tenendo presenti i limiti imposti dall’esercizio precedente insert into conti (codice, cod_cli, tipo_con) values (22222, 7301, ‘A’); serve a far vedere come posso inserire in una tabella meno campi di quelli che la tabella ha insert into conti (codice, cod_cli, tipo_con) values (11111, 7302, ‘M’); commit;
Cecilia Colasanti 52

Le tipologie di istruzioni ed i comandi principali in SQL
Popolare la tabella “movimenti” e verificare che i vincoli imposti precedentemente siano rispettati. insert into movimenti values (22222, sysdate, 5000, ‘A’); insert into movimenti values (11111, sysdate, 7000, ‘I’); insert into movimenti values (33333, sysdate, 3000, ‘G’); commit; L’ultimo valore non viene inserito perchè 33333 non è un codice presente nella tabella conti

Cecilia Colasanti

53

Le tipologie di istruzioni ed i comandi principali in SQL
Cancellare dalla tabella “conti” una riga e vedere che anche nella tabella “movimenti” la riga corrispondente è stata cancellata delete conti where codice=11111; commit; select * from movimenti; oppure select cod_con from movimenti;
Cecilia Colasanti 54

Le tipologie di istruzioni ed i comandi principali in SQL
Per cancellare tutto il contenuto della tabella “movimenti” si usa truncate table movimenti; commit;

Cecilia Colasanti

55

Le tipologie di istruzioni ed i comandi principali in SQL
A partire dalle tabelle “clienti”, “conti” e “movimenti”, cercare il tipo di conto (campo tipo della tabella movimenti) di cecilia colasanti select tipo from movimenti where cod_con in (select codice from conti where cod_cli in (select codice from clienti where nominativo like ‘cec%’));
Cecilia Colasanti 56

Le tipologie di istruzioni ed i comandi principali in SQL
Visualizzare dalla tabella “movimenti” tutti gli importi il cui valore è compreso tra 1 e 10 select importo from movimenti where importo between 1 and 10; l c ?1 and 10?4999 and 7001 r

Cecilia Colasanti

57

Le tipologie di istruzioni ed i comandi principali in SQL
Visualizzare dalla tabella “movimenti” tutti gli importi il cui valore è uguale a 5 select importo from movimenti where importo in 5;

Cecilia Colasanti

58

Le tipologie di istruzioni ed i comandi principali in SQL
Visualizzare dalla tabella “movimenti” tutti gli importi il cui valore è uguale a 5 oppure a 6 select importo from movimenti where importo in 5 or importo in 6;

Cecilia Colasanti

59

Le tipologie di istruzioni ed i comandi principali in SQL
Visualizzare dalla tabella “clienti” tutti i nominativi che contengono la sottostringa cec, tutti quelli esattamente uguali a cec e tutti quelli che non contengono la sottostringa cec select * from clienti where nominativo like ‘%cec%’; select * from clienti where nominativo like ‘cec’; select * from clienti where nominativo not like ‘%cec%’;
Cecilia Colasanti 60

Le tipologie di istruzioni ed i comandi principali in SQL
Nella tabella “clienti” porre il nominativo con la sola prima lettera maiuscola per tutte le persone il cui codice è maggiore di 1000 update clienti set nominativo=initcap(nominativo) where codice > 1000; commit;
Cecilia Colasanti 61

Le tipologie di istruzioni ed i comandi principali in SQL
Inserire una riga nella tabella “clienti” insert into clienti values (7303, ‘mario rossi’, to_date (’01-01-1927’,’dd-mmyyyy’), ‘roma’, sysdate); commit;
Cecilia Colasanti 62

Le tipologie di istruzioni ed i comandi principali in SQL
Cancellare dalla tabella “clienti” tutti quelli la cui data di nascita è inferiore al 1 gennaio 1950 oppure il cui cognome sia verde delete from clienti where data_nas < to_date (’0101-1950’,’dd-mm-yyyy’) or nominativo like ‘verde’; commit;
Cecilia Colasanti 63

Le tipologie di istruzioni ed i comandi principali in SQL
Selezionare i campi nominativo e data di nascita dalla tabella “clienti”. select nominativo, data_nas from clienti;

Cecilia Colasanti

64

Le tipologie di istruzioni ed i comandi principali in SQL
Selezionare rownum, nominativo e user dalla tabella “clienti” dove rownum è il numero delle righe e user indica l’utente connesso al database in questo momento select rownum, nominativo, user from clienti;
Cecilia Colasanti 65

Le tipologie di istruzioni ed i comandi principali in SQL
Nella tabella clienti cambiare la data di inserimento da quella che c’è a 01-01-2004 update clienti set data_inser=to_date (’0101-2004’,’dd-mm-yyyy’); commit;
Cecilia Colasanti 66

Le tipologie di istruzioni ed i comandi principali in SQL
Dopo aver inserito un campo nella tabella “clienti” con il nominativo scritto con le lettere maiuscole, visualizzare solo i nominativi scritti con le lettere maiuscole. insert into clienti (codice, nominativo) values (7306,‘CECILIA COLASANTI’); select distinct upper (nominativo) from clienti;
Cecilia Colasanti 67

Le tipologie di istruzioni ed i comandi principali in SQL
Elencare tutti i record della tabella « clienti » ordinati per nominativo (e nominativo in ordine inverso) select * from clienti order by nominativo; select * from clienti order by nominativo desc;
Cecilia Colasanti 68

Definizione di DataBase
Un DB è un archivio strutturato di dati, solitamente organizzato in un file, al quale possono accedere programmi e applicazioni per effettuare operazioni. La finalità di un DB è memorizzare dati e mettere in relazione le informazioni rappresentate da quei dati, attraverso un sistema di gestione. Il nostro DB di riferimento è Oracle.

Cecilia Colasanti

69

Definizione di DataBase
Ogni DB possiede un sistema di gestione per le informazioni memorizzate. Oracle è un DB relazionale (RDBMS). RDBMS rappresenta proprio il sistema di gestione del DB relazionale e si compone di: •Software di gestione del DB relazionale (kernel) •Linguaggio SQL per l’accesso ai dati
Cecilia Colasanti 70

Definizione di DataBase
•Insieme di tool per la gestione del database •Insieme di oggetti (tabelle, sinonimi, viste, sequenze, snapshot, cluster, store procedure, function, package, trigger…)

Cecilia Colasanti

71

Kernel
Il kernel è il motore del sistema. E’ un software di notevoli dimensioni che svolge le seguenti funzioni: •organizza la definizione e la memorizzazione dei dati •controlla e limita l’accesso ai dati •permette il backup ed il recovery dei dati •interpreta i linguaggi SQL e PL/SQL
Cecilia Colasanti 72

Tool Oracle
Sono strumenti proprietari Oracle che permettono di effettuare agevolmente le principali operazioni su un DB. Troviamo ad esempio: SQL*DBA per le operazioni di amministrazione del DB SQL*Loader per il carico nel DB dei dati letti da un file ASCII SQL*Plus per l’esecuzione di statement SQL e blocchi PL/SQL
Cecilia Colasanti 73

Tool Oracle
SQL*Forms per lo sviluppo di applicazioni GUI SQL*Report per lo sviluppo della reportistica Tool Export per il trasferimento di oggetti Tool Import per l’importazione da esterno dei dati ….

Cecilia Colasanti

74

Oggetti Oracle
Tabelle: oggetto dello schema in cui vengono memorizzati i dati composta da righe (tuple) e colonne (attributi) Indici: oggetto che contiene un entry ordinato per ogni elemento presente in una o più colonne indicizzate della tabella Sequenze: generatore di valori interi che possono essere impostati come non ripetibili (utili per la chiave primaria) Sinonimi: oggetto usato per rinominare un oggetto già esistente
Cecilia Colasanti 75

Oggetti Oracle
Viste: selezione dinamica di informazioni provenienti da una o più tabelle diverse Cluster: oggetto contenente una o più tabelle che hanno in comune almeno una colonna Snapshot: fotografia statica in sola lettura dei dati (remoti) nel nodo proprio locale. I dati vengono aggiornati periodicamente con un refresh Store Procedure e Function: blocchi di comandi PL/SQL eseguibili dall’utente memorizzati all’interno del DB
Cecilia Colasanti 76

Oggetti Oracle
Package: contenitore di procedure, funzioni e variabili. L’utilizzo può essere vantaggioso perché può contenere variabili globali e organizza lo sviluppo del software in modo efficiente Rollback Segment: area in cui vengono temporaneamente memorizzati i dati seguenti ad una transazione, per un eventuale ripristino degli stessi

Cecilia Colasanti

77

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
Il sistema informatico costituito dalla base dei dati e dal suo sistema di gestione è in generale complesso. Il DBA (Data Base Administrator) è la persona che si occupa della gestione dell’intero sistema del database, dalla creazione degli utenti, all’assegnazione degli spazi, al backup, e così via.
Cecilia Colasanti 78

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
In realtà esistono tre utenti amministratori: internal – ha i massimi privilegi compreso start e stop del DB. Internal può essere usato solo dall’utente UNIX che ha installato il DB. L’utente internal non ha una password quindi chi ha installato il DB entra con la sua password UNIX e poi come internal
Cecilia Colasanti 79

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
sys – è il proprietario del dizionario dei dati. Ha gli stessi privilegi di internal ma non ha la possibilità di restart del DB system – è simile a sys. System lavora con i privilegi che gli dà sys. System viene usato ad esempio per creare utenti, tablespace, etc. Tutto ciò è assolutamente trasparente per l’utente finale.
Cecilia Colasanti 80

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
Vediamo i comandi dati da un DBA per creare un utente ed assegnargli uno spazio. Prima viene creato uno spazio che si chiama dati_cecilia, si appoggia al file « .dbf » e ha dimensione 10M tramite il comando:
Cecilia Colasanti 81

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
create tablespace <dati_cecilia> datafile ‘</usr/oracle/MODELMART/temp/dati01_ CECILIA.dbf>’ size <10M>; Poi si crea un utente che si chiama cecilia, che si appoggia sulla tablespace dati_cecilia, che usa un tablespace di appoggio temp e che può scrivere su tutto dati_cecilia, tramite
Cecilia Colasanti 82

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
create user <cecilia> identified by <cecilia> default tablespace <dati_cecilia> temporary tablespace <temp> quota unlimited on <dati_cecilia>; Per permettere la login si dà un privilegio con il comando
Cecilia Colasanti 83

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
grant create session to cecilia; grant resource to cecilia; Il precedente comando dà molti privilegi all’utente cecilia compreso quello di poter scrivere al di là dello spazio assegnato a cecilia
Cecilia Colasanti 84

La gestione delle utenze in Oracle: Utenti, Privilegi e Ruoli
Per ovviare a questo inconveniente si usa: revoke unlimited tablespace from cecilia;

Cecilia Colasanti

85

La gestione dei dati in Oracle: il dizionario dei dati
Il database Oracle possiede al suo interno il cosiddetto data dictionary generato al momento della creazione del database. E' formato da una serie di tabelle e viste di sistema (proprieta’ dell' utente SYS) a disposizione degli utenti per la consultazione di tutte le informazioni necessarie per una completa e corretta gestione del database. La tabella che descrive tutto il dizionario dati si chiama DICTIONARY.
Cecilia Colasanti 86

Il prodotto standard di interfaccia con Oracle: SQL Plus
SQL*PLUS è l’ambiente Oracle che permette l’esecuzione dei comandi SQL e PL/SQL. L’accesso avviene mediante login e password utente.

Cecilia Colasanti

87

Il prodotto standard di interfaccia con Oracle: SQL Plus
Regole per i comandi SQL*PLUS: -i comandi possono essere scritti indifferentemente in maiuscolo oppure in minuscolo -devono essere scritti su una unica riga e se scritti su più righe ognuna di queste deve terminare con un “-” -possono essere abbreviati -non vengono memorizzati nel buffer -restano attivi fino alla chiusura della sessione di lavoro -non terminano con il simbolo “;”
Cecilia Colasanti 88

Il prodotto standard di interfaccia con Oracle: SQL Plus
Elenco di alcuni comandi:

@path esegue lo specifico file di istruzioni indicato nel path Accept legge una riga in input e la memorizza in una variabile Change cambia il testo nella corrente linea di buffer Clear resetta o cancella il valore corrente Connect connessione al DB di un utente Disconnect disconnessione dal DB Define definisce una variabile e il suo tipo di dato Describe lista le specifiche di una tabella, vista, sinonimo, …
Cecilia Colasanti 89

Il prodotto standard di interfaccia con Oracle: SQL Plus
Edit invoca un ambiente di testo Execute esegue un PL/SQL Exit termina la sessione di lavoro Help accede al sistema di help Pause visualizza una linea vuota successiva alla linea contenente testo Print visualizza il valore corrente di una variabile d’appoggio Set setta una variabile di sistema che modifica l’ambiente di lavoro per la sessione in corso
Cecilia Colasanti 90

Il prodotto standard di interfaccia con Oracle: SQL Plus
Show visualizza il valore di una variabile del sistema SQL*PLUS o il corrente ambiente SQL*PLUS Spool memorizza il risultato di una query in un file Start esegue il contenuto di uno specifico file Timing memorizza il valore di un periodo di tempo trascorso Undefine elimina qualsiasi variabile precedentemente creata con il comanda Define sia in modo esplicito che implicito Variable dichiara una variabile alla quale ci si può riferire in PL/SQL
Cecilia Colasanti 91

Cecilia Colasanti 06.46732211 cecilia.colasanti@istat.it

Cecilia Colasanti

92