Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 5 di 41
  • livello principiante
Indice lezioni

Lavorare con SQL Plus

Interagire con il database inserendo comandi in modalità testo, grafica e web
Interagire con il database inserendo comandi in modalità testo, grafica e web
Link copiato negli appunti

SQL* Plus è un software utilizzato sia dai DBA, sia da programmatori PL/SQL per interagire con i database. Permette infatti di eseguire comandi SQL, script PL/SQL e funzioni di amministrazione.

Il tool è compreso nell'installazione della versione server di Oracle, mentre per la versione client è necessario specificare la relativa opzione o modalità di installazione. Esaminiamo alcuni comandi di base.

Comandi base di SQL* Plus

Abbiamo già visto come stabilire una connessione ad un database. Colleghiamoci nuovamente al database Seed utilizzando l'utente HR. Possiamo farlo in due modi.

Nel primo modo andiamo su Start>Programmi>Oracle_HOME>Application Development>"SQL Plus" e inseriamo le credenziali di accesso per l'utente HR nella finestra di login. Ricordiamo di fare riferimento al nostro servizio di rete.

Figura 1. Finestra di login con la password criptata
Finestra di login con la password criptata

Possiamo verificare l'identità dell'utente connesso con il comando show user.

Il secondo modo consiste nell'aprire un prompt dei comandi (Start>Esegui e cmd) e scrivere:

C:>sqlplusw hr/hrpassword@test-servizio

Anche qui possiamo verificare quale è l'utente connesso al database Seed.

Il comando sqlplusw lancia SQL* Plus in modalità grafica. Se si omette il nome del servizio, SQL* Plus proverà la connessione in modalità locale. È però necessario aver impostata la variabile d'ambiente oracle_sid.

Stabilita la connessione con SQL*Plus è possibile connettersi ad un altro database (locale o remoto) o rimanere connessi allo stesso, ma con un altro utente, utilizzando il comando CONNECT.

Sintassi di CONNECT

CONNECT <nome_utente>/<password_utente>@<nome_servizio_rete>

Lo slash (/) separa il nome dell'utente dalla sua password. Non avendo a disposizione altri utenti se non quelli amministrativi proviamo ora a collegarci come utente SYSTEM (password: systemuser).

CONNECT system/systemuser@test-servizio

Ovviamente la connessione con l'utente HR, stabilita precedentemente, viene terminata. Se si omette l'inserimento della password sarà SQL* Plus ad chiedercela. Facciamo ancora un esempio.

Figura 2. Esempio di CONNECT
Esempio di uso di CONNECT

Altrettanto importante è DISCONNECT che consente la disconnessione dell'utente dal database a cui è collegato senza terminare SQL* Plus.

Figura 3. Esempio di DISCONNECT
Esempio di uso di DISCONNECT

Per terminare la connessione e uscire definitivamente da SQL* Plus usiamo i comandi EXIT o QUIT.

Per modificare la password dell'utente con cui ci siamo connessi utilizzeremo invece il comando PASSWORD. Proviamo a modificare la password dell'utente HR dopo esserci ricollegati come "HR".

SQL> PASSWORD
Figura 4. Esempio di uso di PASSWORD
Esempio di uso di PASSWORD

D'ora in poi la password per HR sarà quella scelta, e non più a "hrpassword".

Immissione di statement SQL

Le istruzioni in SQL* Plus (dette statement) dovrebbero essere immesse su un'unica riga. A volte queste sono così lunghe che è impossibile riuscirci. Si provvede perciò a "spezzarle" su più righe premendo il tasto "Invio".

Ogni statement deve sempre essere terminato con il punto e virgola (;), ciò che invece non vale per i comandi SQL.

Per terminare l'esecuzione di un comando o statement in SQL* Plus si usa la combinazione di tasti Ctrl+C. Questo è utile quando si desidera terminare una query su una grande tabella dove i tempi di risposta potrebbero essere molto lunghi.

Il comando DESCRIBE

