14
Veri Tabanı-I 7.Hafta 13.04.2011 Muhammer İLKUÇAR, MAKÜ-2011 BURDUR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

Embed Size (px)

Citation preview

Page 1: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

Veri Tabanı-I 7.Hafta

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

1

TABLOYA

Ekleme(insert),

Silme(Delete),

Güncelleme(Update)

Page 2: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

TABLODA EKLEME - SİLME - GÜNCELLEME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

2

INSERT

INSERT INTO Tablo [(Kolon Listesi)] VALUES (Değerler Listesi)

DELETE

DELETE FROM Tablo WHERE Koşullar

UPDATE

UPDATE Tablo SET Kolon1=Değer1, Kolon2=Değer2… WHERE Koşullar

Page 3: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

EKLEME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

3

INSERT INTO Tablo ( Kolon Listesi ) VALUES (Değerler Listesi)

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.

Kolon için DEFAULT belirtilmemişse ve boş bırakılacaksa, değerler listesinde NULL

belirtilmelidir.

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 ve identity alanlara veri girilmez

Page 4: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

EKLEME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

4

INSERT INTO ogrenci (numara , adsoy , dogumtarihi) VALUES ('1013160101' , 'Arda Koç' , '1990-12-18') Veya INSERT INTO ogrenci VALUES ('1013160101' , 'Arda Koç' , '1990-12-18')

Var olan yeni_ogrenci tablosuna ogrenci tablosundaki bilgileri aktarır. Her iki tablonun da aynı yapıda olması gerekir INSERT INTO ogrenci_yeni SELECT * FROM ogrenci INSERT INTO ogrenci_yeni (numara , adsoy , dogumtarihi) ( SELECT numara , adsoy , dogumtarihi FROM ogrenci WHERE numara <100)

Yeni ogrenci_yeni TABLOSU oluşturur ve ogrenci tablosundan numara ve adsoy bilgilerini aktarır SELECT numara, adsoy INTO ogrenci_yeni FROM ogrenci

Page 5: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

EKLEME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

5

CREATE TABLE URUNLER ( urun_no int primary key , urun_adi varchar(15), fiyati money );

CREATE TABLE MUSTERI ( musterino int primary key , ad varchar(25), soyad varchar(25) );

create table SATIS ( musterino int FOREIGN KEY REFERENCES MUSTERI ON DELETE CASCADE ON UPDATE CASCADE , urun_no int FOREIGN KEY REFERENCES URUNLER ON DELETE CASCADE ON UPDATE CASCADE , satis_miktari real, satis_fiyati money, satis_tarihi DateTime Default(GetDate()) )

