Posts

Showing posts from December, 2018

PostgreSQL Veritabanı Üzerinden Mail Atılması (SQL İle)

Merhaba, PostgreSQL'de veritabanı üzerinden mail atmak için bir kaç yol bulunuyor. Bu yollar açık kaynak kodlu araçları kullanmaktan geçiyor örneğin pgMail ya da bir fonksiyon içindeki bir python koduyla da yapabilirsiniz. Bunlar, kullanabileceğiniz yöntemlerden sadece ikisi. Veritabanı üzerinden sadece SQL scripti kullanarak mail atılması için bir script hazırladım. Bu yazıda farklı bir araç tanıtmayacağım. Postgres'in kendi özelliğini kullanarak bu işlemi gerçekleştirmek için aşağıdaki adımları kullanmanız yeterli olacaktır. (Linux tarafında mail atılması için gereken kurulumlarınız hazırsa tabi) Maili Postgres'in in-core özelliği olan COPY ifadesini kullanarak atacağız. COPY ifadesini kullanarak farklı kaynaklardaki verileri Postgres veritanabındaki tablolara yazabileceğimiz gibi, Postgres veritabanındaki bir tabloyu da sunucu üzerinde, postgres kullanıcısnın yetkisi dahilindeki dizinlere aktarmamız mümkün. COPY ile ilgili daha fazla bilgiye bu linkten ulaşabili

PostgreSQL’de Array Veri Tipi ve Örnekleri

Merhaba, Array veri tipi bir yada daha çok boyutlu olabilir. Bir alana aynı veri tipinde birden fazla değer girilmesini sağlar diyebiliriz. Bir array’in hangi veritipine ait verileri barındıracağını belirleyebiliriz. Örneğin text veri tipinde bir array kullanabiliriz. Basit bir array örneği yapalım. Aşağıdaki örnekte tek bir satır ve sütun göreceksiniz. Array içinde kullanılan her iki değer text veri tipinde. [gunce] # SELECT array['aa','bb'];  array   --------- {aa,bb} (1 row) Bu ARRAY henüz bir tablonun sütunu olmadığı için deneme yapalım ve yukarıdaki array içine bir alan daha ekleyelim text veri tipinde olmayan. Böyle bir durumda hata verecektir çünkü ilk değer ne ise onunla aynı veri tipine sahip bir değer görmek isteyecektir. [gunce] # SELECT array['aa','bb', 11]; ERROR:  22P02: invalid input syntax for integer: "aa" Ürünlerin içeriklerini saklayan bir tablomuz olsun. [gunce] # CREATE TABLE urunler(isim

PostgreSQL’de Range Veri Tipleri ve Örnekleri

Merhaba, Range veri tipleri, verilerin belirli aralıkta olmasıyla ilgilidir. Örneğin otel rezervasyon uygulamasında bir odanın hangi saatler arasında boş veya dolu olduğunu tstzrange(timestamp with time zone) veri tipini kullanarak saklayabilirsiniz veritabanınızda. Postgres’de bahsedilen bu örnekteki gibi farklı veri tiplerine de uygun range veri tipleri bulunmaktadır. Timestamp’in yanında bir de numeric, date, int veri tiplerine de uygun farklı range veri tipleri bulunmaktadır. Postgres’de mevcut range veri tipleri aşağıdaki gibidir. int4range — Range of integer int8range — Range of bigint numrange — Range of numeric tsrange — Range of timestamp without time zone tstzrange — Range of timestamp with time zone daterange — Range of date Aralıkların Belirlenmesi İçi boş olmayan aralığın düşük ve yüksek olmak üzere iki adet sınırı bulunur. Bu iki sınır arasındaki tüm değerler bizim veri tipimize uygun bu aralık içinde yer alır. Düşük sınırın aralığa dahil olması için ‘[‘ işaret