È utile per ottenere informazioni sugli oggetti del database, come tabelle e viste. Se utilizziamo DESCRIBE su una tabella Oracle ci mostrerà le colonne di cui è composta, il tipo di dati di ogni colonna e se queste possono o meno contenere valori nulli (NULL).Per ora prendiamo per buoni questi concetti, che approfonidremo in seguito.

Tutti i comandi possono essere abbreviati, anche ai primi quattro caratteri o più, ad esempio DESC, DESCR e DESCRIB sono tutte scelte valide per DESCRIBE.

Proviamo a vedere quali sono gli oggetti posseduti da HR. Ricordiamo che quando un utente o account possiedono almeno un oggetto si indicano con il termine "schema". Con l'istruzione successiva chiediamo ad Oracle di mostrarci tutti gli oggetti dell'utente connesso.

SQL> SELECT * FROM tab
Figura 5. Risultato della query
Risultato della query

Usiamo il comando DESCRIBE con la tabella countries

SQL> DESC countries
Figura 6. Risultato della query
Risultato della query

La tabella countries ha tre colonne: country_id, country_name e region_id. La prima può contenere tipi di dati CHAR e non ammette valori nulli (NOT NULL). La seconda ammette tipi di dati VARCHAR2 e la terza NUMBER. Per quest'ultime si può anche omettere di inserire un valore e lo dimostra l'assenza della scritta NOT NULL nella relativa colonna "Null?". Per adesso tralasciamo il significato dei tipi di dati, ad essi dedicheremo un'intera lezione.

Salvare i comandi SQL in un file

Il comando SPOOL ci permette di memorizzare in un file la cronologia dei comandi e degli statement SQL eseguiti in SQL* Plus. La sintassi è la seguente:

SPOOL <nome_file>

Il comando, per default, scrive in un file con estensione .lst ma possiamo anche specificare un'altra estensione. Facciamo un esempio. Connettiamoci a SQL* Plus come utente HR. Quindi proviamo subito ad eseguire

SQL> SPOOL c:miofile.txt

Visualizziamo ancora una volta tutti gli oggetti posseduti dall'utente HR con le istruzioni

SQL> SELECT * FROM tab;
SQL> DESC countries

Con il comando

SQL> SPOOL OFF

terminiamo la scrittura nel file specificato. Ora proviamo ad aprire il file c:miofile.txt e troviamo il tutto ciò che abbiamo eseguito nell'intervallo fra SPOOL c:miofile.txt e SPOOL OFF, compresi i risultati di ciascun comando o statement.

iSQL* Plus

Se SQL* Plus può sembrare un'applicazione grezza, iSQL* Plus risulterà sicuramente più piacevole. La "i" sta per Internet e iSQL* Plus è, infatti, un'applicazione web. Puntiamo il browser all'indirizzo

http://127.0.0.1/isqlplus

Al posto di 127.0.0.1 possiamo anche scrivere il nome del pc su cui è installato Oracle.

Figura 7. Pagina di login
Pagina di login

Per questa applicazione vale quanto già detto per la connessione in modalità grafica di SQL* Plus: inseriamo quindi il nome utente, la password e il servizio per la connessione. Premiamo il tasto "Login" per effettuare la connessione al database.

Nello spazio riservato all'inserimento delle istruzioni possiamo scrivere tutto ciò che abbiamo già visto con SQL* Plus. Proviamo quindi con

Select * from tab;

e premiamo il tasto "Esegui". Il risultato dello statement immesso ci verrà mostrato in modalità Web. Più comandi possono anche essere elencati nell'apposito spazio, uno sotto l'altro, ed eseguiti in successione premendo "Esegui".

Nella parte in alto a destra di iSQL* Plus troviamo l'icona "Preferenze" che, tra l'altro, ci consente di modificare la password dell'utente con cui abbiamo stabilito la connessione al DB (link "Modifica password").

Per disconnettere l'utente possiamo cliccare sull'icona "Logout". Il pulsante "Salva script" memorizza in un file di testo tutti i comandi presenti nello spazio di inserimento, successivamente richiamabili usando i pulsanti "Sfoglia" e "Carica script".

Ti consigliamo anche