Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

ADRES İ NDEN ÖRNEK VER İ TABANLARINI İ ND İ R İ N İ Z SQL-2.

Benzer bir sunumlar


... konulu sunumlar: "ADRES İ NDEN ÖRNEK VER İ TABANLARINI İ ND İ R İ N İ Z SQL-2."— Sunum transkripti:

1 ADRES İ NDEN ÖRNEK VER İ TABANLARINI İ ND İ R İ N İ Z SQL-2

2 SQL Komutları Yapısal Sorgulama Dili (SQL-Structured Query Language) 1. Veri İş leme Dili (DML-Data Manipulation Language) 2. Veri Tanımlama Dili (DDL-Data Definition Language) 3. Veri Kontrol Dili (DCL-Data Control Language)

3 SQL Komutları 1. Veri İş leme Dili (DML-Data Manipulation Language) Bir tablodaki veriler üzerinde sorgulama, ekleme, güncelleme ve silme i ş lemleri gerçekle ş tirir. Select Insert Update Delete

4 SQL Komutları 2. Veri Tanımlama Dili (DDL-Data Definition Language) Sıfırdan tablo olu ş turma, tablo üzerinde de ğ i ş iklik yapma, tablo olu ş turma, indeks olu ş turma ve silme i ş lemleri gerçekle ş tirir. Create Table Drop Table Alter Table Create Index Drop Index Alter View

5 SQL Komutları 2. Veri Kontrol Dili (DCL-Data Control Language) Kullanıcılara veri tabanı üzerinde bazı haklar verme veya verilen hakları geri alma gibi i ş lemlere olanak tanıyan SQL komutlarını içermektedir. Create User Drop User Alter User Grant Revoke

6 Tabloların Birleştirilmesi Aynı tür değerler içeren iki tablonun birleştirilerek tek bir tablo elde edilmesine birleştirme (join) denir. Birleştirme ihtiyacı normalizasyonkuralları gereği birden fazla tabloya bölünen verilerin tekrar birleştirilmesi için ortaya çıkar. 3 tür temel birleştirici vardır; 1.Inner Join 2.Outer Join I.Left Outer Join II.Right Outer Join III.Full Outer Join 3.Cross Join

7

8

9

10

11 INNER JOIN Inner Join ifadesi ş imdiye kadar kullanı ğ ımız where ile aynı sonucu verir. select * from OGRENCILER, NOTLAR WHERE OGRENCILER.OGR_NO=NOTLAR.OGR_NO O ğ rencilerin aldıkları notları gösteriniz. select * FROM OGRENCILER INNER JOIN NOTLAR ON OGRENCILER.OGR_NO=NOTLAR.OGR_NO

12

13 SQL - LEFT OUTER JOIN Komutu INNER JOIN sorguları tablolar arasında birebir e ş le ş en verileri döndürür. E ğ er iki tablo arasında e ş le ş en verilerin yanısıra bir tablodaki e ş le ş meyen verileri de listelemek amacıyla OUTER JOIN komutu kullanılır; LEFT OUTER JOIN RIGHT OUTER JOIN

14 SQL - LEFT OUTER JOIN Komutu LEFT OUTER JOIN komutu ili ş kili tablolardaki verilerden soldaki tabloda bulunup ikinci tabloda bulunmayan kayıtları da listeler. SELECT alanadi1,alanadi2 FROM tablo_adi LEFT OUTER JOIN tablo_adi2 ON tabloadi.alan1=tabloadi2.alan1);

15

16 Tüm hocaların girdi ğ i dersleri gösteriniz. select * FROM HOCALAR LEFT OUTER JOIN DERSLER ON HOCALAR.HOCA_NO=DERSLER.HOCASI SQL - LEFT OUTER JOIN Komutu

17

18 SQL – RIGHT INNER JOIN Komutu RIGHT OUTER JOIN komutu ili ş kili tablolardaki verilerden sa ğ daki tabloda bulunup birinci tabloda bulunmayan kayıtları da listeler. SELECT alanadi1,alanadi2 FROM tablo_adi RIGHT OUTER JOIN tablo_adi2 ON tabloadi.alan1=tabloadi.alan1);

19

