19 Mutlaka Okunması Gereken SQL Mülakat Soruları ve Cevapları: 2022'de Yeni Başlayanlar ve Deneyimliler İçin

Yayınlanan: 2021-01-07

SQL Mülakat Soruları ve Cevapları

Röportajınız için endişeli misiniz? SQL Mülakat Sorularınız için yanınızdayız. Bunlar, Sql Mülakatlarında en sık sorulan sorulardan birkaçıdır.
Yazılım ve BT endüstrisinde hangi iş rolünü seçerseniz seçin, SQL becerileri bir zorunluluktur. Bugün bile RDBMS, dünya çapında en yaygın kullanılan veritabanlarından biridir ve bu nedenle SQL, geliştirme alanının vazgeçilmez bir parçasıdır. Uber, Netflix, Airbnb ve tabii ki Microsoft gibi büyük isimler, birincil veritabanı yönetim aracı olarak SQL kullanıyor.

SQL'in günümüzde son derece popüler olmasının nedeni, kurumsal BT ortamlarında bir dizi işlem işlemeyi, analitik uygulamasını ve iş zekası operasyonlarını desteklemesidir.

Bu gönderide, SQL'in temelleri ile başlamanıza yardımcı olacağız. Bu nedenle, en sık sorulan SQL mülakat sorularının bir listesini oluşturduk. Umarım SQL mülakat soruları mülakatlarınızda size yardımcı olur. Bu SQL mülakat soruları size SQL'in temel kavramları ve bununla nasıl devam etmeniz gerektiği konusunda nispeten iyi bir fikir verecektir.

En İyi SQL Mülakat Soruları ve Cevapları

1. SQL'i tanımlayın.

SQL veya Structured Query Language, Microsoft tarafından oluşturulan ilişkisel bir veritabanı yönetim sistemidir. Veritabanlarıyla iletişim kurmak için açıkça tasarlanmıştır. ANSI (Amerikan Ulusal Standartlar Enstitüsü), SQL'in İlişkisel Veritabanı Yönetim Sistemleri (RDBMS) için standart sorgu dili olduğunu iddia eder.

Yalnızca RDBMS'yi korumak için değil, aynı zamanda farklı veri türleri üzerinde çok çeşitli diğer veri işleme işlemlerini gerçekleştirmek için de kullanılır. Örneğin, SQL, veritabanları oluşturmak, bir veritabanında tablolar oluşturmak, bir veritabanından veri almak, bir veritabanındaki tabloları güncellemek, sorguları yürütmek vb. için kullanılır.

Devamını Okuyun: Veri Bilimi için SQL: Neden SQL

2. Veritabanını tanımlayın.

Veritabanı, verilerin kolay erişimini, depolanmasını, alınmasını ve yönetilmesini kolaylaştırmak için bir bilgisayarda organize bir biçimde depolanan yapılandırılmış bir veri biçimini ifade eder. Bir veritabanı aslında şemalar, tablolar, sorgular, görünümler vb. topluluğudur.

3. RDBMS'nin DBMS'den farkı nedir?

RDBMS veya İlişkisel Veritabanı Yönetim Sistemi, RDBMS'nin verileri tabloların ortak alanları arasındaki ilişkileri tanımlayabileceğiniz bir tablo koleksiyonu olarak depolaması anlamında DBMS'den farklıdır, oysa DBMS'de bunu yapamazsınız.

Verileri tablo biçiminde depolayan RDBMS'den farklı olarak DBMS, verileri bir dosya sistemine kaydetmek yerine bir veritabanında depolayan bir Dosya Yöneticisi gibi çalışır.

RDBMS, MySQL, Microsoft SQL Server, Oracle, IBM DB2 ve Amazon Redshift gibi birçok modern veritabanı yönetim sisteminin temelidir.

4. Kısıtlamaları tanımlayın.

