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.
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.


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.