Ana içeriğe geç

SQL LIMIT Klozunu En İyi Nasıl Kullanırsınız

Verileri filtrelemek için SQL LIMIT klozunun uygulanışını öğrenin. PostgreSQL ve MySQL veritabanlarında LIMIT klozunun kullanımını ustalaşın.
· 8 dk. oku

Yapay Zeka ile Keşfedin

SQL LIMIT klozu, bir sorguda döndürülen kayıt sayısını kontrol eder. Adından da anlaşılacağı üzere, LIMIT klozu veriler filtrelendikten sonra gösterilen satırları sınırlar. Bu kloz, büyük veri kümeleriyle çalışırken ancak verinin belirli bir kısmını getirmek istediğiniz durumlarda önemlidir.

Veri alanında kariyer hedefliyorsanız, veri analizi için SQL’de gerekli becerileri edinmek üzere DataCamp’in Introduction to SQL ve SQL Fundamentals kurslarını almanızı şiddetle öneririm.

Kısa Cevap: SQL LIMIT Klozu Nedir?

SQL LIMIT klozu, veriler filtrelendikten sonra bir sorgunun döndürmesi gereken kayıt sayısını belirten faydalı bir klozdur. Bu teknik, yalnızca görüntüleme veya analiz için verinin bir alt kümesini döndürmeyi sağlar. Bu nedenle, LIMIT klozu sayfalama işlemlerinde büyük verileri daha küçük parçalara bölmek için önemlidir. Ayrıca, veritabanı performansını yavaşlatabilecek büyük sorgulardan kaçınmak için performans optimizasyonunda da kullanılır.

Aşağıdaki örnek, employees tablosundan yalnızca ilk 10 kaydı göstermek için LIMIT klozunun temel kullanımını göstermektedir.

-- Select all columns from the employees table
-- and limit the number of returned rows to 10.
SELECT * 
FROM employees
LIMIT 10;

SQL LIMIT Klozunun Söz Dizimi

SQL LIMIT klozu, bir sorgudan döndürülen kayıt sayısını kontrol etmek için SELECT ifadesine dahil edilir. LIMIT klozu, belirtilen şekilde kayıtları filtrelemek üzere ifadenin sonuna eklenir. LIMIT ve diğer yaygın SQL klozları hakkında daha fazla bilgi edinmek için DataCamp’in SQL Basics Cheat Sheet sayfasına da göz atabilirsiniz.

-- Select columns column1, column2, ... from the table table_name
SELECT column1, column2, ...
FROM table_name
-- Limit the number of rows returned to number_of_rows
LIMIT number_of_rows;

İşte LIMIT klozunun pratik bir örneği. Bu sorgu, employees tablosunun first_name, last_name ve department sütunlarından yalnızca 10 kayıt gösterecektir.

-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10
LIMIT 10;

Bazen, hedeflenen satırları göstermeden önce belirli sayıda satırı atlamak için isteğe bağlı OFFSET klozunu kullanabilirsiniz. OFFSET söz dizimi aşağıda gösterilmiştir.

-- Select column_names from the table table_name
SELECT column_names
FROM table_name
-- Arrange the results in ascending order based on column_name
ORDER BY column_name
-- Limit the number of rows returned to number_of_rows, starting from offset_value
LIMIT number_of_rows OFFSET offset_value;

Yukarıdaki SQL sorgusunda, number_of_rows döndürülecek satır sayısını, offset_value ise döndürmeden önce sorgunun atlaması gereken satır sayısını gösterir. 

Aşağıdaki örnek, döndürülecek satır sayısını kontrol etmek için SQL OFFSET ve LIMIT klozlarının nasıl kullanılacağını göstermektedir. LIMIT klozu 10 kayıt döndürmeyi belirtirken, sorgudaki OFFSET klozu ilk 5 kaydı atlar. Dolayısıyla sonuçlar, verinin 6. satırından 15. satırına kadar olan kayıtları (10 satır) gösterecektir.

-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10, starting from the 6th row (offset of 5)
LIMIT 10 OFFSET 5;

SQL LIMIT Klozu Hakkında Hatırlanması Gereken Önemli Noktalar