SQL'de, bir tablonun veri türü üzerindeki sınırı belirtmek veya veritabanındaki bir tablodaki verilerle ilgili kuralları bildirmek için kısıtlamalar kullanılır. Bir SQL tablosundaki hem tekli hem de çoklu alanlar için, bir tablo oluşturulurken veya ALTER TABLE komutu kullanılarak oluşturulduktan sonra kısıtlamalar belirtilebilir.

SQL'deki bazı kısıtlamalar şunlardır:

  • GEÇERSİZ DEĞİL
  • KONTROL
  • VARSAYILAN
  • EŞSİZ
  • BİRİNCİL ANAHTAR
  • YABANCI ANAHTAR

5. Tanımla – Birincil Anahtar, Benzersiz Anahtar ve Yabancı Anahtar.

Birincil anahtar, bir satırı benzersiz bir şekilde belirtmeye yardımcı olan alanların birleşimidir. Birincil anahtarın benzersiz değerleri olmalıdır ve ayrıca örtük bir NOT NULL kısıtlaması içerir; bu, birincil anahtarın NULL değerlerine sahip olamayacağı anlamına gelir.

Bir sütundaki tüm değerlerin farklı olmasını sağlamak için benzersiz bir anahtar kısıtlaması kullanılır. Bir veritabanındaki her kaydı benzersiz bir şekilde tanımlamaya yardımcı olur. Birincil anahtarın aksine (tablo başına yalnızca bir birincil anahtar tanımlanır), tablo başına birden çok benzersiz kısıtlama tanımlanabilir.

Yabancı anahtar, bir tablodaki, başka bir tablonun birincil anahtarına başvurmak için kullanılabilen tek bir alan veya alan koleksiyonundan oluşur. Bu anahtar, iki tablo arasındaki ilişkide bilgi bütünlüğünün korunmasına yardımcı olur. Yabancı anahtar kısıtlamasını içeren tablo alt tablo olarak bilinirken, aday anahtarı içeren tablo ana tablo olarak etiketlenir.

6. Katılmayı tanımlayın. Farklı Join türleri nelerdir?

Join, aralarında ilgili bir sütuna dayalı olarak iki veya daha fazla tablodaki kayıtları veya satırları birleştirmek için tasarlanmış bir SQL yan tümcesidir. Join, tabloların alanları arasındaki ilişkiye dayalı olarak daha fazla tablodan veri sorgulamak için kullanılan bir anahtar kelime gibi davranır. Öncelikle veri almak için kullanılırlar. Ancak, veri alımı büyük ölçüde tablolar arasındaki ilişkiye bağlıdır.

Dört tür birleştirme vardır:

  • İç Birleştirme – Bu, tablolar arasında en az bir eşleşen değer içeren kayıtları veya satırları döndürmek için kullanılır.
  • Sağ Birleştirme – Bu, tablolar ve sağ taraftaki tabloda bulunan diğer tüm satırlar arasında ortak bir eşleşme olan satırları döndürür. Basitçe söylemek gerekirse, sağ birleştirme, sol taraftaki tabloda uygun bir eşleşme olmamasına bakılmaksızın, sağ taraftaki tablodaki tüm satırları döndürür.
  • Sol Birleştirme – Sağ birleştirme gibi, sol birleştirme, sağ taraftaki tabloda uygun bir eşleşme olmasa bile tablolar ve sol taraftaki tabloda bulunan tüm satırlar arasında ortak olan satırları döndürür.
  • Tam Birleştirme – Bu birleştirme, herhangi bir tek tablo eşleşen satırlardan oluştuğunda satırları döndürür. Başka bir deyişle, hem sağ birleştirmenin hem de sol birleştirmenin sonucunu içeren bir küme oluşturur. Bu nedenle, sonuç kümesi hem sol taraftaki hem de sağ taraftaki tablolardaki tüm satırları içerir.

7. İndeks nedir? Farklı dizin türlerini adlandırın.

SQL'de dizin, tablolardan kayıtların daha hızlı alınmasını sağlayan bir performans ayarlama yöntemidir. Veritabanındaki arama sürecini hızlandırırlar - bir dizin, her değer için bir giriş oluşturur ve böylece verilerin daha hızlı alınmasını sağlar.