20 SQL – RIGHT INNER JOIN Komutu Az önceki örne ğ i right outer olacak ş ekilde yazınız. select * FROM dersler right OUTER JOIN hocalar ON HOCALAR.HOCA_NO=DERSLER.HOCASI

21 INSERT Bir tabloya kayıt eklerken kullanılan DML komutudur. INSERT INTO Tablo [(ALAN Listesi)] VALUES (Değerler Listesi) A ş a ğ ıdaki DML ifadesi HOCALAR tablosuna kayıt ekler: INSERT INTO HOCALAR (HOCA_NO,AD,SOYAD,UNVAN)VALUES (15, ‘Ahmet’, ‘Çalı ş kan’, ‘Prof. Dr.’) Veri türü karakter de ğ ilse tırnak kullanılmaz

22 Bir tabloya (ili ş kiye) bir veya daha fazla satır eklemede kullanılır. Kolon listesi zorunlu de ğ il. Belirtilmemi ş se TABLO’daki tüm kolonlar CREATE TABLE komutundaki sırada kabul edilir. De ğ erler Listesi sayısı, Kolon Listesi sayısına e ş it olmalıdır. De ğ erler Listesi’ndeki verinin yeri, ilgili kolonun yerine uygun olmalıdır. De ğ erler Listesi’ndeki verinin türü, ilgili kolonun veri türünde olmalıdır Foreign key olan tabloya kayıt primary key olan tablodaki ili ş kili alana ba ğ lı veriye uygun olarak girilebilir. Hesaplanmı ş alanlara veri girilmez INSERT

23 E ğ er eklenecek kaydın sadece belirli alanlarına veri girilecekse (Ör. HOCA_NO alanı ‘otomatik sayı’ veri türünde ise o alana veri giremeyiz), tablo adından sonra bu alanlar belirtilmelidir: INSERT INTO HOCALAR (AD, SOYAD, UNVAN) VALUES (‘Ahmet’, ‘Çalı ş kan’, ‘Prof. Dr.’)

24 Hocalar tablosuna, 18 numaraya Prof. Dr.Ay ş e Sarı’ı ekleyin. INSERT INTO HOCALAR ( HOCA_NO, AD, SOYAD, UNVAN ) VALUES (18, "Ay ş e", "Sarı", "Prof. Dr."); Aynı kaydı tekrar eklemeye çalı ş ın. Hangi hatayla kar ş ıla ş ırsınız? Neden? Bu hatanın olmaması için tasarımın ba ş langıcında ne yapabilirdik?

25 nolu ö ğ rencinin BM AT2 dersinden yılında aldı ğ ı vize 50, final 80 giriniz. insert into notlar (OGR_NO, DERS_KODU, DERS_YILI, VIZE, FINAL) values( , "BM AT2", " ",50, 80) 5 nolu ö ğ renci için ö ğ rencinin BM AT2 dersinden yılında aldı ğ ı vize 50, final 80 giriniz. Neden hata verdi?

26 DELETE Bir tablodaki bir yada daha çok kaydı silmek amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların silinece ğ i WHERE sözcü ğ ünden sonra verilen kriter ile belirlenir.

27 E ğ er WHERE sözcü ğ ü hiç kullanılmaz ise tablodaki tüm kayıtlar silinir(!!!!!!!!!!!!!!): DELETE FROM NOTLAR NOTLAR tablosundan ‘ ’ ö ğ retim yılına ait tüm kayıtları silen DML ifadesi : DELETE FROM NOTLAR WHERE DERS_YILI = ‘ ’

28 UPDATE Bir tablodaki kayıtların güncellenmesi amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların güncellenece ğ i WHERE sözcü ğ ü ile verilen kriter ile, kayıtlardaki güncellenecek alanlar ise SET sözcü ğ ü sonrasında yeni de ğ erlerinin atanması ile belirtilir. A ş a ğ ıdaki DML ifadesi PERSONEL tablosundaki Pazarlama bölümünde çalı ş anların maa ş larını %10 oranında arttırır. UPDATE PERSONEL SET MAAS = MAAS * 1.1 WHERE BOLUM = (SELECT BOLUM_NO FROM BOLUMLER WHERE BOLUM_ADI = ‘Pazarlama’)

