Lucrarea 14

Oracle PL-SQL.

1. Limbajul PL-SQL

Exemplu:

CREATE TABLE stud (
  cods VARCHAR(4) CONSTRAINT pk_cods PRIMARY KEY,
  fac VARCHAR(2),
  nume VARCHAR(42) CONSTRAINT nn_nume NOT NULL,
  bursa NUMBER(8,0) DEFAULT 0, CONSTRAINT ck_bursa CHECK (bursa>=0),
  an_studiu NUMBER(1,0),
   CONSTRAINT ck_an CHECK (an_studiu<7),
  data_n DATE DEFAULT SYSDATE,
  adresa VARCHAR(32)
);

Exemplu:

CREATE TABLE stud (
...
an_studiu NUMBER(1) DEFAULT 1,
CONSTRAINT an_valid CHECK (an_studiu BETWEEN 1 AND 6) ... ) ;

Exemplu:

INSERT INTO stud ( cods, fac, nume, bursa, an_studiu )
   VALUES ( '1440', 'AC', 'POPESCU IONEL', 500000, 3);

Exemplu:

SELECT * FROM stud WHERE nume LIKE 'POP%';

SELECT * FROM STUD ORDER BY Nume;

SELECT an_studiu,AVG(bursa) FROM STUD GROUP BY an_studiu;

SELECT COUNT(*), MAX(bursa), AVG(bursa), SUM(bursa)
FROM STUD WHERE bursa > 0;

SELECT an_studiu, COUNT(cods) FROM stud GROUP BY an_studiu;

Exemplu:

Se va crea o tabela masini care va retine date despre masinile detinute de studenti:

CREATE TABLE masini (
nr_mas VARCHAR(9) NOT NULL,
cods VARCHAR(4) ,
tip VARCHAR(24),
culoare VARCHAR(16) ,
nr_usi NUMBER(1,0) DEFAULT 4 );


Afisarea tuturor studentilor împreuna cu datele despre masinile acestora se poate face prin comanda:

SELECT stud.nume, stud.an_studiu, stud.bursa, mas.nr_mas, mas.tip
   FROM stud, masini mas
   WHERE stud.cods = mas.cods
;

2. Probleme propuse

P1. Rulati exemplele prezentate în acest capitol.

P2. Sa se creeze o baza de date pentru gestionarea curselor de avion pe un aeroport. Ea va contine urmatoarele tabele:

AVIOANE
· coda - cod avion pe 4 caractere, cheie primara
· tipa - tip avion pe 16 caractere
· nr_loc - numarul total de locuri din acel avion

CURSA
· codc - cod cursa pe 5 caractere, cheie primara
· coda - cod avion care efectueaza cursa
· loc_liber - numarul de locuri libere la cursa respectiva
· orap - ora plecarii, numar cu 2 zecimale pt. minute
· oras - ora sosirii
· orasp - oras de plecare
· orass - oras de sosire
· codp - cod pilot

PILOTI
· codp - cod pilot, cheie primara
· nume - nume pilot
· grad - gradul pilotului

PASAGERI
· buletin - nr buletin, cheie primara
· nume - nume pasager
· codc - cod cursa la care este înscris
· loc - numarul locului ocupat la acea cursa (numere 1 .. n)

Se cere:
1. Sa se adauge 4 curse, 4 avioane si 16 pasageri înscrisi la cele 4 curse.
2. Sa se afiseze toate cursele sub forma: cod cursa, oras destinatie, tip_avion, nr total locuri, nr locuri libere, nume pilot.
3. Sa se afiseze toti pasagerii care merg într-un anumit oras, indiferent de cursa.
4. Sa se afiseze toti pasagerii grupati pe curse, ordonati alfabetic.
5. Sa se afiseze pasagerii care circula cu un anumit tip de avion, indiferent de cursa.

 


   

 
 

s.l. dr. ing. Dan Pescaru '2004