Table of Contents

Laborator 02 - Introducere în SQL și SQL*Plus

Obiective

Materiale ajutătoare

Resurse BD

Laborator 2

SQL*Plus

Descriere

Utilizare în consolă

  • ORACLE_BASE indică directorul de bază unde este instalat software-ul ORACLE;
  • ORACLE_HOME indică directorul unde este instalat software-ul Oracle;
  • ORACLE_SID identifică o bază de date la nivelul sistemului de operare.

Setarea variabilelor de mediu în cmd/terminal

Setarea variabilelor de mediu în cmd/terminal

  • Windows (cmd)
       set ORACLE_BASE=C:\app\oracle
       set Oracle_HOME=%ORACLE_BASE%\product\12.1.0\dbhome_1
       set ORACLE_SID=orcl
       set PATH=%PATH%;%ORACLE_HOME%\bin
 
  • Linux (terminal)
       export ORACLE_BASE=/u01/app/oracle
       export Oracle_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
       export ORACLE_SID=orcl
       export PATH=$ORACLE_HOME/bin:$PATH
       export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
 

Conectare
Pentru a vă conecta la SQL*Plus în consolă comanda care se folosește este:

sqlplus [username[/password[@bazadate]]]

Comenzi
Comenzile SQL*Plus pot fi editate direct în linia de comandă, sau pot fi editate cu orice editor cunoscut; Există un editor simplu, inclus în utilitar, care se accesează tastând edit (ed) în linia de comandă și care recunoaște următoarele comenzi:

Comanda Abreviere Utilitate
APPEND text A text Adaugă text la sfârșitul liniei curente
CHANGE/old/new C/old/new Schimbă old text cu new text în linia de comandă
CHANGE/text/ C/text/ Șterge textul din linia curentă
CLEAR BUFFER CL BUFF Șterge toate liniile din bufferul SQL
DELETE DEL Șterge linia curentă
INPUT I Inserează un număr nedefinit de linii
INPUT text I text Inserează o linie continuă în textul respectiv
LIST L Listează toate liniile din buffer
LIST n L n Listează linia specificată
LIST n m L n m Listează liniile de la n la m
RUN R Afișează și execută comanda SQL curentă în buffer
/ Execută comanda curentă din buffer

Editare comenzi

O comandă editată cu un editor se poate executa astfel:
* Se copiază comanda din editor (Copy/Paste) și se execută cu / sau RUN;
* Se execută tot scriptul (care poate conține mai multe comenzi) astfel:
  * SQL> @file_path_and_name
  * SQL> start file_path_and_name

Alte comenzi utile

Alte comenzi utile

În linia de comandă se mai pot da și următoarele comenzi:
* SAVE file_path_and_name – permite salvarea într-un fișier a conținutului bufferului SQL*Plus;
* GET file_path_and_name – încarcă conținutul unui fișier salvat în prealabil în buffer;
* START file_path_and_name – lansează în execuție comenzile salvate în fișier;
* @file_path_and_name – execută comenzile din fișier;
* EXIT – ieșire din SQL*Plus.

SQL

Descriere

Comenzi
Comezile SQL sunt conturate ca blocuri de interogare folosite pentru:

Limbajul SQL are următoarele comenzi, grupate în 4 categorii:

Comenzile DML

Comenzile DDL

Comenzile DCL

Reguli de scriere a comenzilor SQL

Crearea unei tabele

Sintaxa

CREATE TABLE [ schema. ] tablename
(
    column_name_1 datatype [DEFAULT VALUE|expression] [inline_constraints] ,
    [column_name_2 datatype [DEFAULT VALUE|expression] [inline_constraints] , ....]
)

Exemple
Ex. 1. Să se creeze un nomenclator de departamente, o tabelă pentru grila de salarizare și o tabelă pentru evidența angajaților.

Constrângeri

Ex. 2. Să se adauge chei primare si chei străine pentru tabelele de la Ex. 1. Pentru tabela departamente să se adauge o constrângere unique pentru coloana denumire_departament. Pentru tabela angajati sa se adauge o constrângere unique pentru coloanele nume și prenume.

Observații

  1. Se pot crea toate constrângeile de la Ex. 2 în momentul când se creează tabelele (vezi următoarele exemple);
  2. Atenție la ordinea în care se creează tabelele, deoarece nu se poate crea o cheie străină într-o tabela atâta timp cât tabela la care se face referință nu este creata;
  3. În momentul când se dorește să se șteargă tabelele din baza de date, mai întâi trebuie șterse cele care referă alte tabele apoi tabela care este referita prin cheie străină. Din exemplele noastre, mai întâi trebuie ștearsa tabela angajati (care referă tabela departamente printr-o cheie străină) și apoi tabela departamente;
  4. Pentru a vedea structura unei tabele se folosește comanda desc[ribe] nume_tabel, ex: desc angajati.

Inserarea datelor într-o tabelă

Sintaxa

INSERT INTO nume_tabel(column_name1 [, column_name2 [, ...]]) VALUES(value1 [, value2, [....]])
INSERT INTO nume_tabel VALUES(value_column1, value_column2, ...)

Exemple
Ex. 3. Să se insereze informații în tabelele create la Ex. 1. (Atenție la ordinea în care se face insertul)

Vizualizarea datelor

Sintaxa

SELECT [* | {column_name1[, column_name2[,...]]}]
FROM  TABLE_NAME
[WHERE conditions]

Exemple
Ex. 4. Să se afișeze toate informațiile din tabela angajații.


Ex. 5. Să se afișeze numele, funcția și salariul pentru toți angajații.

Ex. 6. Să se afișeze numele, prenumele și salariu pentru angajații din departamentul 10.

Ex. 7. Să se afișeze numele, prenumele și salariu pentru angajații care au funcția ‘Director’.

Modificarea datelor

Sintaxa

UPDATE TABLE_NAME 
SET column_name1 = new_value1 [, column_name2 = new_value2, [,...]] 
[WHERE conditions]

Exemple
Ex. 8. Să se modifice numele angajatului cu id-ul 1002 în ‘Popescu’. Verificați dacă s-a facut modificarea.

Ex. 9. Să se acorde comision la toți angajații egal cu 10% din salariu. Verificați dacă s-a facut modificarea.

Ștergerea datelor

Sintaxa
Pentru a șterge o înregistrare se folosește comanda DML DELETE; Sintaxa comenzii (veriunea simplificată; mai multe detalii aici)

DELETE FROM tablename [WHERE conditions];

Exemple
Ex. 10. Să se șteargă

Exerciții individuale

Ex. 1. Să se implementeze o bază de date pentru un Blog folosind următoarea diagramă.

Ex. 2. Să se implementeze o bază de date pentru un rețete culinare folosind următoarea diagramă.

Ex. 3. Să se implementeze o bază de date pentru o flota de masini folosind următoarea diagramă.

Ex. 4. Să se implementeze o bază de date pentru o florărie folosind următoarea diagramă.

Ex. 5. Să se implementeze o bază de date pentru o bibliotecă folosind următoarea diagramă.

Ex. 6. Să se implementeze o bază de date pentru cântece folosind următoarea diagramă.