{"id":25171,"date":"2025-07-02T12:15:22","date_gmt":"2025-07-02T09:15:22","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/"},"modified":"2025-07-02T12:15:22","modified_gmt":"2025-07-02T09:15:22","slug":"postgresql-dosya-adindan-uzantiyi-alma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/","title":{"rendered":"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma"},"content":{"rendered":"<p># PostgreSQL&#8217;de Dosya Uzant\u0131s\u0131 Nas\u0131l Al\u0131n\u0131r?<\/p>\n<p>PostgreSQL veritaban\u0131n\u0131zda depolanan dosya adlar\u0131ndan uzant\u0131lar\u0131 ay\u0131klamak m\u0131 istiyorsunuz?  Web uygulaman\u0131zda dosya y\u00fckleme i\u015flemlerini y\u00f6netiyor, raporlama yap\u0131yor veya farkl\u0131 dosya tiplerini i\u015fliyorsan\u0131z, bu olduk\u00e7a yayg\u0131n bir ihtiya\u00e7t\u0131r. Bu makalede, PostgreSQL kullanarak dosya adlar\u0131ndan uzant\u0131lar\u0131 etkili ve verimli bir \u015fekilde nas\u0131l \u00e7\u0131karaca\u011f\u0131n\u0131z\u0131, yeni ba\u015flayanlardan ileri d\u00fczey kullan\u0131c\u0131lara kadar ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.  Veritaban\u0131n\u0131zdaki performans\u0131 etkilemeden, farkl\u0131 senaryolar i\u00e7in en uygun \u00e7\u00f6z\u00fcmleri ke\u015ffedece\u011fiz.<\/p>\n<p>## \u00d6\u011frenme Yol Haritas\u0131<\/p>\n<p>**Yeni Ba\u015flayan:**  <code class=\"language-\">substring<\/code> ve <code class=\"language-\">position<\/code> fonksiyonlar\u0131n\u0131 kullanarak basit bir \u00e7\u00f6z\u00fcm.<\/p>\n<p>**Orta Seviye:**  Ger\u00e7ek d\u00fcnya senaryolar\u0131, performans optimizasyonu ipu\u00e7lar\u0131 ve <code class=\"language-\">regexp_replace<\/code> fonksiyonunun kullan\u0131m\u0131.<\/p>\n<p>**\u0130leri Seviye:**  Karma\u015f\u0131k dosya adlar\u0131, performans analizi, edge case&#8217;ler ve indeksleme stratejileri.<\/p>\n<p>## PostgreSQL&#8217;de Temel String Fonksiyonlar\u0131: <code class=\"language-\">substring<\/code> ve <code class=\"language-\">position<\/code><\/p>\n<p>PostgreSQL&#8217;de dosya uzant\u0131lar\u0131n\u0131 \u00e7\u0131karmak i\u00e7in en temel yakla\u015f\u0131m, <code class=\"language-\">substring<\/code> ve <code class=\"language-\">position<\/code> fonksiyonlar\u0131n\u0131 birlikte kullanmakt\u0131r. <code class=\"language-\">position<\/code> fonksiyonu, bir string i\u00e7inde belirli bir alt dizinin ilk konumunu bulurken, <code class=\"language-\">substring<\/code> fonksiyonu belirtilen bir stringin bir b\u00f6l\u00fcm\u00fcn\u00fc ay\u0131klar.<\/p>\n<p>\u00d6rne\u011fin, &#8220;resim.jpg&#8221; adl\u0131 bir dosyan\u0131n uzant\u0131s\u0131n\u0131 \u00e7\u0131karmak i\u00e7in \u015fu sorguyu kullanabiliriz:<\/p>\n<pre class=\"language-sql\"><code>SELECT substring('resim.jpg' from position('.' in 'resim.jpg') + 1);<\/code><\/pre>\n<p>Bu sorgu, &#8220;.&#8221; karakterinin &#8220;resim.jpg&#8221; stringindeki konumunu bulur (+1 ekleyerek noktadan sonraki karakterden ba\u015flar) ve noktadan sonraki k\u0131sm\u0131 (yani &#8220;.jpg&#8221;) d\u00f6nd\u00fcr\u00fcr.  Bu y\u00f6ntem basit ve anla\u015f\u0131l\u0131r olsa da, \u00e7ok say\u0131da kay\u0131t i\u00e7in performans sorunlar\u0131na yol a\u00e7abilir.  \u00d6zellikle b\u00fcy\u00fck bir veritaban\u0131nda, bu yakla\u015f\u0131m\u0131n performans\u0131n\u0131 iyile\u015ftirmek i\u00e7in optimizasyonlar gerekli olabilir.<\/p>\n<p>## Daha Etkili Bir \u00c7\u00f6z\u00fcm: <code class=\"language-\">regexp_replace<\/code> Fonksiyonu<\/p>\n<p>Daha karma\u015f\u0131k dosya adlar\u0131 ve daha iyi performans i\u00e7in <code class=\"language-\">regexp_replace<\/code> fonksiyonunu kullanabiliriz. Bu fonksiyon, d\u00fczenli ifadeler (regular expressions) kullanarak string&#8217;leri manip\u00fcle etmemizi sa\u011flar.  A\u015fa\u011f\u0131daki sorgu, dosya ad\u0131ndan uzant\u0131y\u0131 ay\u0131klamak i\u00e7in bir d\u00fczenli ifade kullan\u0131r:<\/p>\n<pre class=\"language-sql\"><code>SELECT regexp_replace('resim.jpg', '.*\\.', '');<\/code><\/pre>\n<p>Bu sorgu, <code class=\"language-\">.*\\.<\/code> d\u00fczenli ifadesini kullanarak dosya ad\u0131n\u0131n noktadan \u00f6nceki k\u0131sm\u0131n\u0131 kald\u0131r\u0131r ve sadece uzant\u0131y\u0131 b\u0131rak\u0131r. <code class=\"language-\">.*<\/code> her karakterden olu\u015fan s\u0131f\u0131r veya daha fazla tekrar\u0131, <code class=\"language-\">\\.<\/code> ise noktay\u0131 (nokta \u00f6zel karakter oldu\u011fu i\u00e7in ka\u00e7\u0131\u015f karakteri \\ kullan\u0131l\u0131r) temsil eder.  Bu y\u00f6ntem, \u00e7ok \u00e7e\u015fitli dosya adlar\u0131yla daha iyi ba\u015fa \u00e7\u0131kar ve daha temiz bir \u00e7\u00f6z\u00fcm sunar.  Ancak, d\u00fczenli ifadelerin karma\u015f\u0131kl\u0131\u011f\u0131, performans \u00fczerinde hafif bir etkiye sahip olabilir, bu y\u00fczden b\u00fcy\u00fck veritabanlar\u0131nda indeksleme stratejilerini g\u00f6z \u00f6n\u00fcnde bulundurmak \u00f6nemlidir.<\/p>\n<p>## Ger\u00e7ek D\u00fcnya \u00d6rne\u011fi: Dosya Y\u00fcklenen Bir Web Uygulamas\u0131<\/p>\n<p>Bir web uygulamas\u0131 d\u00fc\u015f\u00fcn\u00fcn; kullan\u0131c\u0131lar \u00e7e\u015fitli dosya t\u00fcrlerini (\u00f6rne\u011fin, resimler, belgeler, videolar) y\u00fckl\u00fcyor ve bu dosyalar\u0131n bilgileri PostgreSQL veritaban\u0131nda saklan\u0131yor.  Her dosya i\u00e7in dosya ad\u0131, dosya boyutu ve dosya t\u00fcr\u00fc gibi bilgiler kaydediliyor.  Uygulama, farkl\u0131 dosya t\u00fcrlerini farkl\u0131 \u015fekilde i\u015flemek istiyor.  <code class=\"language-\">regexp_replace<\/code> fonksiyonu kullanarak, veritaban\u0131ndan dosya adlar\u0131n\u0131 \u00e7ekip uzant\u0131lar\u0131n\u0131 ay\u0131klayarak bu i\u015flemi ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<p>\u00d6rne\u011fin, a\u015fa\u011f\u0131daki sorgu,  &#8220;dosya_adi.pdf&#8221;, &#8220;resim.jpg&#8221;, &#8220;video.mp4&#8221; gibi dosya adlar\u0131n\u0131 i\u00e7eren bir tablodaki t\u00fcm PDF dosyalar\u0131n\u0131 listeler:<\/p>\n<pre class=\"language-sql\"><code>SELECT * FROM dosyalar WHERE regexp_replace(dosya_adi, '.*\\.', '') = 'pdf';<\/code><\/pre>\n<p>Bu, dosya uzant\u0131lar\u0131na g\u00f6re filtreleme yapmam\u0131z\u0131 ve uygulaman\u0131n farkl\u0131 i\u015flevlerini tetiklememizi sa\u011flar.<\/p>\n<p>## Performans Optimizasyonu: \u0130ndeksleme<\/p>\n<p>B\u00fcy\u00fck veritabanlar\u0131nda, dosya adlar\u0131ndan uzant\u0131 \u00e7\u0131karma i\u015fleminin performans\u0131n\u0131 etkilememesi i\u00e7in uygun indeksleme stratejileri kullanmak \u00f6nemlidir.  E\u011fer s\u0131k s\u0131k dosya uzant\u0131s\u0131na g\u00f6re filtreleme yap\u0131yorsan\u0131z, dosya ad\u0131n\u0131 i\u00e7eren s\u00fctuna bir indeks eklemek performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.  Ancak,  <code class=\"language-\">regexp_replace<\/code> fonksiyonu indekslenebilir bir fonksiyon olmad\u0131\u011f\u0131 i\u00e7in, bu fonksiyonu indeksleme do\u011frudan bir performans art\u0131\u015f\u0131 sa\u011flamayacakt\u0131r.  Bu durumda, performans art\u0131\u015f\u0131 i\u00e7in alternatif \u00e7\u00f6z\u00fcmler de\u011ferlendirilmelidir. \u00d6rne\u011fin, dosya uzant\u0131s\u0131n\u0131 ayr\u0131 bir s\u00fctunda saklamak ve bu s\u00fctuna indeks eklemek daha etkili olabilir.<\/p>\n<p>## \u0130leri D\u00fczey Teknikler: Karma\u015f\u0131k Dosya Adlar\u0131 ve Edge Case&#8217;ler<\/p>\n<p>Baz\u0131 dosya adlar\u0131, beklenmedik karakterler veya birden fazla nokta i\u00e7erebilir (&#8220;dosya.adi.v2.pdf&#8221; gibi).  Bu durumlarda, daha geli\u015fmi\u015f d\u00fczenli ifadeler veya \u00f6zel fonksiyonlar kullanman\u0131z gerekebilir.  \u00d6rne\u011fin, son noktadan sonraki k\u0131sm\u0131 almak i\u00e7in  <code class=\"language-\">reverse<\/code> ve <code class=\"language-\">substring<\/code> fonksiyonlar\u0131n\u0131 birlikte kullanabilirsiniz:<\/p>\n<pre class=\"language-sql\"><code>SELECT substring(reverse(dosya_adi) from 1 for position('.' in reverse(dosya_adi)) - 1)\nFROM dosyalar;<\/code><\/pre>\n<p>Bu sorgu, dosya ad\u0131n\u0131 ters \u00e7evirir, ilk noktadan \u00f6nceki k\u0131sm\u0131 al\u0131r ve tekrar ters \u00e7evirerek orijinal s\u0131raya getirir. Bu y\u00f6ntem, birden fazla nokta i\u00e7eren dosya adlar\u0131nda daha g\u00fcvenilir sonu\u00e7lar verir.<\/p>\n<p>##  PostgreSQL&#8217;de Dosya Uzant\u0131s\u0131 Alma:  Ad\u0131m Ad\u0131m Uygulama Rehberi<\/p>\n<p>1. **Veri Haz\u0131rlama:**  \u00d6rnek veri i\u00e7eren bir tablo olu\u015fturun:<\/p>\n<pre class=\"language-sql\"><code>CREATE TABLE dosyalar (\n    id SERIAL PRIMARY KEY,\n    dosya_adi VARCHAR(255)\n);\n\nINSERT INTO dosyalar (dosya_adi) VALUES\n('resim.jpg'), ('belge.pdf'), ('video.mp4'), ('dosya.adi.v2.pdf'), ('benim.resim.jpg');<\/code><\/pre>\n<p>2. **<code class=\"language-\">substring<\/code> ve <code class=\"language-\">position<\/code> ile Uzant\u0131 Alma:**  Yukar\u0131da verilen basit y\u00f6ntemi kullanarak uzant\u0131lar\u0131 ay\u0131klay\u0131n.<\/p>\n<p>3. **<code class=\"language-\">regexp_replace<\/code> ile Uzant\u0131 Alma:** Daha verimli olan <code class=\"language-\">regexp_replace<\/code> fonksiyonunu kullanarak uzant\u0131lar\u0131 ay\u0131klay\u0131n.<\/p>\n<p>4. **Performans Analizi:**  Farkl\u0131 y\u00f6ntemlerin performans\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n (\u00f6zellikle b\u00fcy\u00fck veri setlerinde).<\/p>\n<p>5. **\u0130ndeksleme:**  Dosya ad\u0131na indeks ekleyerek performans\u0131 iyile\u015ftirin (gerekiyorsa).<\/p>\n<p>6. **Edge Case&#8217;ler:**  Karma\u015f\u0131k dosya adlar\u0131n\u0131 ele almak i\u00e7in daha geli\u015fmi\u015f d\u00fczenli ifadeler veya fonksiyonlar kullan\u0131n.<\/p>\n<p>## Sonu\u00e7<\/p>\n<p>PostgreSQL&#8217;de dosya adlar\u0131ndan uzant\u0131 \u00e7\u0131karmak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler mevcuttur.  Basit y\u00f6ntemler yeni ba\u015flayanlar i\u00e7in uygundur, ancak b\u00fcy\u00fck veritabanlar\u0131nda performans sorunlar\u0131na yol a\u00e7abilir.  <code class=\"language-\">regexp_replace<\/code> fonksiyonu daha esnek ve verimli bir \u00e7\u00f6z\u00fcm sunar.  Performans\u0131 optimize etmek i\u00e7in indeksleme ve daha geli\u015fmi\u015f teknikler kullan\u0131labilir.  Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na ve veri b\u00fcy\u00fckl\u00fc\u011f\u00fcne g\u00f6re en uygun y\u00f6ntemi se\u00e7meniz \u00f6nemlidir.  Daha fazla PostgreSQL ipucu ve \u00f6\u011fretici i\u00e7in [fatihsoysal.com](https:\/\/fatihsoysal.com) adresini ziyaret edebilirsiniz.<\/p>\n<p>**S\u0131k\u00e7a Sorulan Sorular:**<\/p>\n<p>1. **<code class=\"language-\">regexp_replace<\/code> fonksiyonu neden indekslenemez?**  <code class=\"language-\">regexp_replace<\/code> fonksiyonu, \u00e7al\u0131\u015fma zaman\u0131nda de\u011ferlendirildi\u011fi i\u00e7in indekslenemez.  \u0130ndekslenebilir bir \u00e7\u00f6z\u00fcm i\u00e7in, uzant\u0131y\u0131 ayr\u0131 bir s\u00fctunda saklamak daha iyidir.<\/p>\n<p>2. **Birden fazla nokta i\u00e7eren dosya adlar\u0131n\u0131 nas\u0131l i\u015fleyebilirim?**  <code class=\"language-\">reverse<\/code> ve <code class=\"language-\">substring<\/code> fonksiyonlar\u0131n\u0131 veya daha geli\u015fmi\u015f d\u00fczenli ifadeleri kullanabilirsiniz.<\/p>\n<p>3. **Hangi y\u00f6ntem en h\u0131zl\u0131d\u0131r?**  Bu, veri setinin b\u00fcy\u00fckl\u00fc\u011f\u00fcne ve dosya adlar\u0131n\u0131n karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r.  K\u00fc\u00e7\u00fck veri setlerinde <code class=\"language-\">substring<\/code> ve <code class=\"language-\">position<\/code> yeterli olabilir, ancak b\u00fcy\u00fck veri setlerinde <code class=\"language-\">regexp_replace<\/code> daha verimli olabilir.<\/p>\n<p>4. **Dosya uzant\u0131s\u0131 olmayan dosya adlar\u0131n\u0131 nas\u0131l ele alabilirim?**  <code class=\"language-\">NULL<\/code> de\u011ferleri veya bo\u015f string&#8217;ler d\u00f6nd\u00fcrmek i\u00e7in hata y\u00f6netimi ekleyebilirsiniz.<\/p>\n<p>5. **Performans\u0131 nas\u0131l daha da iyile\u015ftirebilirim?**  Veritaban\u0131 sunucunuzun kaynaklar\u0131n\u0131 optimize edin, sorguyu yeniden yaz\u0131n ve uygun indeksleme stratejilerini kullan\u0131n.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"# PostgreSQL&#8217;de Dosya Uzant\u0131s\u0131 Nas\u0131l Al\u0131n\u0131r? PostgreSQL veritaban\u0131n\u0131zda depolanan dosya adlar\u0131ndan uzant\u0131lar\u0131 ay\u0131klamak m\u0131 istiyorsunuz? Web uygulaman\u0131zda dosya&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[644],"tags":[],"class_list":{"0":"post-25171","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-postgresql","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma<\/title>\n<meta name=\"description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma\" \/>\n<meta property=\"og:description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-02T09:15:22+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma\",\"datePublished\":\"2025-07-02T09:15:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/\"},\"wordCount\":1127,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/\",\"name\":\"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-07-02T09:15:22+00:00\",\"description\":\"Hi\u00e7bir etiketi bulunamad\u0131.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma","description":"Hi\u00e7bir etiketi bulunamad\u0131.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/","og_locale":"tr_TR","og_type":"article","og_title":"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma","og_description":"Hi\u00e7bir etiketi bulunamad\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-07-02T09:15:22+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma","datePublished":"2025-07-02T09:15:22+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/"},"wordCount":1127,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PostgreSQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/","url":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/","name":"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-07-02T09:15:22+00:00","description":"Hi\u00e7bir etiketi bulunamad\u0131.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dosya-adindan-uzantiyi-alma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL: Dosya Ad\u0131ndan Uzant\u0131y\u0131 Alma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/25171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=25171"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/25171\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=25171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=25171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=25171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}