Ana içeriğe geç

SQL CONTAINS: Kapsamlı Bir Eğitim

Gelişmiş metin aramaları için SQL CONTAINS gücünü açığa çıkarın. Kesin veri analizi için mantıksal operatörler, yakınlık aramaları ve joker karakter kullanımlarına dalın.
· 5 dk. oku

Yapay Zeka ile Keşfedin

Metin verilerini arama ve işleme yeteneği, veri bilimciler veya veri mühendisleri için vazgeçilmezdir. SQL'in CONTAINS işlevi, veritabanlarınızdaki gelişmiş metin aramaları için güçlü bir araçtır ve belirli desenlere veya anahtar kelimelere göre veri getirmenizi sağlar.

Bu eğitim, SQL CONTAINS'i etkili bir şekilde kullanmanız için size rehberlik edecek ve veri analizi ihtiyaçlarınızda onun tüm potansiyelinden yararlanmanızı sağlayacaktır.

SQL CONTAINS'ı Anlamak

SQL CONTAINS, tam metin aramaları için kullanılır; metin verileri içinde belirli kelimeler, ifadeler veya desenler için veritabanlarını sorgulamanıza olanak tanır. Özellikle, verinin tam konumunun önceden bilinmediği büyük metin alanlarında belirli bilgileri bulmak için kullanışlıdır.

Sözdizimi ve Parametreler

SQL CONTAINS için temel sözdizimi şöyledir:

CONTAINS (column_name, 'search_pattern')

Temel bileşenler şunlardır:

  • Sütun adı: Aramanın yapılacağı alan. Tam metin dizinli bir sütun olmalıdır.
  • Arama deseni: Sütun içinde bulmak istediğiniz, tek tırnak içine alınmış metin.

Operatörler ve Joker Karakterler

Aramanızı hassaslaştırmak için SQL CONTAINS çeşitli operatörleri destekler:

  • AND & OR: Birden fazla arama terimini birleştirmek için kullanın.
  • NEAR: Kelimeleri birbirine belirli bir yakınlıkta bulur.
  • Yıldız (*): Tam kelimenin daha büyük bir dizgenin parçası olabileceği aramalar için joker karakter olarak görev yapar.

SQL CONTAINS'ı Uygulamak

SQL CONTAINS'ı pratik örneklerle nasıl uygulayacağımızı inceleyelim:

Temel Kullanım

"fruit" adlı bir sütunda "apple" ve "orange" terimlerini aramak için şunu kullanabilirsiniz:

CONTAINS (fruit, '"apple" AND "orange"')

Bu sorgu, "fruit" sütununda her iki terimin de bulunduğu satırları döndürür.

Gelişmiş Aramalar

Daha karmaşık aramalar için, CONTAINS'ı diğer SQL işlevleriyle birleştirmek; ifadeleri birbirine yakın aramak veya bir kelimenin farklı varyasyonlarını bulmak üzere joker karakterler kullanmak gibi ayrıntılı sorgular yazmanıza olanak tanır.

Gelişmiş aramalar, CONTAINS'ı mantıksal operatörlerle birleştirmeyi, yakınlık aramalarını kullanmayı ve metin alanları içinde desenleri veya belirli veri noktalarını ortaya çıkarmak için joker karakterlerden yararlanmayı içerebilir.

CONTAINS'ı Mantıksal Operatörlerle Birleştirme

SQL CONTAINS, aramaları birden çok kritere göre hassaslaştırmak için AND, OR ve NOT gibi mantıksal operatörlerin kullanımını destekler. Örneğin, bir metin sütunu içinde hem "technology" hem de "innovation" içeren kayıtları bulmak için sorgunuzu şu şekilde yapılandırabilirsiniz:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, '"technology" AND "innovation"'
  );

Buna karşılık, terimlerden herhangi birini içeren kayıtları bulmak için OR kullanırsınız:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, '"technology" OR "innovation"'
  );

Yakınlık Aramaları

NEAR operatörü, metin içinde birbirine yakın görünen kelime veya ifadeleri bulmak için özellikle kullanışlıdır. Bu yetenek, terimler arasındaki ilişkinin anlamı etkilediği bağlamlarda çok değerlidir. Örneğin, "climate" ile "change" kelimelerini birbirine 10 kelime mesafede aramak için:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, 'NEAR((climate, change), 10)'
  );

Bu sorgu, "climate" ve "change" kelimelerinin yakından ilişkili olduğu kayıtları önceliklendirerek belirli araştırma soruları için daha alakalı sonuçlar sunar.

Joker Karakterli Aramalar

Joker karakterler, değişken karakterlerin dahil edilmesine izin vererek aramaların kapsamını genişletir. Yıldız (*), CONTAINS sorgularında kısmi eşleşmeler için joker karakter görevi görür. Örneğin, "computer", "computing" veya "computation" gibi "compute" türevlerini bulmak için şunu kullanabilirsiniz:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(your_column, '"compute*"');

Bu yaklaşım, kök bir kelimeyle ilişkili geniş bir veri kümesini yakalamak istediğinizde veya veritabanında kullanılan tam terimlerden emin olmadığınızda özellikle yararlıdır.

Gelişmiş Desen Eşleştirme