Sorgu performansını optimize etmek ve doğru veri getirme sağlamak için LIMIT klozunu ve farklı SQL veritabanlarında varyasyonlarını doğru şekilde uygulamayı anlamak kritik önemdedir. Bazı önemli noktalara bakalım. 

SELECT ifadesinde LIMIT klozunun konumu

LIMIT klozu genellikle FROM klozundan sonra, SELECT ifadesinin sonunda yer alır. WHERE, GROUP BY ve ORDER BY gibi diğer isteğe bağlı toplama klozlarını kullanıyorsanız, LIMIT klozunun sorgunun sonunda olduğundan emin olun.

-- Select all columns from the employees table
SELECT *
FROM employees
-- Limit the number of rows returned to 5, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;

LIMIT ile ORDER BY klozunu birleştirmek

LIMIT klozu, tutarlı ve öngörülebilir sonuçlar için ORDER BY toplamasıyla birleştirilebilir. Bu teknik, verilerin alınmadan önce belirli bir düzende sıralanmasını sağlar. Aşağıdaki örnekte, filtrelenen satırları göstermeden önce verileri hire_date’e göre azalan düzende sıralıyoruz.

-- Select all columns from the employees table
SELECT *
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10
LIMIT 10;

Toplama fonksiyonları ve bunların veri analizindeki uygulamaları hakkında daha fazla bilgi edinmek için DataCamp’in Associate Data Analyst in SQL kariyer yolunu ve Reporting in SQL kursunu almanızı öneririm.

Veritabanlarına göre SQL LIMIT varyasyonları ve söz dizimi

Yukarıdaki örnekler, desteklenen PostgreSQL, SQLite ve MySQL veritabanlarında SQL LIMIT klozlarının kullanımını göstermektedir.

SQL Server’da benzer sonuçlara ulaşmak için, verilen verilerden döndürülecek kayıt sayısını kontrol etmek amacıyla TOP fonksiyonunu kullanmayı değerlendirin.

-- Select the top 10 records of first_name, last_name from the employees table
SELECT TOP 10 first_name, last_name
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC;

Benzer şekilde, Oracle veritabanı bir sorguda döndürülecek kayıt sayısını kontrol etmek için FETCH FIRST n ROWS ONLY kullanımını destekler.

-- Select the first_name and last_name columns from the employees table
SELECT first_name, last_name
FROM employees
-- Order the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to the first 10 rows
FETCH FIRST 10 ROWS ONLY;

Sayfalamada LIMIT ve OFFSET

SQL LIMIT ve OFFSET genellikle verimli veri sayfalama sağlamak için birlikte kullanılır. Bu teknik, büyük veri kümelerinin uygun biçimde görüntülenmesi için daha küçük, yönetilebilir parçalara ayrılmasını sağlar.

Aşağıdaki örnekte, LIMIT ve OFFSET klozu görüntülenen satırları 10 ile sınırlar ancak 21. satırdan başlar.

-- Select all columns from the employees table
SELECT *
-- Arrange the results in descending order based on hire_date
FROM employees
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;

SQL LIMIT Klozunun Yaygın Kullanım Alanları

  • Sayfalama: OFFSET klozu ile birleştirildiğinde, LIMIT klozu web uygulamalarında veri sayfalama için kullanılır. Bu teknik, verileri farklı web sayfaları gibi daha küçük parçalar/alt kümeler halinde görüntüler.
  • Performansın Optimize Edilmesi: LIMIT klozu, veritabanı sunucularındaki yükü azaltarak sorgu performansını iyileştirebilir. Bunu, aynı anda daha küçük veri alt kümelerini getirip döndürerek sağlar.
  • Veri Örnekleme: LIMIT klozu, daha küçük veri alt kümelerini getirerek veri analizinde kullanışlıdır. Bu yöntem, analistler için analiz sırasında performansı artırmaya yardımcı olur.

SQL LIMIT Komutunun Sınırlamaları

