Laravel

Laravel Raw SQL Queries Kullanımı

Laravel Raw SQL Queries bir Laravel projesinde direk SQL sorgularını kullanmanıza olanak tanır. Bunun yerine Eloquent veritabanı sistemi kullanmak daha yaygın olarak kullanılır, ancak bazı durumlarda raw SQL sorguları daha uygun ve hızlı sonuç verebilir.

Laravel Raw Queries Kullanımı

Laravel’de raw SQL sorgularını kullanmak için “DB” sınıfını kullanabilirsiniz. Örneğin, veritabanından veri çekmek için aşağıdaki gibi bir sorgu yazabilirsiniz:

yada

Aynı şekilde, veritabanına veri eklemek için aşağıdaki gibi bir sorgu yazabilirsiniz:

yada

Controller içinde Laravel Raw Queries Kullanımı

Laravel raw SQL sorgularını kullanırken, güvenliğiniz için sorgularınızı zaman aşımı (SQL injection) gibi güvenlik açıklarından koruyun. Laravel, bu güvenlik açıklarına karşı koruyucu önlemler sunar ve sorgularınızı güvenli bir şekilde yürütmek için sorgularınızı otomatik olarak sanal verilerle değiştirir.

Laravel Raw SQL Queries, Laravel Controller içinde kullanımı oldukça basit bir şekildedir. Öncelikle “DB” methodunu kullanabileceğiniz namespace’i eklemeniz gerekmektedir.

Controller dosyasındaki bir fonksiyon içerisinde SQL Raw Queries kullanmak için aşağıdaki şekilde yapabilirsiniz:

Bu örnekte, “users” tablosundaki tüm kayıtlar “users” değişkenine atanır ve daha sonra “users” isimli bir view’e gönderilir. Bu view içerisinde, “users” değişkenindeki kayıtları işleyebilirsiniz.

Route içinde Laravel Raw Queries Kullanımı

Laravel Route içinde de Laravel Raw SQL Queries kullanılabilir, ancak genellikle uygun değildir çünkü Route yapısı, controller veya model tarafından verilerin işlenmesi için daha uygun bir yerdir. Bununla birlikte, eğer gerekli ise Route içinde Raw SQL Queries kullanımı şu şekildedir:

yada

Bu örnekte, “users” tablosundaki tüm kayıtlar “users” değişkenine atanır ve daha sonra “users” isimli bir view’e gönderilir. Route içinde Raw SQL Queries kullanmak uygun değilse bile, bu örnek size Route içinde Raw SQL Queries nasıl kullanabileceğinizi gösterir.

Model içinde Laravel Raw Queries Kullanımı

Laravel Raw SQL Queries, Laravel Model içinde de kullanılabilir. Model içinde Raw SQL Queries kullanmak, controller veya başka bir yerde kullanmaktan farklı olarak, modelde yapılan işlemlerin daha fazla sınıflandırılmasına ve yapılandırılmasına olanak tanır.

Model dosyasınızda Raw SQL Queries kullanmak için aşağıdaki şekilde yapabilirsiniz:

Bu örnekte, “User” modeli içinde “getUsers” adlı bir statik fonksiyon tanımlanmıştır. Bu fonksiyon, “users” tablosundaki tüm kayıtları döndürür.

Controller veya başka bir yerde, bu modelde tanımlı fonksiyonu aşağıdaki şekilde kullanabilirsiniz:

Bu örnekte, “User” modelindeki “getUsers” fonksiyonu çağrılır ve dönen kayıtlar “users” değişkenine atanır. Daha sonra, bu değişken “users” isimli bir view’e gönderilir ve bu view içerisinde kayıtlar işlenebilir.

View içinde Laravel Raw Queries Kullanımı

View içinde Laravel Raw SQL Queries kullanmak uygun bir yaklaşım değildir ve uygulamanızın güvenliği, hızı ve performansı açısından iyileştirme yapmak için model veya controller tarafında yapılması önerilir. Model veya controller tarafındaki veri işleme işlemleri, daha sonra view tarafına geçirilir ve view içinde görüntülenir.

Aşağıdaki örnekte, veritabanından bir sorgu sonucunu alıp bu verileri view içinde görüntülemek için bir örnek yapılmıştır:

Controller tarafında:

View tarafında:

Bu örnekte, veritabanındaki pages tablosundan veriler çekilir ve $pages değişkenine atanır. Daha sonra, bu veriler pages.index view içinde görüntülenir.

Laravel Raw Queries Örnekleri

Laravel Raw SQL Queries kullanmak için öncelikle “DB” methodunu kullanabileceğiniz namespace’i eklemeniz gerekmektedir.

Şimdi size bazı örnek Laravel Raw SQL Queries vermek istiyorum:

Örnek: Veritabanındaki tüm kayıtları çekmek için:

Örnek: Veritabanına yeni kayıt eklemek için:

yada

Örnek: Veritabanındaki bir kaydı güncellemek için:

yada

Örnek: Veritabanındaki bir kaydı silmek için:

yada

Örnek: İki tablo arasında “inner join” işlemi yapmak istiyorsanız aşağıdaki gibi bir kod yazabilirsiniz:

Örnek: Aynı şekilde, “left join” işlemi yapmak isterseniz aşağıdaki gibi bir kod yazabilirsiniz:

Örnek: Laravel Raw Queries içinde WHERE şartı eklemek oldukça basittir. Örnek olarak, “pages” tablosundaki tüm kayıtların “status” değeri “published” olanlarını seçmek istersek aşağıdaki gibi bir sorgu yazabiliriz:

Bu sorgu, pages tablosundaki tüm kayıtları tarar ve sadece “status” değeri “published” olanları döndürür. Burada ? işareti placeholder olarak kullanılmıştır ve ikinci parametre olarak verilen ['published'] değeri bu placeholder’a atanır.

Örnek: Aşağıdaki örnek, “users” tablosundaki kullanıcıların şehirlerine göre gruplandırarak, her şehir için kullanıcı sayısının toplamını hesaplayan bir Laravel Raw SQL Query örneğidir:

Bu sorguda, “city” alanına göre gruplama yapılmıştır ve her grup için kullanıcı sayısını hesaplayan “COUNT(*)” aggregate fonksiyonu kullanılmıştır. Sonuç olarak, her şehir için kullanıcı sayısının toplamını içeren bir dizi döndürür.

Örnek: Laravel’de veritabanı sorgularını yapmak için selectRaw metodunu kullanabilirsiniz. Aşağıdaki örnekte, selectRaw metodunu kullanarak veritabanındaki kullanıcıların isimlerinin ve e-postalarının sayısını alan bir SELECT sorgusu yapacağız:

Örnek: Laravel’de, havingRaw ve selectRaw metodlarını kullanarak veritabanı sorgularını yapabilirsiniz. Aşağıdaki örnekte, veritabanındaki kullanıcıların şehirlerine göre gruplandığı ve her grup içinde en az 10 kullanıcı bulunan şehirlerin isimleri ve toplam kullanıcı sayılarını içeren bir SELECT sorgusu yapacağız:

Örnek: Laravel’de selectRaw metodunu kullanarak veritabanındaki verilere alt sorgular (sub-queries) ile erişebilirsiniz. Aşağıdaki örnekte, bir kullanıcının yazdığı tüm yazıların toplam yorum sayısını bulan bir SELECT sorgusu yapacağız:

Örnek: Bu sorgu, 2000 yılından sonra doğan kullanıcıların doğum yıllarına göre gruplandığını ve her grup içinde kullanıcı sayısını içeren bir SELECT sorgusudur. selectRaw metodu kullanarak, kullanıcıların doğum tarihlerinden yıl bilgisi alınır ve amount adında bir sütun olarak eklenir. groupByRaw metodu kullanarak, kullanıcılar doğum yıllarına göre gruplanır. havingRaw metodu ile 2000 yılından sonra doğan kullanıcılar seçilir ve orderByRaw metodu ile doğum yıllarına göre sıralanır. get metodu ile veriler veritabanından çekilir ve $results değişkenine atanır.

Bu örnekler size Laravel Raw SQL Queries kullanmanın temel yollarını gösterir. Ancak daha detaylı ve kompleks sorgular için daha fazla araştırma yapmanız gerekmektedir.

Yorum Yap

Yorum yapmak için tıklayın