Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Constraint-View-Sequence Union-Intersection-Except Exısts-In 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
VERİ TABANI YÖNETİMİ Ders 10: Oracle Nesneleri
SQL Komutlar 5 Sibel SOMYÜREK.
Alt Sorgular Veritabanı 2.
Veri Tabanı Yönetim Sistemleri
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.
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
Veri Bütünlüğü Sibel SOMYÜREK.
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.
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.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Arş. Gör. Pınar CİHAN.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
İNTERNET PROGRAMLAMA -2. Veritabanı Nedir? Veritabanı, bilgilerin düzenli bir ş ekilde saklandı ğ ı yapılardır. De ğ i ş kenlerdeki bilgiler ve formlardan.
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.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı 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ı
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
TETİKLEYİCİLER ve HATA KONTROLÜ
14.DERS Örnekler, Sorular BUKET DOĞAN.
5. HAFTA Öğr. Gör. Yunus KÖKVER
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
SQL.
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
DML ile veri ekleme, silme ve değiştirme
FONKSİYONLAR İbrahim Onur Sığırcı.
GROUP BY HAVING ORDER BY LIMIT
Sorgu / dml / ddl komutları
RAISE RECORD/CURSOR TRIGGER
SQL (STRUCTURED QUERY LANGUAGE)
Stored Procedure Öğr.Gör.Metin Akbulut.
SQL Server - Views.
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
SQL VIEW.
Sunum transkripti:

Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Constraint-View-Sequence Union-Intersection-Except Exısts-In Arş. Gör. Pınar CİHAN

Primary Key Constraint  PRIMARY KEY tablomuzdaki ilgili alanda benzersiz kayıtların tutulmasını istediğimiz durumlarda kullanılır.  Bir tablo sadece bir primary key içerdiğinde nasıl oluşturulduğunu görmüştük: id int NOT NULL, PRIMARY KEY (id)  PK düşürme: ALTER TABLE tabloadi DROP CONSTRAINT tabloadi_pkey;  Bir tabloda sadece bir primary key bulunur ama bununla birlikte tabloda birden fazla kolon için bileşik anahtar yani composite key oluşturulabilir: CONSTRAINT isim PRIMARY KEY (sütunlar)  PK düşürme: ALTER TABLE tabloadi DROP CONSTRAINT isim

Foreign Key Constraint  Temel olarak FOREIGN KEY yardımcı index oluşturmak için kullanılır.  Bir tabloda "id" alanına PRIMARY KEY uygulayabiliriz. Ancak aynı tablodaki başka bir alan farklı bir tablodaki kayda bağlı çalışabilir. Bu iki tablo arasında bir bağ kurmak gerektiği durumlarda FOREIGN KEY devreye giriyor.  FOREIGN KEY tanımlaması yapılırken hangi tablodaki hangi alanla ilişkili olduğunu REFERENCES ifadesinden sonra yazmak gerekir. CONSTRAINT isim FOREIGN KEY (sütun) REFERENCES tablo (sütunun bu tablodaki adı)

On Delete Cascade/On Update Cascade Constraint  ON DELETE CASCADE : Referans edilen tablodaki(employee) kayıt yada kayıtların silinmesi durumunda referans alan(team_employee) tabloda ilişkili kayıtların da silinmesi.  Örneğin employee’den bir satır silinince, team_employee tablosunda karşılık gelen satırların da silinmesi. CONSTRAINT isim FOREIGN KEY (sütun) REFERENCES tablo (sütunun bu tablodaki adı) ON DELETE CASCADE  ON UPDATE CASCADE : Referans edilen tablodaki kayıt yada kayıtların guncellenmesi durumunda referans alan tabloda ilişkili kayıtların da güncellenmesi CONSTRAINT isim FOREIGN KEY (sütun) REFERENCES tablo (sütunun bu tablodaki adı) ON UPDATE CASCADE

Check Constraint "Check Constraint" verinin doğruluğunu ve bütünlüğünü korumak üzere kullanılan bir kısıttır. Check constraint eklenmiş bir kolona yeni bilgi eklenirken veya bilgi güncellenirken, veri yazılmış olan kurallara göre kontrol edilir ve kurala uymuyorsa bir hata verilir ve veri kaydedilmez. CONSTRAINT isim CHECK (şart)

Örnek İlişki Tablosu FNAME* VARCHAR(15) MINIT VARCHAR(1) LNAME* VARCHAR(15) SSN* CHAR(9) BDATE DATE ADDRESS VARCHAR(50) SEX CHAR(1) SALARY NUMERIC SUPERSSN CHAR(9) DNO NUMERIC TNUMBER* NUMERIC(2) TNAME VARCHAR(15) TNO NUMERIC(2) ESSN CHAR(9) PLAY_TIME NUMERIC(2) employee team team_employee

