YZM5507
VERİ MODELLEME VE İLİŞKİSEL VERİTABANLARI
UYGULAMA #6
EMPLOYEE veritabanını kullanarak aşağıdaki durumlar için karmaşık SQL sorgularını
yazınız.
1. “Shaw Jinku” isimli çalışanın bölümünün ismini görüntüleyiniz
2. “433” numaralı çalışanın yöneticisinin ismini görüntüleyiniz.
3. “Roberts Sandi” isimli çalışan ile aynı eğitim seviyesine sahip çalışanları listeleyiniz.
4. “20” numaralı bölümden daha fazla çalışana sahip bölümlerin isimlerini görüntüleyiniz.
5. Şirkette “Houston Larry” isimli çalışandan daha uzun süre çalışmış olan çalışanları
listeleyiniz.
6. “Sales” bölümünde çalışanları listeleyiniz.
7. “30” numaralı bölümün çalışandan oluşan yeni bir tablo oluşturunuz.
8. Her bir bölümün en düşük maaşlı çalışanını görüntüleyiniz.
9. “Finance” bölümünde çalışanların akraba bilgilerini görüntüleyiniz.
10. Akrabası olmayan çalışanları listeleyiniz.
11. En düşük maaş ortalamasına sahip bölümün maaş ortalamasından daha düşük maaşa
sahip olan çalışanların isimlerini listeleyiniz.
STUDENT veritabanını kullanarak aşağıdaki durumlar için karmaşık SQL sorgularını yazınız.
12. “Jose Diaz” isimli öğrencinin danışmanının ismini ve telefon numarasını görüntüleyiniz.
13. En yüksek üç kapasiteye sahip ofis olmayan odaları listeleyiniz.
14. “Spring 2003” döneminde açılan ders gruplarından en az öğrenciye sahip dört grubu
listeleyiniz.
15. “Spring 2003” döneminde ders vermeyen öğretim üyelerini görüntüleyiniz.
1.
SELECT deptname FROM dept WHERE deptid = (SELECT deptid FROM employee
WHERE UPPER(Fname) = 'SHAW' AND UPPER(Lname) = 'JINKU');
2.
SELECT fname || ' ' || lname "Yönetici" FROM employee WHERE employeeid =
(SELECT supervisor FROM employee WHERE employeeid = 433);
3.
SELECT fname, lname, qualid FROM employee WHERE qualid = (SELECT qualid
FROM employee WHERE UPPER(fname) = 'ROBERTS' AND UPPER(lname) = 'SANDI');
4.
SELECT deptid, COUNT(*) "Çalışan Sayısı" FROM employee GROUP BY deptid
HAVING COUNT(*) > (SELECT COUNT(*) FROM employee WHERE DeptId = 20);
SELECT deptname FROM dept WHERE deptid IN (SELECT deptid FROM employee e
GROUP BY deptid HAVING COUNT(*) > (SELECT COUNT(*) FROM employee
WHERE deptid = 20));
SELECT (SELECT deptname FROM dept d WHERE d.deptid=e.deptid) "Bölüm",
COUNT(*) "Çalışan Sayısı" FROM employee e GROUP BY e.deptid
HAVING COUNT(*) > (SELECT COUNT(*) FROM employee WHERE DeptId = 20);
5.
SELECT fname, lname, hiredate FROM employee WHERE hiredate <
(SELECT hiredate FROM employee WHERE UPPER(fname) = 'HOUSTON'
AND UPPER(lname) = 'LARRY');
6.
SELECT fname || ' ' || lname "Çalışan" FROM employee WHERE deptid =
(SELECT deptid FROM dept WHERE UPPER(deptname) = 'SALES');
7.
CREATE TABLE emp30 AS SELECT employeeid, fname, lname, hiredate, salary
FROM employee WHERE deptid = 30;
8.
SELECT fname, lname, salary, deptid FROM employee o WHERE salary =
(SELECT MIN(salary) FROM employee WHERE deptid=o.deptid GROUP BY deptid);
9.
SELECT * FROM dependent WHERE employeeid IN
(SELECT employeeid FROM employee WHERE deptid =
(SELECT deptid FROM dept WHERE UPPER(deptname) = 'FINANCE'));
10.
SELECT fname, lname FROM employee WHERE employeeid NOT IN
(SELECT employeeid FROM dependent WHERE relation IS NOT NULL);
11.
SELECT fname, lname, salary FROM employee WHERE salary < ALL
(SELECT AVG(salary) FROM employee GROUP BY DeptId);
12.
SELECT name, phone FROM faculty WHERE facultyid = (SELECT facultyid
FROM student WHERE UPPER(last) = 'DIAZ' AND UPPER(First) = 'JOSE');
13.
SELECT ROWNUM, building, roomno, capacity FROM
(SELECT building, roomno, capacity FROM location WHERE roomtype <> 'O'
ORDER BY capacity DESC) WHERE ROWNUM <= 3;
14.
SELECT ROWNUM, courseid, section, maxcount FROM (SELECT courseid, section,
maxcount FROM crssection WHERE termid = 'SP03' ORDER BY maxcount)
WHERE ROWNUM <= 4;
15.
SELECT facultyid, name FROM faculty f WHERE NOT EXISTS (SELECT '1' FROM
(SELECT facultyid FROM crssection WHERE UPPER(termid)='SP03')
WHERE facultyid = f.facultyid);
Download

Cevaplar - eng.bahcesehir.edu.tr