INSERT INTO URUNLER (urun_no , urun_adi , fiyati) VALUES (1 , ‘Kalem' , 1.75)

INSERT INTO MUSTERI(musterino, ad , soyad) VALUES (101 , ‘Ali’ , ’Can’ )

INSERT INTO SATIS( musterino, urun_no, satis_miktari, satis_fiyati) VALUES (101 , 1 ,5 , 1.85 )

INSERT INTO SATIS( musterino, urun_no, satis_miktari, satis_fiyati) VALUES (101 , 8 ,5 , 1.85 )

Page 6: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

EKLEME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

6

Create table ornek ( x int , y int, z AS (x*y)/2 ) INSERT INTO ornek (x , y) VALUES ( 8,5 ) Select * from ornek

Create table ornek1 ( x int default (10) , y int , z AS (x*y)/2 ) INSERT INTO ornek (x , y) VALUES ( 8,5 )

INSERT INTO ornek ( y) VALUES ( 8 )

INSERT INTO ornek (x , y, z) VALUES ( 8,5,13 ) -- yanlış

Page 7: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

EKLEME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

7

CREATE TABLE musteri ( musteri_id uniqueidentifier NOT NULL DEFAULT newid(), ad nvarchar(20), soy nvarchar(20) ) insert into musteri (ad , soy) VALUES('Ali', ‘Can') insert into musteri (musteri_id , ad, soy) VALUES ( NEWID() , ‘Fatma‘ , ‘Kara')

Page 8: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

EKLEME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

8

CREATE TABLE satis

(

satisID int NOT NULL,

musteriID int NOT NULL,

satistarihi smalldatetime NOT NULL ,

sonodemetarihi smalldatetime NOT NULL,

CONSTRAINT kisit1 CHECK (DATEDIFF(day, satistarihi, sonodemetarihi ) <= 90)

)

-- Not: datediff (gun, ilk, son) → gun = ilk - son ; gün alarak farkı bulur

-- satış tarihi ile son ödeme tarihi arasındaki fark en çok 90 gün olabilir

-- izin vermez yanlış fark 90 günden büyük insert into satis (satisID, musteriID,satistarihi,sonodemetarihi) VALUES(1,101,'2011-01-01','2011-4-3') -- izin vermez yanlış fark 90 günden büyük insert into satis (satisID, musteriID,satistarihi,sonodemetarihi) VALUES(1,101,'2011-01-01','2011-4-2') -- doğru fark 90 güne eşit veya küçük insert into satis (satisID, musteriID,satistarihi,sonodemetarihi) VALUES(1,101,'2011-01-01','2011-4-1')

Page 9: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

SİLME (DELETE)

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

9

Tablodaki kayıt silinir.

Tablonun yapısında bir değişiklik olmaz

WHERE ile koşul konmaz ise tüm kayıtlar silinir

WHERE ile koşul olursa sadece koşula uyan kayıtlar silinir

Kendisine bağlı bir Foreign Key (FK) olan primary Key (PK) tablo silinemez. Önce

FK tablosundaki kayıt silinmeli , daha sonra PK tablo silinir.

DELETE

DELETE FROM Tablo WHERE Koşullar

Page 10: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

SİLME

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

10

DELETE FROM ogrenci WHERE numara is null

DELETE FROM ogrenci WHERE vize>=0 and vize <=45

DELETE FROM ogrenci WHERE vize>=0 and vize <=45

Page 11: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

GÜNCELLEME – UPDATE (DEĞİŞTİRME)

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

11

WHERE ile koşul olmaz ise tüm kayıtlar aynı şekilde güncellenir ( DİKKAT)

WHERE ile koşul konursa sadece koşula uyan kayıtlar güncellenir

UPDATE Tablo SET

Kolon1 = Değer1 ,

Kolon2 = Değer2 ,

WHERE Koşullar

Page 12: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

GÜNCELLEME – UPDATE (DEĞİŞTİRME)

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

12

UPDATE stok SET fiyat= (fiyat*1.1)

--Stoktaki bütün mallara %10 zam yapılmıştır

UPDATE stok SET fiyat= (fiyat* 0.8 )

WHERE 20> ( DATEDIFF(day, GetDate() , sonkullanma_tarihi ) )

--Stoktaki bütün mallarda son kullanma tarihine 20 günden az olanmallara %20 indirim yapılmıştır

UPDATE musteri SET

adi=‘Fatma’ ,

soyad =‘Kara’ ,

ili=‘BURDUR’ ,

musterino=101

WHERE musterino=1

--musterino 1 olan kaydın adını, soyadını, ilini ve musterino sunu değiştirir

Page 13: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

GÜNCELLEME – UPDATE (DEĞİŞTİRME)

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

13

UPDATE stok SET fiyat= (fiyat* 0.9 ) WHERE sno NOT in ( select sno from satis)

--Stoktaki hiç satılmayan mallarda %10 indirim yapılmıştır

UPDATE stok SET fiyat= (fiyat* 1.1 ) WHERE sno in ( select sno from satis)

--Stoktaki satılan mallarda %10 zam yapılmıştır

Page 14: Veri Tabanı-I 7 - ilkucar.comilkucar.com/VERITABANI_I/veri_tabani1_hafta7.pdf · Veri Tabanı-I 7.Hafta 11 Ü-UR 1 TABLOYA Ekleme(insert), Silme(Delete), Güncelleme(Update)

Soru ve Önerileriniz …

13

.04

.20

11

M

uh

amm

er İL

KU

ÇA

R, M

AK

Ü-2

01

1 B

UR

DU

R

14

?