bÖlÜm -6: verİlerİ deĞİŞtİrmek - wordpress.com...bu komutlar sürekli değişiklikleri...
TRANSCRIPT
![Page 1: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/1.jpg)
BÖLÜM -6: VERİLERİ
DEĞİŞTİRMEK
◦ Her bir veri değiştirme komutunu
kullanabilmek. (Data Manipulation Language,
DML)
◦ Bir tabloya kayıt eklemek (INSERT)
◦ Bir tablodaki kayıtları güncellemek (UPDATE)
◦ Bir tablodan kayıtları silmek (DELETE)
◦ Transaction’ları kontrol etmek
www.mehmetsalihdeveci.net
![Page 2: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/2.jpg)
BİR TABLOYA KAYIT EKLEME
Bir tabloya kayıt eklerken INSERT komutu kullanılır.
Tek bir kayıt eklemek için kullanılan syntax :
www.mehmetsalihdeveci.net
![Page 3: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/3.jpg)
BİR TABLOYA KAYIT EKLEME
Department tablosuna yeni bir bölüm kaydedelim
insert into hr.departments values(11,'Computer Engineering',201,1700);
commit;
www.mehmetsalihdeveci.net
![Page 4: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/4.jpg)
BAŞKA BİR TABLODAN SATIR KOPYALAMA
Alt sorgular kullanılır.
VALUES ifadesi kullanılmaz.
Alt sorgu ile INSERT ifadesindeki kolon sayıları aynı
olmalıdır.
Alt sorgudan gelen tüm kayıtlar INSERT edilir.
www.mehmetsalihdeveci.net
![Page 5: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/5.jpg)
BAŞKA BİR TABLODAN SATIR KOPYALAMA
Hr.jobs tablosuna hr.departments tablosundan bir kayıt
ekleyelim
Insert into hr.jobs (job_id,job_title,min_salary,max_salary) select department_name,'Computer
Engineer Department',30000,80000 from hr.departments where department_id=11;
Commit;
www.mehmetsalihdeveci.net
![Page 6: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/6.jpg)
TABLODAKİ VERİLERİ GÜNCELLEMEK
Bir tablodaki verileri güncellemek için UPDATE komutu
kullanılır.
Bir seferde birden fazla kayıt güncellenebilir.
www.mehmetsalihdeveci.net
![Page 7: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/7.jpg)
TABLODAKİ VERİLERİ GÜNCELLEMEK
124 idli müdürün personellerine 250 lira zam yapalım
update hr.employees set salary=salary+250 where manager_id=124;
www.mehmetsalihdeveci.net
![Page 8: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/8.jpg)
TABLODAKİ VERİLERİ GÜNCELLEMEK
Jobs tablosundaki Computer Engineering title nı
güncelleyelim
update hr.jobs set job_id='Computer Architect',job_title='Computer Experts' where
job_id='Computer Engineering';
www.mehmetsalihdeveci.net
![Page 9: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/9.jpg)
TABLODAKİ VERİLERİ GÜNCELLEMEK
198 id li personelin maaşını en yüksek maaş ile
güncelleyelim
update hr.employees set salary=(select max(salary) from hr.employees) where employee_id=198;
www.mehmetsalihdeveci.net
![Page 10: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/10.jpg)
TABLODAKİ VERİLERİ SİLMEK
Bir tablodaki verileri silmek için DELETE komutu
kullanılır.
Bir seferde birden fazla kayıt silinebilir.
www.mehmetsalihdeveci.net
![Page 11: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/11.jpg)
TABLODAKİ VERİLERİ SİLMEK
Computer Architect pozisyonuna sahip pozisyonları
silelim
delete from hr.jobs where job_id='Computer Architect';
www.mehmetsalihdeveci.net
![Page 12: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/12.jpg)
TABLODAKİ VERİLERİ SİLMEK
Shipping departmanındaki personelleri silelim
delete from hr.employees where department_id=(select department_id from hr.departments
where department_name='Shipping');
www.mehmetsalihdeveci.net
![Page 13: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/13.jpg)
TRUNCATE
Bir tablodaki verilerin tamamını siler.
Geri dönülemez.
Hızlıdır.
DML değil, DDL komutudur.
www.mehmetsalihdeveci.net
![Page 14: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/14.jpg)
TRUNCATE
Employees tablosunu kopyalayıp deneyelim create table hr.isciler as select * from hr.employees;
truncate table hr.isciler;
select * from hr.isciler;
www.mehmetsalihdeveci.net
![Page 15: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/15.jpg)
DATABASE TRANSACTİONS
Bir DB transaction, şu işlemlerden biri ile başlar :
DML komutları çalıştırılınca.
DDL Komutları çalıştırılınca.
DCL komutları çalıştırılınca.
www.mehmetsalihdeveci.net
![Page 16: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/16.jpg)
DATABASE TRANSACTİONS
Bir DML komutu çallıştırılınca transaction başlar.
Aşağıdaki durumlarda transaction sonlanır :
Commit yada Rollback komutları çalıştırılınca.
Bir DDL yada DCL komutu çalıştırılınca (autocommit)
Kullanıcı logout olursa
Sistemde sorun olursa
www.mehmetsalihdeveci.net
![Page 17: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/17.jpg)
COMMİT & ROLLBAK ROLLBACK : Yapılan data değişikliklerinin geri
alınmasını sağlar.
COMMIT : Yapılan data değişikliklerinin kalıcı olmasını
sağlar.
Bu komutlar sürekli değişiklikleri uygulamadan önce
veri değişikliklerini izlemenize yardımcı olur.
Yapılan değişikliklerin session bazında kontrolü
sağlanır.
Güvenli bir çalışma ortamı sağlar.
www.mehmetsalihdeveci.net
![Page 18: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/18.jpg)
SAVEPOINT
Mevcut transaction içinde bir kayıt noktası koymak için
SAVEPOINT ifadesi kullanılır.
ROLLBACK [] komutu ile işaret edilen noktaya kadar
işlemler geri alınır.
www.mehmetsalihdeveci.net
![Page 19: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/19.jpg)
COMMİT VEYA ROLLBACK ÖNCESİNDE
İşlemi yapan kullanıcı, SELECT ile DML işlemlerinden
sonra yaptığı değişikliğin sonucunu görür.
Diğer kullanıcılar, mevcut kullanıcınn yaptığı DML
işlemlerinin sonucunu göremezler.
Etkilenen satırlar kilitlenir. Etkin olan satırda dier
kullanıcılar verileri değiştiremezler.
www.mehmetsalihdeveci.net
![Page 20: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/20.jpg)
COMMİT SONRASINDA
Veri tabanında veri değişiklikleri kalıcı olarak
uygulanır.
Verinin bir önceki mevcut durumu kaybolur.
Bütün kullanıcılar sonucu görebilir.
Etkilenen satırların kilidi serbest bırakılır.
Bütün SAVEPOINT noktaları silinir.
www.mehmetsalihdeveci.net
![Page 21: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/21.jpg)
COMMIT ÖRNEK
Hr.jobs tablosundan kayıt silindiğinde bu transaction
commitlenmemişse silme işlemini yapan kullanıcı bu
değişikliği görebiliyor. Yapılan işlem kalıcı olmadığı için
farklı kullanıcılar ise değişmemiş kayıtları görüntüler
delete from hr.jobs where job_id='Computer Engineering';
select * from hr.jobs;
www.mehmetsalihdeveci.net
![Page 22: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/22.jpg)
COMMIT ÖRNEK
İlgili transaction Commitlendiği zaman ise veri kalıcı
hale gelmektedir.
Commit;
select * from hr.jobs;
www.mehmetsalihdeveci.net
![Page 23: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/23.jpg)
ROLLBACK SONRASINDA…
Veri değişiklikleri geri alınır.
Verinin bir önceki durumu yerini alır.
Değişiklik olan kayıtlar serbest bırakılır, kilitleri
kaldırılır.
www.mehmetsalihdeveci.net
![Page 24: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/24.jpg)
ROLLBACK ÖRNEK
Silme işlemi yapan kullanıcı commitlemediği için farklı
kullanıcı bu değişikliği göremiyor ve değişiklik kalıcı
hale gelmiyor
delete from hr.employees;
select * from hr.employees;
www.mehmetsalihdeveci.net
![Page 25: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/25.jpg)
ROLLBACK ÖRNEK
Commitlenmemiş transaction Rollback yapılınca
değiştirilmemiş veri Undo tablespace sinden geri alınır
ve veri tutarlı hale gelmiş olur
rollback;
www.mehmetsalihdeveci.net
![Page 26: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/26.jpg)
DOĞRU VERİYİ OKUMA
www.mehmetsalihdeveci.net
![Page 27: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/27.jpg)
FOR UPDATE
Seçilen kayıtları, başka kullanıcıların değiştirmemesi
için kiilitler.
Birden fazla tablo joinde yer alıyorsa, bunların içerisinde
seçilen tüm kayıtlar her iki tabloda da kilitlenir.
Rollback yada Commit yapılınca kayıtlar serbest
bırakılır.
www.mehmetsalihdeveci.net
![Page 28: BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK - WordPress.com...Bu komutlar sürekli değişiklikleri uygulamadan önce veri değişikliklerini izlemenize yardımcı olur. Yapılan değişikliklerin](https://reader034.vdocuments.us/reader034/viewer/2022051904/5ff5b6bbf9e58e40bf01743d/html5/thumbnails/28.jpg)
FOR UPDATE ÖRNEK
Bir kullanıcı tabloyu for update seçeneğiyle çekiyor select * from hr.employees for update;
Farklı kullanıcı tabloyu silmeye çalışınca bu işleme izin
vermiyor Delete from hr.employees;
İlgili sessiom lock a düşüyor
www.mehmetsalihdeveci.net