29 5 nolu hoca okuldan ayrılmı ş ve derslerine 16 nolu hoca girmeye ba ş lamı ş tır. Dersler tablosunda 5 nolu hocayı 16 noluyla de ğ i ş tirin. update dersler set HOCASI=16 where HOCASI=5

30 Sorgu sonucunu tablo yapma Bir sorgu sonucunun yeni bir tablo olarak saklanması isteniyorsa FROM öncesinde INTO TABLO_ADI kullanılır. A ş a ğ ıdaki SQL cümlesi PERSONEL tablosundaki tüm verileri yeni yarataca ğ ı PERS_YEDEK tablosuna kopyalar: SELECT * INTO PERS_YEDEK FROM PERSONEL E ğ er PERS_YEDEK tablosu önceden varsa, yukarıdaki komut önce tabloyu siler, sonra tekrar yaratarak verileri kopyalar.

31 Sorgu sonucunu INSERT ile kullanma Bir tabloya veri eklerken INSERT ifadesinde VALUES yazılmayıp bir sorgu da yazılabilir. A ş a ğ ıdaki ifade PERSONEL tablosundaki tüm verileri önceden yaratılmı ş olan PERS_YEDEK tablosuna ekler: INSERT INTO PERS_YEDEK SELECT * FROM PERSONEL Bu komut çalı ş tırılmadan önce PERS_YEDEK tablosu bo ş de ğ ilse anahtar alan olan PERSONEL_NO alanında veri tekrarına neden olabilir (dolayısı ile hata verebilir). A ş a ğ ıdaki ifade sadece 2010 yılından sonra i ş e ba ş layanları ekler: INSERT INTO PERS_YEDEK SELECT * FROM PERSONEL WHERE GIRIS_TARIHI > #1/1/2010#

32 CREATE Özellikleri ve veri türleri ile birlikte yeni bir tablo (ili ş ki) tanımlamak için kullanılır. Özellikler için NOT NULL tanımlaması yapılabilir. Birincil anahtar özellikler (PRIMARY KEY) tanımlanabilir. Farklı (UNIQUE) de ğ erler alması gereken özellikler tanımlanabilir Bir alana veri giri ş i CHECK Constrain ile kontrol edilebilir Bir alana DEFAULT de ğ er verilebilir Yabancı anahtarlar (FOREIGN KEY) tanımlanabilir

33 CREATE Kullanım Ş ekli CREATE TABLE (alan_adı veri_türü)

34 CREATE create table firma (firma char, Tarih DATETIME, sehir char, no int, Odeme_tipi money) Firma Adını ve şehrini metin, numarasını sayı, kayıt tarihini tarih, firma ödeme tipini para birimi bazında düzenleyerek firma tablosunu oluşturunuz.

35 CREATE create table musteri (ad char(20), soyad char(20), do ğ um DATETIME, telefon int) Müşteri tablosunda, ad ve soyad 20 karakter, doğum tarihi olacak şekilde tabloyu oluşturunuz.

36 Create table ogrenci (ogr_id INT NOT NULL PRIMARY KEY, ogrNo CHAR(8) NOT NULL, tcNo int NOT NULL UNIQUE, ad CHAR(100) NOT NULL, Soyad CHAR(100) NOT NULL, dogumTarihi DATETIME not NULL, dogumYeri CHAR(50)) CREATE Öğrenci tablosunu, öğrenci_id not null ve primary key, öğrenci no 8 karakter ve not null, tc kimlik no int ve not null,ad soyad 100 karakter ve not null, doğumtarihi ve doğum yeri de olacak şekilde kodlayınız.

37 CREATE Tabloda, alanı yabancı anahtara dönü ş türmek için kod: CONSTRAINT kısıt_adı FOREIGN KEY(alan_adi) REFERENCES alinan_tablo(alan_id),

38 CREATE CREATE TABLE ogrenciNot (notu INT, ogr_id int, CONSTRAINT ilkkısıt FOREIGN KEY(ogr_id) REFERENCES ogrenci(ogr_id)) Öğrenci notları tablosuna öğrenci tablosundan öğrenci_id yabancı anahtar şekilde giriniz. Tabloda öğrenci _notu alanı da tamsayı olsun.