Dizinler, doğru eşleşmeleri bulmak için verilerin yalnızca bu alt kümelerini gözden geçirerek bazı sütunlarla eşleşen satırları bulmak için kullanılır.

Üç tür indeks vardır:

  • Benzersiz Dizin – Bu dizin, bir tablodaki hiçbir iki veri satırının aynı anahtar değerlere sahip olmamasını sağlayarak veri bütünlüğünü korur. Birincil anahtarı tanımlarken otomatik olarak benzersiz bir dizin uygulayabilirsiniz.
  • Kümelenmiş Dizin – Bu dizin, bir tablonun fiziksel sırasını yeniden sıralamaya veya yeniden düzenlemeye ve anahtar değerlere göre arama yapmaya yardımcı olur. Bu dizinde, veritabanında bulunan satırların sırası, dizindeki satırların sırasına karşılık gelir. Bu nedenle bir tablonun yalnızca bir kümelenmiş dizini olabilir.
  • Kümelenmemiş Dizin – Bu dizin, verilerin mantıksal sırasını korur. Orijinal tabloya başvuran tablo içinde ayrı bir varlık oluşturmak için kullanılır. Bir tablonun birden çok kümelenmemiş dizini olabilir.

8. AUTO_INCREMENT nedir?

AUTO_INCREMENT, bir tabloya yeni bir kayıt eklendiğinde veya girildiğinde otomatik olarak benzersiz bir sayı oluşturmak için kullanılır. Bir tablonun yalnızca bir birincil anahtarı olduğundan, bu birincil anahtar, her yeni kayıt eklendiğinde alanı artırmaya yardımcı olan AUTO_INCREMENT alanı olarak eklenir.

Varsayılan olarak, OTOMATİK ARTIRMA değeri 1'den başlar ve her yeni kayıt eklendiğinde 1 artırılır.

9. Sorgu ve Alt Sorgu tanımlayın.

Sorgu, bir veritabanı tablosundan veya birden çok tablodan veri istemek veya almak için yazılmış bir koddur. Bir sorgu, bir eylem sorgusu veya bir seçme sorgusu olabilir.

Bir alt sorgu ise başka bir sorgu içindeki bir sorgudur. İç sorgu veya iç içe sorgu olarak da bilinir. Ana sorgu tarafından sorgulanması gereken verileri kısıtlamak veya geliştirmek için bir alt sorgu kullanılır, böylece ana sorgunun sonucunu kısıtlar veya geliştirir. Genellikle, önce bir alt sorgu yürütülür ve sonuç ana sorguya iletilir.

İki tür alt sorgu vardır:

  • İlişkili alt sorgu – Bu alt sorgu bağımsız bir sorgu değildir. Ancak, ana sorgunun FROM bölümünde listelenen bir tablodaki sütuna başvurabilir.
  • İlişkili olmayan alt sorgu – Bu bağımsız bir sorgudur ve çıktısı ana sorguda değiştirilir.

10. Tetikleyiciyi tanımlayın.

Tetikleyici, INSERT, DELETE, UPDATE(DML) ifadesi gibi olaylar meydana geldiğinde otomatik olarak yürütülen depolanmış bir kod veya programdır. Ayrıca Veri tanımlama ifadelerine (DDL) yanıt olarak yürütülebilirler ve SERVER ERROR, LOGON vb. gibi veritabanı işlemleri, veritabanı bütünlüğünün korunmasına yardımcı olur.

11. Bir işlemde ACID özelliklerinin rolünü açıklayın.

ACID özellikleri, işlemlerden önce ve sonra bir veritabanında tutarlılığı sağlamak için izlenir.

  • Atomisite – Bu, bir işlemin tamamlanması gerektiğini gerektirir. Yarı yolda bırakılmamalıdır. Bir işlem başarısız olursa, tüm işlem başarısız olur ve veritabanı değişmeden kalır.
  • Tutarlılık – Bu, bir veritabanına girilen verileri doğrulayarak bütünlük kısıtlamalarını korumaya çalışır.
  • İzolasyon – Bu özellik eşzamanlılığı kontrol etmeyi amaçlar.
  • Dayanıklılık – Bu özellik, bir işlem yapıldığında, gelebilecek tüm zorluklara (örneğin, güç kaybı, dahili hatalar, vb.) rağmen bağlı kalmasını sağlar.

