Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Arş. Gör. Pınar CİHAN.

Slides:



Advertisements
Benzer bir sunumlar
4 SQL- Yapısal Sorgulama Dili
Advertisements

Tablo oluşturma İlk olarak tabloları oluşturmamız gerekli..
SQL Structured Query Language
SQL (Structured Query Language)
Alt Sorgular Veritabanı 2.
Veri Tabanı Yönetim Sistemleri
Veri Tabanı Yönetim Sistemleri
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
BÖLÜM 6 SQL SERVER KOMUTLARI.
10 Gruplandırarak Sorgulama
Veri Bütünlüğü Sibel SOMYÜREK.
Departman ve Personel Tablosu Soruları
11 ekim 2011 VTYS –II Dersi. Kalıp İfadelerle Sorgu (Pattern) Eğer bir sözel verinin sadece belli kriterlere uyanlarını seçeceksek sütun_adı LIKE kalıp.
VIEW (BAKIŞ) OLUŞTURMA
GÖRÜNÜŞLER (VİEWS). Görünüş Temel tablolar üzerinde yeni bir tablo almak için yapılan işlemlerin sonucu Sanal tablo- gerçekten veri tabanında yoktur ve.
SQL SERVER 2008 Yücel YILDIRIM.
VeriTabanı Uygulama.
SQL (Structured Query Language). MySQL de Temel Komutlar : CREATE DATABASE isim; verilen isimde bir veri tabanı oluşturur. SHOW DATABASES; Tüm yaratılan.
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
SQL Komutları (2) Uzm. Murat YAZICI.
FONKSİYONLAR İbrahim Onur Sığırcı.
RAISE RECORD/CURSOR TRIGGER
Veri Tabanı Dersi 4. Laboratuvarı
SQL’ e Giriş Uzm. Murat YAZICI.
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
K ıSıT -V ıEW -S EQUENCE U NıON -I NTERSECTıON -E XCEPT E XıSTS -I N İbrahim Onur Sığırcı.
Yeni Veritabanı Oluşturma
C OMPANY DB / Ö RNEKLER İbrahim Onur Sığırcı. İ LIŞKI T ABLOLARı idfnamelnamebdate AhmetDemir MehmetBakır AyşeTunç1994.
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı Arş. Gör. Pınar CİHAN.
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
Veri Tabanı Yönetimi Dersi 2. Laboratuvarı Arş. Gör. Pınar CİHAN.
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
5. Temel SQL (Basic SQL) 5.1. SQL Veri Tanımlama ve Veri Tipleri (SQL Data Definition and Data Types) SQL de Şema ve Katalog Kavramı (Schema and.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
GROUP BY HAVING ORDER BY İbrahim Onur Sığırcı. Ö RNEK 1 – G RUP F ONKSIYONLARı * «Sales» departmanında kaç kişinin çalıştığını, toplam maaşlarını, en.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Constraint-View-Sequence Union-Intersection-Except Exısts-In Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 5
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı
VIEW lerle çalışmak 11.BÖLÜM.
Transaction ve Örnekler
Varlık-İlişki Modeli Örneği
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
Veri Tabanı Yönetim Sistemleri 1 Ders 10 Veri Sözlüğü ve DDL
14.DERS Örnekler, Sorular BUKET DOĞAN.
5. HAFTA Öğr. Gör. Yunus KÖKVER
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Company DB / Örnekler İbrahim Onur Sığırcı.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
FONKSİYONLAR İbrahim Onur Sığırcı.
GROUP BY HAVING ORDER BY LIMIT
Sorgu / dml / ddl komutları
RAISE RECORD/CURSOR TRIGGER
SQL (STRUCTURED QUERY LANGUAGE)
SQL Server - Views.
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
Intersect Tablo1 Sno Ad Soyad 1 Ali Ak 2 Veli Kara 3 Can Mor Tablo2
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
SQL VIEW.
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Arş. Gör. Pınar CİHAN

TEAM Tablosunun Oluşturulması Kolon AdıÖzelliğiTipi TNUMBER (PK)NOT NULLNUMERIC(2) TNAMENOT NULLVARCHAR(15) Şirkette çalışan işçiler kendi aralarında basketbol takımı kurmuştur. Her bir işçi belli hafta boyunca bu takımda oynayabilir. İşçilerin tek bir takımda oynama zorunluluğu yoktur. Takım tablosu aşağıdaki gibidir. CREATE TABLE TEAM ( TNUMBER NUMERIC(2) NOT NULL, TNAME VARCHAR(15) NOT NULL, PRIMARY KEY(TNUMBER) );

TEAM_EMPLOYEE Tablosunun Oluşturulması «TEAM» tablosu ve «EMPLOYEE» tablolarının ilişki tablosu olan «TEAM_EMPLOYEE» tablosu aşağıdaki özellikleri olacak şekilde oluşturulacaktır. Nitelikler: Tno (numeric(2)), essn (char(9)), play_time (numeric (2)) Tno: takım no’su; essn: çalışan ssn’si; play_time: bu çalışanın, bu takımda kaç hafta oynadığı. Kısıtlar:  Tno ve essn birlikte belirleyici nitelik (primary key) olmalıdır.  Tno Team tablosundaki tnumber’i referans almalıdır ve Team tablosundan bir satır silindiğinde bu satıra ait tno’lu satırlar da silinmelidir.  Essn Employee tablosundaki ssn’yi referans almalıdır ve Employee tablosundan bir satır silindiğinde bu satıra ait ssn’li satırlar da silinmelidir.  Play_time alanının 12’den çok olması engellenmelidir (bir çalışan bir takımda 12 haftadan uzun süre oynayamaz!). Kolon AdıTipi TNONUMERIC(2) ESSNCHAR(9) PLAY_TIMENUMERIC(2)

Cevap CREATE TABLE TEAM_EMPLOYEE ( TNO NUMERIC(2), ESSN CHAR(9), PLAY_TIME NUMERIC(2), CONSTRAINT PK_TEAM_EMP PRIMARY KEY(TNO,ESSN), *Tno ve Essn Primary key olarak tanımlandı. CONSTRAINT FK_TEAM FOREIGN KEY(TNO) REFERENCES TEAM(TNUMBER) ON DELETE CASCADE, *tno’nun, team tabosundaki tnumber’ı referans göstermektedir. On delete cascade ile team tablosunda bir takım (tnumber) silindiğinde, team_employee tablosunda karşılık gelen tno’ların bulunduğu satırlar da silinsin deniyor. CONSTRAINT FK_EMP FOREIGN KEY(ESSN) REFERENCES EMPLOYEE(SSN) ON DELETE CASCADE, *essn’nin employee tablosundaki ssn’i referans vermektedir. On delete cascade ile employee’den bir satır silinince, team_employee tablosunda karşılık gelen satırların da silinmesi isteniyor. CONSTRAINT PLAY_TIME_CK CHECK (PLAY_TIME<13) *play_time isimli numeric kolonun sadece 13’ten küçük sayılar içermek zorunda olduğu söyleniyor. );

VİEW Tanımı ve Oluşturulması  View, sorgu sonucunda oluşan sanal tablo yada sanal veri kümesi gibi düşünülebilir. Tablolar gibi veritabanında fiziksel olarak bulunmazlar, sorgu olarak saklanırlar.  View’lerin sorgularında adı geçen tabloların içeriği değiştirildiğinde View’lerin ürettiği sonuç da otomatik olarak değişir.  Syntax’ı aşağıdaki gibidir: CREATE VIEW viewname AS SELECT select-list FROM table-list [WHERE search-condition]

VIEW Örnekleri 1  Maaşı ile arasında olan çalışanların ad, soyad ve maaşlarını gösteren bir view yazın. (Employee Tablosu)

VIEW Örnekleri Cevap 1 CREATE VIEW maas_kriteri AS SELECT fname, lname, salary FROM employee WHERE salary >= AND salary <= NOT: Örneğin maaşı olan çalışanları employee tablosundan silersek, ilgili çalışanlar bu view’den de silinir.

VIEW Örnekleri 2  Sales isimli departmanda çalışanların ad, soyad ve cinsiyetlerini gösteren bir view yazın. (Employee ve Department Tablosu)

VIEW Örnekleri Cevap 2 CREATE VIEW sales_calisanlari AS SELECT fname, lname, sex FROM employee e, department d WHERE dname = 'Sales' AND d.dnumber = e.dno;

SEQUENCE Tanımı ve Oluşturulması  Sequence, belli bir sırada numeric değer üretilmesini sağlatan VT nesnesidir.  Genelde primary key’ler gibi eşsiz (unique) olan alanların değerlerinin otomatik arttırılması için kullanılır.  Syntax’ı aşağıdaki gibidir:  “Select * from sequence_name“ denilerek önceden yaratılmış bir sequence hakkında bilgi alınabilir CREATE SEQUENCE sequence_name [INCREMENT BY #] [START WITH #] [MAXVALUE # | NOMAXVALUE] [MINVALUE # | NOMINVALUE] [CYCLE | NO CYCLE] // Son değerden sonra başa dönme durumu [CACHE #] // Hız için bellek kullanımı

SEQUENCE Örnekleri 1  9’dan başlayıp 99’a kadar birer birer artan bir sequence yaratın. Bu sequence’ı Team tablosunun tnumber’larının numaralandırılmasında kullanın (bunun için team tablosuna veri girmeniz gerekecektir).

SEQUENCE Örnekleri Cevap 1 Sequence’in ismi seq olsun. CREATE SEQUENCE seq minvalue 9 maxvalue 99 increment by 1; INSERT INTO team VALUES(nextval('seq'), ‘Kediler'); nextval('seq') ile sequence’in sıradaki değerini alıp tnumber’a atıyoruz.

Tablolarda UNION, INTERSECT, EXCEPT İşlemleri 1  “OperatingSystems” isimli projede çalışanların ve “Software” departmanında çalışanların ad, soyad bilgilerini bulunuz. (UNION ? / INTERSECT ? / EXCEPT ?) NOT: Intersect ifadesi “ve” sözcüğünün karşılığıdır; iki kümenin kesişimini verir.

Cevap 1 SELECT fname, lname FROM employee e, project p, works_on wo WHERE pname = 'OperatingSystems' AND p.pnumber = wo.pno AND wo.essn = e.ssn INTERSECT SELECT fname, lname FROM employee e, department d WHERE dname = 'Software' AND e.dno = d.dnumber;

Tablolarda UNION, INTERSECT, EXCEPT İşlemleri 2  “OperatingSystems” isimli projede çalışanların veya “Software” departmanında çalışanların ad, soyad bilgilerini bulunuz. (UNION ? / INTERSECT ? / EXCEPT ?) NOT: Union ifadesi “veya” sözcüğünün karşılığıdır; iki kümenin birleşimini verir.

Cevap 2 SELECT fname, lname FROM employee e, project p, works_on wo WHERE pname = 'OperatingSystems' AND p.pnumber = wo.pno AND wo.essn = e.ssn UNION SELECT fname, lname FROM employee e, department d WHERE dname = 'Software' AND e.dno = d.dnumber;

Tablolarda UNION, INTERSECT, EXCEPT İşlemleri 3  “OperatingSystems” isimli projede çalışanların ve “Software” departmanında çalışmayanların ad, soyad bilgilerini bulunuz. (UNION ? / INTERSECT ? / EXCEPT ?) NOT: Except ifadesi “fark/hariç” sözcüğünün karşılığıdır; iki ayrı kümenin farkını verir.

Cevap 3 SELECT fname, lname FROM employee e, project p, works_on wo WHERE pname = 'OperatingSystems' AND p.pnumber = wo.pno AND wo.essn = e.ssn EXCEPT SELECT fname, lname FROM employee e, department d WHERE dname = 'Software' AND e.dno = d.dnumber;

Tablolarda UNION, INTERSECT, EXCEPT İşlemleri 4  Hiçbir departmanın veya hiçbir çalışanın yöneticisi olmayan çalışanların isimleri. (EXISTS ? / NOT EXISTS?) NOT: Not exists ifadesinden sonra gelen alt sorgunun sonuç kümesi, dış sorgunun (asıl sorgu) sonucunda dönen satırların içinde varsa bu satırlar elenerek sonuç elde edilir.

Cevap 4 SELECT fname, lname FROM employee e WHERE NOT EXISTS (SELECT null FROM department d WHERE d.mgrssn = e.ssn) AND NOT EXISTS (SELECT null FROM employee s WHERE s.superssn = e.ssn);

Tablolarda UNION, INTERSECT, EXCEPT İşlemleri 5  İsmi ‘John’ olan işçilerin çalıştıkları departmanların isimlerini ‘IN’ kullanarak bulunuz.

Cevap 5 Select dname From department Where dnumber in (select dno from employee where fname ='John')

Tablolarda UNION, INTERSECT, EXCEPT İşlemleri 6  ‘Sales’ departmanında kaç kişinin çalıştığını, en düşük, en yüksek, ortalama ve toplam maaşı bulunuz.

Cevap 6 SELECT COUNT (*), min (salary), max (salary), avg (salary), sum (salary) FROM department, employee WHERE dname = 'Sales' AND dnumber = dno;