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

Benzer belgeler