12. DELETE ve TRUNCATE komutları arasında ayrım yapın.

DELETE ve TRUNCATE komutları arasındaki temel fark aşağıdaki gibidir:

  • DELETE komutu bir veya daha fazla mevcut tabloyu silmek veya kaldırmak için kullanılırken, TRUNCATE komutu bir tablonun içindeki tüm verileri siler.
  • DELETE bir DML komutudur, TRUNCATE ise bir DDL komutudur.
  • DELETE, bir tetikleyici gerçekleştirmenize izin verir, ancak TRUNCATE, çalıştırmanıza ve tetiklemenize izin vermez.
  • TRUNCATE komutu, yabancı anahtar kısıtlamaları bir tabloya başvurduğunda çalışmaz. Bu gibi durumlarda DELETE komutunu kullanmanız gerekir.

13. SQL'in farklı alt kümelerini adlandırın.

SQL'in alt kümeleri şunları içerir:

  • DDL (Veri Tanımlama Dili) – Bu dil, CREATE, ALTER ve DELETE nesneleri gibi SQL komutları da dahil olmak üzere veritabanı üzerinde bir dizi işlem gerçekleştirmenizi sağlar.
  • DML (Data Manipulation Language) – Bu dil, INSERT, UPDATE ve DELETE gibi komutları kullanarak bir veritabanındaki verilere erişmenizi ve bunları değiştirmenizi sağlar.
  • DCL (Veri Kontrol Dili) – Bu dil, GRANT ve REVOKE gibi komutları kullanarak veritabanına erişimi kontrol etmenizi sağlar.

Okuyun: 2020'de En İyi 9 Veri Bilimi Aracı

14. Veri Bütünlüğünü Açıklayın.

Veri bütünlüğü, veritabanında depolanan verilerin doğruluğunu, tutarlılığını ve güvenilirliğini tanımlar. Ayrıca, bir veritabanına veya uygulamaya eklendiğinde veriler üzerinde iş kurallarını uygulamak için bütünlük kısıtlamalarının tanımlanmasına yardımcı olur.

Veri bütünlüğü dört çeşittir:

  • Satır bütünlüğü
  • Sütun bütünlüğü
  • Bilgi tutarlılığı
  • Kullanıcı tanımlı bütünlük

15. Kullanıcı Tanımlı İşlevler nelerdir? Kullanıcı Tanımlı İşlevlerin türlerini adlandırın.

Kullanıcı tanımlı işlevler, gerektiğinde ve belirli bir mantığı kullanmak için özel olarak yazılmış işlevlerdir. Bu işlevler, aynı mantığı birden çok kez yazma ihtiyacını ortadan kaldırır; bunun yerine, gerektiğinde kullanıcı tanımlı bir işlevi arayabilir veya çalıştırabilirsiniz.

Üç tür kullanıcı tanımlı işlev vardır:

  • Skaler fonksiyonlar.
  • Satır içi tablo değerli işlevler.
  • Çok deyim değerli fonksiyonlar.

16. Harmanlamayı tanımlayın. Farklı harmanlama duyarlılığı türlerini adlandırın.

Harmanlama, karakter verilerinin nasıl sıralanacağını ve karşılaştırılacağını belirleyen bir kurallar koleksiyonunu ifade eder. Karakter verilerini sıralamak için doğru karakter sırasını tanımlamanın yanı sıra, büyük/küçük harf duyarlılığı, vurgu işaretleri, kana karakter türleri ve ayrıca karakter genişliğini belirleme seçeneklerini içerir.