Team tablosu ve Employee tablolarının ilişki tablosu olan Team_employee tablosunu aşağıdaki özelliklere sahip olacak şekilde yaratınız: Team tablosu:  Create table team(tnumber numeric(2), tname varchar(15), constraint pk_team primary key (tnumber)) Team_employee Tablosu: Nitelikler: Tno (numeric(2)), essn (char(9)), play_time (numeric (2)) 1. Tno ve essn birlikte belirleyici nitelik (primary key) olmalıdır. CREATE TABLE team_employee ( tno numeric(2), essn char(9), play_time numeric(2), CONSTRAINT pk_team_emp PRIMARY KEY (tno, essn), 2. 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. CONSTRAINT fk_team FOREIGN KEY (tno) REFERENCES team(tnumber) ON DELETE CASCADE, 3. 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. CONSTRAINT fk_emp FOREIGN KEY (essn) REFERENCES employee(ssn) ON DELETE CASCADE, 4. Play_time alanının 12’den çok olması engellenmelidir. (bir çalışan bir takımda 12 haftadan uzun süre oynayamaz!) CONSTRAINT play_time_ck CHECK (play_time<13) );

View  View, sorgu sonucunda oluşan sanal tablolardır.  VT’de 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: SELECT sütunlar FROM tablolar WHERE şart CREATE VIEW view_ismi AS

Örnek 1  Maaşı ile arasında olan çalışanların isimlerini ve maaşlarını gösteren bir view yazınız. SELECT fname, salary FROM employee WHERE salary BETWEEN AND CREATE VIEW maas_araligi AS NOT: Örneğin maaşı olan çalışanları employee tablosundan silersek, ilgili çalışanlar bu view’den de silinir.

Örnek 2  ‘ Sales’ departmanında çalışanların ad, soyad ve cinsiyetlerini gösteren bir view yazınız. SELECT fname, lname, sex FROM employee e, department d WHERE e.dno = d.dnumber AND d.dname=‘Sales’ CREATE VIEW sales_calisanlari AS NOT: View aşağıdaki gibi gösterilir. SELECT * FROM sales_calisanlari

Sequence  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: CREATE SEQUENCE isim [ INCREMENT BY #] [ START WITH #] [ MAXVALUE # | NOMAXVALUE ] [ MINVALUE # | NOMINVALUE ] [ CYCLE | NO CYCLE ] [ CACHE #] CREATE SEQUENCE seq INCREMENT BY 3 START WITH 2 MAXVALUE 33 NO CYCLE 5, 7, 9, 11, 13, 15, 17, 19, 21 önceden yaratılmış bir sequence hakkında bilgi almak için: Select * from sequence_name

Örnek 9’dan başlayıp 99’a kadar birer birer artan bir «sequence» oluşturun. Bu sequence’i «TEAM» tablosunun ‘tnumber’ larının numaralandırılması için kullanın. A.CREATE SEQUENCE seq_tnumber MINVALUE 9 MAXVALUE 99 INCREMENT BY 1; B.INSERT INTO team VALUES(nextval('seq_tnumber'), 'Yiğitler'); INSERT INTO team VALUES(nextval('seq_tnumber'), ‘Kediler');

Intersect  ‘OperatingSystems’ isimli projede çalışanların ve ‘Software’ departmanında çalışanların ad, soyad bilgilerini bulunuz. (UNION / INTERSECT / EXCEPT) SELECT fname, lname FROM employee e, project p, works_on wo WHERE pname = 'OperatingSystems' AND p.pnumber = wo.pno AND wo.essn = e.ssn SELECT fname, lname FROM employee e, department d WHERE dname = 'Software' AND e.dno = d.dnumber; INTERSECT

Union  ‘OperatingSystems’ isimli projede çalışanların veya ‘Software’ departmanında çalışanların ad, soyad bilgilerini bulunuz. (UNION ? / INTERSECT ? / EXCEPT ?) SELECT fname, lname FROM employee e, project p, works_on w WHERE e.ssn = w.essn AND p.pnumber=w.pno AND p.pname = ‘OperatingSystems’ SELECT fname, lname FROM employee e, department d WHERE e.dno = d.dnumber AND d.dname = ‘Software’ UNION

Except  “OperatingSystems” isimli projede çalışanların ve “Software” departmanında çalışmayanların ad, soyad bilgilerini bulunuz. (UNION ? / INTERSECT ? / EXCEPT ?) SELECT fname, lname FROM employee e, project p, works_on w WHERE e.ssn = w.essn AND p.pnumber=w.pno AND p.pname = ‘OperatingSystems’ SELECT fname, lname FROM employee e, department d WHERE e.dno = d.dnumber AND d.dname = ‘Software’ EXCEPT

NOT EXISTS  Herhangi bir departmanın yöneticisi olmayan ve herhangi bir kişinin amiri olmayan (hiyerarşinin en altındaki) çalışanların ad, soyadlarını bulunuz. SELECT fname, lname FROM employee e WHERE NOT EXISTS ( SELECT null FROM deparment d WHERE d.mgrssn = e.ssn ) AND NOT EXISTS ( SELECT null FROM employee e2 WHERE e2.superssn = e.ssn )

IN  İsmi ‘John’ olan işçilerin çalıştıkları departmanların isimlerini ‘IN’ kullanarak bulunuz. SELECT dname FROM department WHERE dnumber IN ( SELECT dno FROM employee WHERE fname = ‘John’ )