MySQL Notlarım 1


MySQL ve çoğu sql standartları için kullanışlı birkaç not....

SELECT Sorgu Sonucunu başka bir tabloya aktarma

Eğer sorgu sonucundan geçici (sadece mevcut bağlantıya özel) yeni bir tablo yaratıp verileri de aktarmak istiyorsak:

CREATE TEMPORARY IF NOT EXISTS TABLE newTableFromResults AS (
    SELECT ID, NAME, PHONE FROM users WHERE AGE>18
);

Eğer sorgu sonucundan kalıcı yeni bir tablo yaratıp verileri de aktarmak istiyorsak:

CREATE TABLE newTableFromResults 
SELECT ID, NAME, PHONE FROM users WHERE AGE>18;

Eğer var olan bir tabloya sonuçları eklemek istiyorsak:

INSERT INTO oldTable(ID, NAME, PHONE)
SELECT ID, NAME, PHONE FROM users WHERE AGE>18;

Dosyadaki Verileri Tabloya Aktarma

Sütunları belli bir karakterle ayrılmış bir metin dosyasındaki verileri bir tabloya aktarmak için LOAD DATA sorgusu kullanılabilir:

LOAD DATA INFILE 'var/file/path/data.txt' INTO TABLE users
   FIELDS TERMINATED BY '#'
(NAME, LASTNAME, BIRTHDATE)

** Eğer 

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
şeklinde bir hata alınırsa 
SHOW VARIABLES LIKE 'secure_file_priv';
sorgusu ile güvenli dosya yolu bilgisi öğrenilir ve (konum yoksa oluşturulur) yüklenecek dosya belirtilen konuma konulur.

** Dosya secure_file_priv ile belirtilen konuma konulmasına rağmen "permission denied" hatası alınırsa LOAD DATA dan sonra LOCAL yazılır.

LOAD DATA LOCAL INFILE '...' INTO TABLE ...

Metin formatındaki tarih-saat alanının görünen formatını değiştirmek

STR_TO_DATE fonksiyonu ile metin alanını date alanına dönüştürürüz:

STR_TO_DATE(myTable.STARTINGDATE, '%Y%m%d%H%i%s')

Daha sonra date alanının formatını DATE_FORMAT fonksiyonu ile değiştirebiliriz ve son durum:

SELECT 
DATE_FORMAT(
   STR_TO_DATE(myTable.STARTINGDATE, '%Y%m%d%H%i%s'),
'%d.%m.%Y %H:%i:%s')
FROM myTable;



No comments:

Post a Comment

Son Yazım

Mikroservis Notları

Gerçekten Mikroservis gerekli mi; + Projeye yeni eklenen bir modül için ayrı bir servis yazma ihtiyacı hissediliyorsa, + Bir modülde yaşanan...