39 SQL – ALTER TABLE Komutu Tabloya alan ekleme, varolan alanı düzenleme ve silmek için ALTER TABLE komutu kullanılır, ALTER TABLE tablo_adi ADD alan_adi alan_turu; ALTER TABLE tablo_adi ALTER COLUMN alan_adi alan_turu; ALTER TABLE tablo_adi DROP COLUMN alan_adi;

40 SQL – ALTER TABLE Komutu Egitselyazilim veri tabanındaki kullanıcı tablosuna 50 karakterlik metin giri ş ine imklan sa ğ layan e_posta isimli bir alan eklemek için; ALTER TABLE kullanici ADD e_posta VARCHAR(50),

41 SQL – ALTER TABLE Komutu Egitsel yazilim veri tabanındaki kullanıcı tablosuna birden fazla alan eklemek için; ALTER TABLE kullanici ADD (e_posta VARCHAR(50), yas INT (3), yer VARCHAR(80));

42 SQL – ALTER TABLE Komutu Ö ğ renci tablosuna bolum ve cinsiyeti ekleyiniz. ; ALTER TABLE ogrenci ADD bolum CHAR(20), cinsiyet char(10)

43 SQL – ALTER TABLE Komutu Egitselyazilim veri tabanındaki kullanıcı tablosundaki yer alanının veri türüyle ilgili de ğ i ş iklik yapmak için; ALTER TABLE kullanici ALTER COLUMN yer VARCHAR(100);

44 SQL – ALTER TABLE Komutu Ö ğ renci tablosunda ad alanını 30 karakter olacak ş ekilde de ğ i ş tiriniz; ALTER TABLE ogrenci alter column ad CHAR(30);

45 SQL – ALTER TABLE Komutu Egitselyazilim veri tabanındaki kullanıcı tablosundaki yer alanı kaldırmak için; ALTER TABLE kullanici DROP COLUMN yer;

46 SQL – ALTER TABLE Komutu Ö ğ renci tablosundaki bölüm alanını kaldırınız. ALTER TABLE ogrenci drop column bolum

47 SQL – DROP TABLE Komutu Veritabanında yer alan bir tabloyu kaldırmak için; DROP TABLE tabloadi;

48 SQL – DROP TABLE Komutu Egitselyazilim veri tabanındaki kullanıcı tablosunu kaldırmak için; DROP TABLE kullanici;

49 SQL – DROP TABLE Komutu Ö ğ renci tablosunu siliniz; DROP TABLE ogrenci;

50 SQL – CREATE VIEW Komutu View olu ş turmak için; CREATE view view_adi AS SELECT alanadi,alanadi2 FROM tabloadi WHERE kosul;

51 SQL – CREATE VIEW Komutu Egitselyazilim veri tabanındaki kullanıcı tablosundaki Ahmet isimli kullanıcıların ad ve soyadları listeleyen bir view olu ş turmak için; CREATE view kul_adsoyad AS SELECT adi,soyadi FROM kullanici WHERE adi=‘Ahmet’;

52 SQL – CREATE VIEW Komutu Ö ğ rencilern yılında BM 111 nolu dersten aldıkları notları, ö ğ renci adlarına göre sıralatan bir view olu ş turunuz; CREATE view BM111_dersi SELECT ad, soyad,ders_yılı, ders_kodu FROM ogrenciler, notlar WHERE ö ğ renci.no=notlar.no Access de çalışmıyor….

53 SQL – ALTER VIEW Komutu View olu ş turmak için; ALTER view view_adi AS SELECT alanadi FROM tabloadi WHERE kosul;

54 SQL – ALTER VIEW Komutu Egitselyazilimdaki kul_adsoyad view’ını de ğ i ş tirerek, veri tabanındaki tüm kullanıcıların ad ve soyadları listelemesi için; ALTER view kul_adsoyad AS SELECT adi,soyadi FROM kullanici;

55 Kaynakça orular.pdf orular.pdf


"ADRES İ NDEN ÖRNEK VER İ TABANLARINI İ ND İ R İ N İ Z SQL-2." indir ppt

Benzer bir sunumlar


Google Reklamları