YZM 5560 PL/SQL ile VERİTABANI PROGRAMLAMA
Transkript
YZM 5560 PL/SQL ile VERİTABANI PROGRAMLAMA
YZM 5560 PL/SQL ile VERİTABANI PROGRAMLAMA UYGULAMA #4 1. EMPLOYEE veritabanını kullanarak akrabası olmayan çalışanları yazdıran bir PL/SQL bloğu oluşturunuz. 2. STUDENT veritabanını kullanarak önşartı olmayan derslerin isimlerini ekrana yazdıran bir PL/SQL bloğu oluşturunuz. 3. STUDENT veritabanını kullanarak 2003 yılında açılan derslerin isimlerini ekrana yazdıran bir PL/SQL bloğu oluşturunuz. 4. EMPLOYEE veritabanını kullanarak standart girişten girilen bölüm ismi bilgisine göre o bölümde çalışanların isimlerini ve maaşlarını ekrana yazdıran bir PL/SQL bloğu oluşturunuz. 5. EMPLOYEE veritabanını kullanarak “Smith John” ile aynı bölümde çalışanların isimlerini ekrana yazdıran bir PL/SQL bloğu oluşturunuz. 6. STUDENT veritabanını kullanarak “Jose Diaz” isimli öğrencinin “Winter 2003” döneminde kayıtlı olduğu derslerin isimlerini görüntüleyiniz. 1. DECLARE CURSOR akrabayok IS SELECT fname, lname FROM employee WHERE employeeid NOT IN (SELECT employeeid FROM dependent WHERE relation IS NOT NULL); ad employee.fname%TYPE; soyad employee.lname%TYPE; BEGIN IF NOT akrabayok%ISOPEN THEN OPEN akrabayok; END IF; FETCH akrabayok INTO ad,soyad; WHILE akrabayok%FOUND LOOP DBMS_OUTPUT.PUT_LINE(ad || ' ' || soyad); FETCH akrabayok INTO ad,soyad; END LOOP; CLOSE akrabayok; END; Smith John Roberts Sandi Garner Stanley Houston Larry McCall Alex DECLARE CURSOR akrabayok IS SELECT fname, lname FROM employee WHERE employeeid NOT IN (SELECT employeeid FROM dependent WHERE relation IS NOT NULL); ad employee.fname%TYPE; soyad employee.lname%TYPE; BEGIN IF NOT akrabayok%ISOPEN THEN OPEN akrabayok; END IF; LOOP FETCH akrabayok INTO ad,soyad; EXIT WHEN akrabayok%NOTFOUND; DBMS_OUTPUT.PUT_LINE(ad || ' ' || soyad); END LOOP; DBMS_OUTPUT.PUT_LINE('Toplam ' || akrabayok%ROWCOUNT || ' adet akrabası olmayan çalışan var.'); CLOSE akrabayok; END; 2. DECLARE CURSOR önşartyok IS SELECT title FROM course WHERE prereq IS NULL; BEGIN FOR sayac IN önşartyok LOOP DBMS_OUTPUT.PUT_LINE(sayac.title); END LOOP; END; Basic English Database Systems College Algebra Accounting 3. DECLARE CURSOR verilenders IS SELECT title FROM course WHERE courseid IN (SELECT DISTINCT courseid FROM crssection WHERE termid LIKE '%03'); BEGIN FOR sayac IN verilenders LOOP DBMS_OUTPUT.PUT_LINE(sayac.title); END LOOP; END; Accounting Database Systems Systems Analysis English Literature College Algebra 4. DECLARE bolumad dept.deptname%TYPE := UPPER('&bolumad_gir'); CURSOR bolummaaş IS SELECT fname, lname, salary FROM employee WHERE deptid = (SELECT deptid FROM dept WHERE UPPER(deptname) = bolumad); BEGIN FOR sayac IN bolummaaş LOOP DBMS_OUTPUT.PUT_LINE(sayac.fname || ' ' || sayac.lname || ' ' || sayac.salary); END LOOP; END; bolumad dept.deptname%TYPE := UPPER('sales'); Garner Stanley 45000 Shaw Jinku 24500 5. DECLARE CURSOR çalışanlar IS SELECT p.fname, p.lname FROM employee e, employee p WHERE UPPER(e.fname)='SMITH' AND UPPER(e.lname)='JOHN' AND e.deptid=p.deptid; BEGIN FOR sayaç IN çalışanlar LOOP DBMS_OUTPUT.PUT_LINE(sayaç.fname || ' ' || sayaç.lname); END LOOP; END; Smith John Roberts Sandi Chen Sunny 6. DECLARE CURSOR dersler IS SELECT title FROM student s, crssection c, registration r, course u, term t WHERE UPPER(s.first)='JOSE' AND UPPER(s.last)='DIAZ' AND c.termid=t.termid AND UPPER(t.termdesc)='WINTER 2003' AND s.studentid=r.studentid AND r.csid=c.csid AND c.courseid=u.courseid; BEGIN FOR sayaç IN dersler LOOP DBMS_OUTPUT.PUT_LINE(sayaç.title); END LOOP; END; Accounting College Algebra Database Systems