Daha da gelişmiş desen eşleştirme gereken senaryolarda, SQL CONTAINS'ı LIKE operatörü veya düzenli ifadelerle birleştirmeyi düşünün. CONTAINS tam metin aramada başarılı olsa da, LIKE ve regex belirli karakter dizilerini veya biçimleri (ör. e-posta adresleri veya telefon numaraları) eşleştirme gibi desen esnekliği sağlayabilir.

Uygulamalı Örnek: Kapsamlı Aramalar İçin Teknikleri Birleştirme

Metin içinde tam olarak hangi ifadelerin kullanıldığından emin olmadığınız çevre teknolojisiyle ilgili veritabanı kayıtlarını bulmanız gereken bir senaryoyu ele alalım. Aşağıdaki gibi çeşitli teknikleri birleştirebilirsiniz:

SELECT 
  * 
FROM 
  your_table 
WHERE 
  CONTAINS(
    your_column, '("environment*" NEAR "technology*", 10) OR "climate change" OR "renewable energy"'
  ) 
  AND your_column LIKE '%sustainability%';

Bu sorgu, CONTAINS'ı yakınlık ve joker karakterli aramalar için kullanırken ek desen eşleştirme amacıyla LIKE operatörünü de dahil etmenin nasıl mümkün olduğunu gösterir ve karmaşık metin aramaları için sağlam bir strateji sunar.

Veri Biliminde SQL CONTAINS'a İlişkin Uygulamalı Örnek

Bir veri bilimci olarak, çoğunlukla müşteri memnuniyeti ve geri bildirimlerine ilişkin metin veri setleri olmak üzere çeşitli veri setleriyle çalışıyorum. Bu örnekte, müşteri geri bildirimlerinde memnuniyet veya memnuniyetsizliği gösterebilecek belirli anahtar kelimeleri arayacağız.

ID

FeedbackText

SatisfactionScore

1

Hizmetten çok memnunum.

5

2

Ürün kalitesinden memnun değilim.

2

3

Teslimat hızlıydı ve ürün harika çalışıyor...

5

4

Müşteri hizmetleri yardımcı olmadı ve kaba davrandı.

1

5

Satın alımdan memnunum. Tavsiye ederim!

4

CustomerFeedback Tablosu

CONTAINS'ı kullanmak için veritabanınızda Tam Metin Arama etkinleştirilmiş olabilir.

CONTAINS anahtar sözcüğü, “FeedbackText” sütununun “happy” kelimesini içerdiği kayıtları bulmak için kullanılır.

SELECT 
  * 
FROM 
  CustomerFeedback 
WHERE 
  CONTAINS(FeedbackText, 'happy');

Yukarıdaki sorgu, CustomerFeedback tablosunda FeedbackText sütununun “happy” kelimesini içerdiği satırları döndürecektir.

ID

FeedbackText

SatisfactionScore

1

Hizmetten çok memnunum.

5

3

Teslimat hızlıydı ve ürün harika çalışıyor...

5

5

Satın alımdan memnunum. Tavsiye ederim!

4

SQLite veritabanında CONTAINS komutunu kullanamazsınız. Bunun yerine şunu deneyin:

SELECT 
  * 
FROM 
  CustomerFeedback 
WHERE 
  FeedbackText LIKE '%happy%';

CONTAINS'ın Ötesinde: Desen Eşleştirme ve Dize İşleme

CONTAINS metin aramaları için güçlü olsa da, SQL metin verileriyle çalışmak için başka teknikler de sunar:

LIKE Operatörü

CONTAINS'a benzer şekilde, LIKE operatörü daha basit bir sözdizimiyle, joker karakter olarak % kullanarak desen eşleştirme sağlar. Örneğin, adı "apple" içeren herhangi bir ürünü bulmak için:

SELECT 
  * 
FROM 
  Products 
WHERE 
  productName LIKE '%apple%'

Gelişmiş Dize İşlevleri

SQL, metin dizgelerinin parçalarını çıkarmak veya işlemek için LEFT ve REVERSE gibi işlevler sunar ve metin analizi ile işleme için kapsamlı yetenekler sağlar. Bunlar hakkında daha fazla bilgiyi SQL Server Veritabanlarında Veri Temizleme kursumuzda edinebilirsiniz.

Sonuç

SQL CONTAINS işlevi ve ilişkili metin işleme yetenekleri, veri profesyonelleri için temel araçlardır. Bu teknikleri anlayıp uygulayarak, veritabanlarınızda metin verilerini etkili bir şekilde arayabilir ve analiz edebilir, içgörüleri ortaya çıkarabilir ve veri analizi projelerinizi güçlendirebilirsiniz.

Unutmayın, sorgularınızın etkinliği yalnızca sözdizimine hâkim olmaya değil, aynı zamanda verinizin bağlamını ve yapısını anlamaya da bağlıdır. Gerçek dünya veri setleri ve SQL projeleri ile pratik yapın ve metin veri analizinde SQL'in gücünden tam olarak yararlanmak için çeşitli işlevleri keşfedin.

Daha fazla SQL operatörü hakkında bilgi edinmek ve SQL temellerini keşfetmek için SQL Temelleri Hızlı Başvuru Kılavuzu ve SQL Fundamentals yetkinlik yoluna göz atın.

Abid Ali Awan

Yazar

Abid Ali Awan

Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

Konular

İlgili