-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathi04_delete.sql
More file actions
125 lines (94 loc) · 5.47 KB
/
Copy pathi04_delete.sql
File metadata and controls
125 lines (94 loc) · 5.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
-- ============================== DELETE ===================================
-- DELETE FROM tablo_adı; Tablonun tüm içerğini siler.
-- Bu komut bir DML komutudur. Dolayısıyla devamında WHERE gibi cümlecikler
-- kullanılabilir.
-- DELETE FROM tablo_adı
-- WHERE sutun_adi = veri;
use sys;
CREATE TABLE ogrenciler
(
id CHAR(3),
isim VARCHAR(50),
veli_isim VARCHAR(50),
yazili_notu int
);
INSERT INTO ogrenciler VALUES(123, 'Ali Can', 'Hasan',75);
INSERT INTO ogrenciler VALUES(124, 'Merve Gul', 'Ayse',85);
INSERT INTO ogrenciler VALUES(125, 'Kemal Yasa', 'Hasan',85);
INSERT INTO ogrenciler VALUES(126, 'Nesibe Yilmaz', 'Ayse',95);
INSERT INTO ogrenciler VALUES(127, 'Mustafa Bak', 'Can',99);
savepoint abc;
-- savepoint sikintisi varsa -> SET autocommit=0;
-- ayarlar sql execution auto commit tiki kaldr
-- DELETE FROM ogrenciler; -- Tüm verileri sil.
-- ROLLBACK TO ABC; -- Silinen Verileri geri getir.
-- SELECT * FROM ogrenciler;
/* =============================================================================
Seçerek silmek için WHERE Anahtar kelimesi kullanılabilir.
===============================================================================*/
/* -----------------------------------------------------------------------------
ORNEK1: id'si 124 olan ogrenciyi siliniz.
-----------------------------------------------------------------------------*/
delete from ogrenciler where id=124;
/* -----------------------------------------------------------------------------
ORNEK2: ismi Kemal Yasa olan satırını siliniz.
-----------------------------------------------------------------------------*/
delete from ogrenciler where isim='Kemal Yasa';
/* -----------------------------------------------------------------------------
ORNEK3: ismi Nesibe Yilmaz veya Mustafa Bak olan kayıtları silelim.
-----------------------------------------------------------------------------*/
-- delete from ogrenciler where isim='Nesibe Yilmaz' or isim='Mustafa Bak';
delete from ogrenciler where isim in('Nesibe Yilmaz','Mustafa Bak');
select * from ogrenciler;
/* ----------------------------------------------------------------------------
ORNEK4: İsmi Ali Can ve id'si 123 olan kaydı siliniz.
-----------------------------------------------------------------------------*/
delete from ogrenciler where isim='Ali Can' and id=123;
/* ----------------------------------------------------------------------------
ORNEK5: id 'si 126'dan büyük olan kayıtları silelim.
-----------------------------------------------------------------------------*/
delete from ogrenciler where id>126;
/* ----------------------------------------------------------------------------
ORNEK6: id'si 123, 125 veya 126 olanları silelim.
-----------------------------------------------------------------------------*/
delete from ogrenciler where id in('123','125','126');
/* ----------------------------------------------------------------------------
ORNEK7: TABLODAKİ TÜM KAYITLARI SİLELİM..
-----------------------------------------------------------------------------*/
delete from ogrenciler;
-- *************************************************
-- tablodaki kayitlari silmek ile tabloyu silmek farkli islemlerdir
-- silme komutlari da iki basamaklidir, biz genelde geri getirilebilecek sekilde sileriz
-- ancak bazen guvenlik gibi sebeplerle geri getirilmeyecek sekilde silinmesi istenebilir
/* ======================== DELETE - TRUNCATE - DROP ============================
1-) TRUNCATE komutu DELETE komutu gibi bir tablodaki verilerin tamamını siler.
Ancak, seçmeli silme yapamaz. Çünkü Truncate komutu DML değil DDL komutudur.*/
TRUNCATE TABLE ogrenciler; -- doğru yazım
drop table ogrenciler;
delete from ogrenciler;
/* 2-) DELETE komutu beraberinde WHERE cümleciği kullanılabilir. TRUNCATE ile
kullanılmaz.
TRUNCATE TABLE ogrenciler
WHERE veli_isim='Hasan'; .....yanlış yazım
-- TRUNCATE komutu tablo yapısını değiştirmeden,
-- tablo içinde yer alan tüm verileri tek komutla silmenizi sağlar.
3-) Delete komutu ile silinen veriler ROLLBACK Komutu ile kolaylıkla geri
alınabilir.
4-) Truncate ile silinen veriler geri alınması daha zordur. Ancak
Transaction yöntemi ile geri alınması mümkün olabilir.
5-) DROP komutu da bir DDL komutudur. Ancak DROP veriler ile tabloyu da
siler.
==============================================================================*/
-- INSERT veri girişinden sonra SAVEPOİNT ABC; ile verileri buraya sakla
-- (yanlışlık yapma olasılığına karşın önlem gibi, AYNI İSİMDE BAŞKA TABLO VARSA)
-- sonra istediğini sil (ister tümü ister bir kısmı)
-- sonra savepoint yaptığın yerden alttaki gibi rollback ile verileri geri getir
INSERT INTO ogrenciler VALUES(123, 'Ali Can', 'Hasan',75);
INSERT INTO ogrenciler VALUES(124, 'Merve Gul', 'Ayse',85);
INSERT INTO ogrenciler VALUES(125, 'Kemal Yasa', 'Hasan',85);
INSERT INTO ogrenciler VALUES(126, 'Nesibe Yilmaz', 'Ayse',95);
INSERT INTO ogrenciler VALUES(127, 'Mustafa Bak', 'Can',99);
savepoint abc;
select*from ogrenciler;
delete from ogrenciler;
rollback to abc;