İlişkisel Cebir SQL 2. Veritabanı

İlişkisel Cebir SQL 2. Veritabanı


Veritabanı Tasarımı

Sorular ve Çözümler

1) Hiçbir hastanın aile doktoru olmayan doktorların bilgilerini listeleyiniz.

Kopyala
SELECT * FROM Doktor WHERE TCNo IN(SELECT TCNo FROM Doktor EXCEPT(SELECT Aile_Doktor_TCNo FROM Hasta))

2) 2 den fazla reçetede yazılan ilaçların isimlerini ve herbirinden kaçar adet yazdıldıklarını listeleyin.

Kopyala
SELECT İlaç_İsim,SUM(Miktarı) FROM Reçete_İlaç GROUP BY İlaç_İsim HAVING COUNT(Reçete_no)>2

3) Aynı reçetede hem aspirin hem de vermidon ilaçlarını alan hastaların TCno larını listeleyin.

Kopyala
SELECT Hasta_TCNo FROM Reçete WHERE Reçete_no IN(
SELECT Reçete_no FROM Reçete_İlaç WHERE İlaç_isim='Aspirin'
INTERSECT 
SELECT Reçete_no FROM Reçete_İlaç WHERE İlaç_isim='Vermidon'

4) Dr.Cin Ali tarafından verilen ve içerisinde aspirin olan reçete sahiplerinin isim ve tcnolarını bulun.

Kopyala
SELECT Ad,TCNo FROM Hasta WHERE TCNo IN(SELECT Hasta_TCNo FROM Reçete WHERE Reçete_no IN(
SELECT Reçete_no FROM Reçete_İlaç WHERE İlaç_isim='Aspirin' AND Reçete_no IN(SELECT Reçete_no FROM Reçete
WHERE Doktor_TCNo IN(SELECT TCNo FROM Doktor WHERE Ad='Cin Ali'))))

5) Aile doktorları dışında başka doktorlardan reçete almayan hastaların ad ve soyadlarını bulun.

Kopyala
SELECT Ad,Soyad FROM Hasta WHERE TCNO IN(SELECT Hasta_TCNo FROM Reçete WHERE Doktor_TCNo IN(
SELECT Aile_Doktor_TCNo FROM Hasta))
EXCEPT
SELECT Ad,Soyad FROM Hasta WHERE TCNO IN(SELECT Hasta_TCNo FROM Reçete WHERE Doktor_TCNo IN(
SELECT TCNo FROM Doktor EXCEPT(SELECT Aile_Doktor_TCNo FROM Hasta)))

6) Birden fazla hasta gören doktorların bütün bilgilerini bulun.

Kopyala
SELECT * FROM Doktor WHERE TCNo IN (SELECT Doktor_TCNo FROM Reçete GROUP BY Doktor_TCNo HAVING COUNT(Hasta_TCNo)>1)

7) Bütün hastalara reçete yazan doktorların isimlerini bulun.

Kopyala
SELECT Ad FROM Doktor WHERE TCNo IN(SELECT Doktor_TCNo FROM Reçete GROUP BY Doktor_TCNo HAVING COUNT(DISTINCT Hasta_TCNo) = (
SELECT COUNT(TCNo) FROM Hasta))

İlişkisel Cebir

İlişkisel cebir çözümlerini temize çektiğim zaman paylaşacağım şuan videonun üzerinde çizdiklerimi kullanabilirsiniz.