Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
SQL-2 ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
2
SQL Komutları Yapısal Sorgulama Dili (SQL-Structured Query Language)
Veri İşleme Dili (DML-Data Manipulation Language) Veri Tanımlama Dili (DDL-Data Definition Language) Veri Kontrol Dili (DCL-Data Control Language)
3
SQL Komutları 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ı 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ı 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
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
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);
16
SQL - LEFT OUTER JOIN Komutu
Tüm hocaların girdiği dersleri gösteriniz. select * FROM HOCALAR LEFT OUTER JOIN DERSLER ON HOCALAR.HOCA_NO=DERSLER.HOCASI
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);
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
INSERT 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
23
INSERT 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
1080203002 nolu öğrencinin BM AT2 dersinden 2011-2012 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 <tablo_adı>(alan_adı veri_türü)
34
CREATE 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. create table firma (firma char, Tarih DATETIME, sehir char, no int, Odeme_tipi money)
35
CREATE Müşteri tablosunda, ad ve soyad 20 karakter, doğum tarihi olacak şekilde tabloyu oluşturunuz. create table musteri (ad char(20), soyad char(20), doğum DATETIME, telefon int)
36
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. 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))
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 Öğrenci notları tablosuna öğrenci tablosundan öğrenci_id yabancı anahtar şekilde giriniz. Tabloda öğrenci _notu alanı da tamsayı olsun. CREATE TABLE ogrenciNot (notu INT, ogr_id int, CONSTRAINT ilkkısıt FOREIGN KEY(ogr_id) REFERENCES ogrenci(ogr_id))
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
Access de çalışmıyor…. Öğ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
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 http://altanmesut.trakya.edu.tr/vt/
.pdf orular.pdf
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.