Sunteți pe pagina 1din 3

Comanda SELECT

Aplicaie 1

La un serviciu de inmatriculari auto se ine evidena autoturismelor inmatriculate,
folosindu-se 2 tabele:

PERSOANE ( id_pers (number), Nume (varchar2), Prenume(varchar2), Localitate
(varchar2))

MAINI ( id_maina (number), Marca (varchar2), id_pers(number) )

Sa se efectueze urmatoarele cerinte si interogari:
a) adugai cte 3 nregistrri n cele dou tabele
b) s se afieze toate persoanele care nu au nici o main
c) s se afieze toate mainile care aparin unei persoane al careui nume incepe cu litera
R

Aplicaie 2

La Biblioteca universitara Tudor Arghezi din cadrul Universitatii Constantin Brancusi
din Targu-Jiu se dorete evidena persoanelor nscrise, despre care avem la dispoziie
urmatoarele informaii: (CNP, numele, cod_acces) ultimul fiind necesar pentru acces la sala de
lectur.
Implementai urmtoarele cerine:
a) Sa se creeze o tabela in care sa se gestioneze informatiile despre persoanele care se
inscriu la biblioteca i apoi sa se adauge minimum 7 nregistrri
b) Sa se calculaze cte persoane sub 25 ani sunt nscrise la bibliotec
c) Sa se afiseze numele i codul de acces al persoanelor nscute ntr-un anul 1995


Aplicaie 3

Sa se organizeze o agenda personal cu urmtoarele informaii: nume, data naterii, localitate
de domiciliu, telefon fix, telefon mobil.
Implementai urmtoarele cerine:
a) Sa se creeze o tabela in care sa se gestioneze informatiile mai sus mentionate i apoi sa
se adauge minimum 7 nregistrri
b) Sa se afle cte persoane i srbtoresc data naterii azi
c) Sa se afiseze numerele de telefon ale persoanelor localitatea Targu-Jiu i al cror nume
ncepe cu litera R
d) Sa se afiseze pentru persoanele din Targu-Jiu numele, telefonul fix, telefonul mobil i
data naterii n formatul 25 th March 1995


Aplicaie rezolvata

La un cabinet medical de medicina de familie se ine evidena persoanelor arondate
folosindu-se o baza de date cu 2 tabele:

Primul tabel se folosete pentru a reine informaii despre pacieni:
PACIENTI ( COD_P, NUME, ADRES, PROFESIA, STAREA CIVIL (CASTORIT,
NECSTORIT) )

Cel de-al doilea tabel se folosete pentru a reine informaii despre consultaiile pe care le-a
efectuat medicul de familie:

CONSULTATII ( COD_C - CODUL CONSULTAIEI, DATA DATA
CONSULTAIEI, DIAGNOSTIC, COD_P CODUL PACIENTULUI, PRET PREUL
CONSULTAIEI)


Sa se construiasca tabelele (cu constrngerile corespunztoare) i sa se introduca date n tabele
(min. 10 nregistrri);
1) afiai toate informaiile despre consultaiile pacientului cu numele Mimi Ghica
2) afiai numele pacienilor consultai astzi
3) afiai numrul de pacieni consultai acum dou zile
4) afiai toate informaiile despre pacienii care au fost consultai n aceeai zi cu Dan
Alexa
5) afiai numele i vrsta fiecrui pacient

Solutie: - Crearea tabelelor:

CREATE TABLE pacienti
(
cod_p number primary key,
nume varchar2(40),
adresa varchar2(100),
profesia varchar2(40),
starea_civila varchar2(15)
)

CREATE TABLE consultatii
(
cod_c number primary key,
data date,
diagnostic varchar2(50),
cod_p number references
pacienti(cod_p),
pret number(5,2)
)
Presupunem ca am introdus urmatoarele date:

INSERT INTO pacienti VALUES (1,'Mimi Ghica','str.Eroilor, nr.30, Targu-Jiu, Gorj', 'minerit',
'necasatorita')
INSERT INTO consultatii VALUES (1, '10.02.2013', 'insuficienta respiratorie', 1, 25)

Interogari:

1) SELECT p.nume,c.*
FROM pacienti p,consultatii c
WHERE p.cod_p=c.cod_p AND p.nume='Mimi Ghica'

2) SELECT p.nume
FROM pacienti p, consultatii c
WHERE p.cod_p=c.cod_p AND to_char(c.data) = to_char (sysdate)

3) SELECT count(cod_c)
FROM consultatii
WHERE to_char(data)=to_char(sysdate-2)

4) SELECT p.nume
FROM pacienti p, consultatii c
WHERE p.cod_p=c.cod_p AND p.nume<>'Dan Alexa'
AND c.data IN
(SELECT data
FROM consultatii
WHERE cod_p=
(SELECT cod_p
FROM pacienti WHERE nume='Dan Alexa'))

5) SELECT nume, trunc((sysdate-data_n)/365) varsta
FROM pacienti

S-ar putea să vă placă și