VTYS 2012 Mehmet Emin KORKUSUZ Ders - 04
Data Manipulation Language DML Data Manipulation Language
SELECT DML INSERT LOAD DATA INFİLE, LOAD XML UPDATE DELETE REPLACE DO HANDLER CALL #daha sonra SELECT
INSERT
INSERT
INSERT
INSERT INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9); Yanlış!
INSERT insert into Citylist (cityname) VALUES ('St. John\'s') INSERT INTO logs (`site_id`, `time`,`hits`) VALUES (1,"2004-08-09", 15) ON DUPLICATE KEY UPDATE hits=hits+15;
LOAD DATA INFILE
[LOCAL] [LOW_PRIORITY | CONCURRENT] [LOCAL] ifadesi veri alınacak dosyanın yerelde yani bu bilgisayarda olduğunu ifade eder. [LOW_PRIORITY] Veri tabanından bilgi istenirken işlem önceliğinin olmayacağını belirten bir komuttur. [CONCURRENT] ifadesi ise veri tabanında bilgi istenildiği zaman eş zamanlı olarak çağırmak içindir.
LOAD DATA [LOCAL] INFILE “C:/Users/Desktop/açık_dosya_adı” INTO TABLE tablo_ad COLUMNS ESCAPED BY “,” LINES TERMINATED BY “-”;
Select into outfile Select into outfile load data infile komutunun tam tersini yapmaktadır. Tablodaki verileri harici bir dosyaya yazdırmaya yarar. SELECT * INTO OUTFILE “dosya_yolu” [FIELDS | COLUMNS] [TERMINATED | ESCAPED] BY “karekter” LINES [TERMINATED | STARTING] BY “karakter” FROM tablo_adı;
UYGULAMA SELECT * INTO OUTFILE “C:/Users/Desktop/dosya_adı_ve_uzantısı” INTO TABLE tablo_adı COLUMNS ESCAPED BY “,” LINES TERMINATED BY “-” FROM tablo_ad; SELECT alan1,alan2,alan7 INTO OUTFILE “C:/Users/Desktop/dosya_adı_ve_uzantısı” COLUMNS ESCAPED BY “;” LINES TERMINATED BY “\n”
LOAD XML CREATE TABLE person ( ); person_id INT NOT NULL PRIMARY KEY, fname VARCHAR(40) NULL, lname VARCHAR(40) NULL, created TIMESTAMP );
LOAD XML -2
LOAD XML LOCAL INFILE 'person LOAD XML LOCAL INFILE 'person.xml' INTO TABLE person ROWS IDENTIFIED BY '<person>';
UPDATE
UPDATE UPDATE t1 SET ad=‘Emin’ where id=1; UPDATE t1 SET col1 = col1 + 1; UPDATE t SET id = id + 1; //hata verebilir UPDATE t SET id = id + 1 ORDER BY id DESC; UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
DELETE
DELETE DELETE FROM t1 WHERE id = 1; Emin’e ait son kaydı siler. DELETE FROM log WHERE user = ‘emin' ORDER BY zaman LIMIT 1;
REPLACE
REPLACE
REPLACE REPLACE INTO offices(officecode,sehir) VALUES(8,Ankara') #8 numaralı kayıt yoksa insert ile aynı çalışır REPLACE INTO offices(officecode,sehir) VALUES(8,İstanbul')
DO Bir sorgunun sonucu önemli değilse sorgunun başına yazılır. Hızı arttırır.
HANDLER SELECT’ten daha hızlı çalışan bir sorgudur.