Farklı harmanlama duyarlılığı türleri şunları içerir:

  • Büyük/küçük harf duyarlılığı – 'A' ve 'a' karakterleri farklı şekilde ele alınır.
  • Vurgu duyarlılığı – 'a' ve ' a' karakterleri farklı şekilde ele alınır.
  • Kana duyarlılığı – Bu, Hiragana ve Katakana gibi Japonca Kana karakterlerini farklı şekilde ele alır.
  • Genişlik duyarlılığı – Bu, tek baytlık (yarım genişlikli) karakteri ve çift baytlı (tam genişlikli) karakteri farklı şekilde ele alır.

17. Saklı Yordam ile ne demek istiyorsunuz?

Saklı yordam, RDBMS'ye erişen uygulamalar için kullanılan bir alt yordamdır (SQL kodu). Modüler programlama konseptini destekler, yani bir kez saklı bir prosedür oluşturup kaydedebilir ve gerektiğinde birden çok kez çağırabilirsiniz.

Bu prosedürler, veritabanı veri sözlüğünde saklanır. Saklı yordamın avantajı, daha hızlı sorgu yürütülmesine izin vermesidir. Bu yalnızca ağ trafiğini azaltmakla kalmaz, aynı zamanda verilere daha iyi güvenlik sağlar.

Diğer bir avantaj ise, verilere doğrudan erişemeyen kullanıcılar erişim elde etmek için saklı yordamları kullanabildikleri için saklı yordamların ek işlevlerle birlikte gelmesidir.

Bununla birlikte, bir dezavantajı da vardır - saklı bir prosedür yalnızca bir veritabanında yürütülebilir, genellikle veritabanı sunucusunda daha fazla bellek kaplar.

18. Görünümler ve Tablolar arasında ayrım yapın.

Görünümler ve tablolar arasındaki bazı fark noktaları şunlardır:

  • Görünümler, bir veritabanından çıkarılan sanal bir tabloya atıfta bulunurken, bir tablo, sınırlı sayıda sütun ve sonsuz sayıda satır içeren yapılandırılmış bir varlığa atıfta bulunur.
  • Görünümler verileri kendi başlarına tutamazlar, oysa tablolar veri içerir ve veritabanlarında depolar.
  • Görünümler, birkaç farklı tabloda yer alan belirli bilgileri sorgulamanıza olanak tanır. Bununla birlikte, bir tablo, karakterize edilen nesnelerin durumları ile birlikte temel müşteri bilgilerini tutar.

19. Geçici Tabloyu Tanımlayın. Nasıl bir tane oluşturabilirsiniz?

Geçici tablo, ara sonuçları saklamanıza ve işlemenize olanak tanıyan bir tablodur. Bu tablolar, artık kullanılmadıklarında otomatik olarak silinebilir. Geçici tablolar, geçici verileri depolamanız gereken durumlar için kullanışlıdır.

Geçici bir tablo oluşturmak için sözdizimi şöyledir:

TABLO OLUŞTUR #table_name();

Aşağıdaki sorgu geçici bir tablo oluşturacaktır:

tablo oluştur #book(b_id int, b_cost int)

Şimdi kayıtları ekleyeceğiz.

#kitap değerlerine (1,100) ekleyin

#kitap değerlerine ekleyin(2.232)

#kitaptan * seç

Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Toplama

Bu SQL mülakat soruları ve cevapları kılavuzunun SQL bilgi tabanınızı güçlendirmenize ve genişletmenize yardımcı olacağını umuyoruz.

SQL ve tam yığın geliştirme hakkında daha fazlasını öğrenmek istiyorsanız, çalışan profesyoneller için oluşturulan ve 10'dan fazla vaka çalışması ve proje, pratik uygulamalı sunan IIIT-B & upGrad'ın Tam Yığın Yazılım Geliştirmedeki Yönetici PG Programına göz atın çalıştaylar, endüstri uzmanlarıyla mentorluk, endüstri mentorlarıyla bire bir, 400+ saat öğrenim ve en iyi firmalarla iş yardımı.

Tam Yığın Yazılım Geliştirmede PG Diploması

Tam Yığın Geliştirmede Executive PG Programına Şimdi Başvur