Anda di halaman 1dari 92

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
= Esprime uguaglianza tra due valori
LIKE 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 modify nominativo


varchar2(30);

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-feb-


1972’,’dd-mon-yyyy’), ‘roma’, sysdate);
sysdate prende la data di sistema

insert into clienti values (7302, ‘fulvio giannetti’, to_date (’05-03-


62’,’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-mm-
yyyy’), ‘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 (’01-


01-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 (’01-


01-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

Anda mungkin juga menyukai