SQL LIMIT klozunun sınırlamaları şunları içerir:

  • Tüm Veritabanları Tarafından Desteklenmeme: LIMIT klozu tüm veritabanlarında desteklenmez. Örneğin, SQL Server ve Oracle veritabanlarında LIMIT klozu mevcut değildir. 
  • Büyük OFFSET Değerlerinde Performans Sorunları: Büyük OFFSET değerleri kullanmak, veritabanı sunucularını yavaşlatabilir ve sorgu yürütmesinin yavaşlamasına neden olabilir.

Farklı veritabanlarının sınırlamalarından kaçınmak için aşağıdaki alternatifleri kullanmayı değerlendirin.

SQL Server'da TOP klozu

TOP klozu, SQL Server veritabanı için LIMIT klozuyla aynı sonuçları verir.

-- Select the top 10 rows from the employees table ordered by hire_date
SELECT TOP 10 first_name, last_name
FROM employees
ORDER BY hire_date DESC;

SQL Server ve DB2'de FETCH FIRST n ROWS ONLY

FETCH FIRST n ROWS ONLY, SQL Server ve DB2 veritabanlarında LIMIT klozuna benzer sonuçlar döndürür.

-- Select the first 10 rows from the employees table ordered by hire_date
SELECT first_name, last_name
FROM employees
ORDER BY hire_date DESC
FETCH FIRST 10 ROWS ONLY;

Oracle'da ROWNUM

Oracle veritabanında, ROWNUM fonksiyonu döndürülen kayıt sayısını kontrol eder. Bu fonksiyon, verileri istenen şekilde filtrelemek için bir alt sorguda birleştirilir.

-- Select the top 10 rows from the employees table ordered by hire_date
SELECT * FROM (
    SELECT first_name, last_name
    FROM employees
    ORDER BY hire_date DESC
) WHERE ROWNUM <= 10;

Sonuç

SQL LIMIT klozu, bir veritabanından veri getirildikten sonra görüntülenen satır sayısını sınırlamak için önemlidir. Bir veri profesyoneli olarak, veri analizi ve işleme için LIMIT klozunun farklı kullanım alanlarını anlamanız önemlidir. Benzer şekilde, LIMIT klozunun veritabanı desteğini dikkate almalı ve SQL Server ve Oracle gibi uyumsuz veritabanları kullanırken diğer alternatif fonksiyonlara başvurmalısınız.

SQL LIMIT klozunun farklı uygulamalarını anlamak için farklı veri kümeleriyle pratik yapmaya devam etmelisiniz. DataCamp’in Learn SQL ve Intermediate SQL kursları, SQL’de ileri beceriler kazanmak için uygundur. Ayrıca, SQL kullanım bilginizi göstermek ve diğer veri profesyonelleri arasında öne çıkmak için DataCamp’in SQL Associate Certification programını almanızı da öneririm.

Allan Ouko

Yazar

Allan Ouko

Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.

Sıkça Sorulan Sorular

SQL LIMIT fonksiyonunun kullanımı nedir?

SQL LIMIT fonksiyonu, filtrelenen verilerden döndürülen satır sayısını kontrol eder.

SQL LIMIT'in temel kullanım alanı nedir?

SQL LIMIT esas olarak web sayfalarında görüntülenen satır sayısını sınırlamak için veri sayfalamada kullanılır.

SQL LIMIT klozu tüm veritabanlarında destekleniyor mu?

SQL LIMIT fonksiyonu yalnızca PostgreSQL, MySQL ve SQLite veritabanlarında desteklenir. Bu kloz, SQL Server ve Oracle veritabanlarında desteklenmez.

Desteklenmeyen veritabanlarında LIMIT klozunun alternatifi nedir?

SQL LIMIT fonksiyonunun SQL Server’daki alternatifi TOP ve FETCH FIRST n ROWS ONLY klozlarıdır. Oracle veritabanı ise ROWNUM fonksiyonunu LIMIT alternatif olarak kullanır.

SQL LIMIT klozunda OFFSET'in kullanımı nedir?

Belirli sayıda satırı döndürmeden önce kaç satırın atlanacağını belirtmek için OFFSET kullanabiliriz; bu sayı, LIMIT klozu ile döndürülecek satır sayısı ile birlikte çalışır.

Konular

İlgili