Bir programcının SQL bilgisini test etmek için sorular nelerdir? Sorunun cevabı nedir? Ve doğru bir cevap eksikliği, soru ile ilgili kavramları anlaması muhtemel zaman açısından ne anlama gelir?
GOOGLED: sql meydan okuması
Bir programcının SQL bilgisini test etmek için sorular nelerdir? Sorunun cevabı nedir? Ve doğru bir cevap eksikliği, soru ile ilgili kavramları anlaması muhtemel zaman açısından ne anlama gelir?
GOOGLED: sql meydan okuması
Yanıtlar:
Ne kadar zor olmasını istediğinize bağlıdır. Ayrıca, çoğu SQL probleminin bir şeyler yapmak için birden fazla kabul edilebilir yolu olduğu ve diğer sorunlara neden olacak şekilde SQL problemlerini özensiz yollarla çözmenin yolları olduğu için size cevap vermekten biraz eminim. Cevabı "derecelendiren" kişi kesinlikle kendi başına çözebilmelidir.
Dedi ki, İşte başımın tepesinden geldiğim birkaç tane.
Son derece Kolay Seviye:
EmpID, FirstName, Soyadı, HireDate ve TerminationDate sütunlarına sahip bir çalışanlar tablosu verildiğinde, soyadına ve soyadına göre sıralı
olarak "Smith" ile başlayan şirkette halen çalışan tüm çalışanları döndürmek için bir sorgu yazın.
Kolay Seviye
Yukarıdaki Çalışan tablosunun yanı sıra EmpID ve ReviewDate sütunlarına sahip yeni bir "AnnualReviews" tablosu göz önüne alındığında: HireDate'e
göre sıralanmış bir incelemeye sahip olmayan tüm çalışanları döndürmek için bir sorgu yazın.
Orta Seviye Yukarıdaki çalışan tablosuna bakıldığında, şirket için hala çalışan en az ve en az çalışan çalışan arasındaki farkı (gün cinsinden) hesaplamak için bir sorgu yazın?
Zor Seviye
Yukarıdaki çalışan tablosu göz önüne alındığında, şirketin kimseyi işe almadan ya da kovmadan en uzun süreyi (gün olarak) hesaplamak için bir sorgu yazın.
Daha Zor Seviye
Yine aynı tabloları kullanarak, her çalışanı döndüren bir sorgu yazın ve her satır / çalışan için görev süresi boyunca herhangi bir zamanda şirket için çalışan en fazla sayıda çalışanı ve maksimuma ulaşılan ilk tarihi içerir. İmleç kullanmamanız için ekstra puan.
Genellikle veri uzmanları için röportajlara katılıyorum, bu yüzden sorularım zor oluyor. Ancak SQL yazacak olan herkesin isteyebileceğim bir şey, birleştirme bilgisi ve ne zaman bir sol birleşim yerine bir iç birleşim kullanmaktır. Bunu anlamayan herkes, herhangi bir şekilde herhangi bir şekilde veya formda bir veritabanını sorgulayan bir işe sahip değildir.
Yapacağım başka bir şey, GROUP BY nasıl yapacağını ve Toplama işlevlerini nasıl kullanacaklarını anladıklarından emin olmaktır.
UNION ve UNION ALL arasındaki fark, işimdeki çok sayıda fakir adayı ortadan kaldırdı.
Ben rica ediyorum "Neden ve nasıl bir SQL sorgusunda kullanılacak kullanıcıdan verilen giriş değerleri sterilize ki?"
Bu SQL enjeksiyonu önlemek için gerekli ve cevap edememek bu SQL sözdizimi ve komutları (örneğin hakkında iyi bilgi gerektirir SELECT
, UPDATE
, DROP
, DELETE
bu bir sorgu kırmaya SQL yorumların kullanımı ile atlatılabilir nasıl yanı vs.) ve malign kullanıcının ne yapmak istediğini enjekte edin.
Veritabanı programcıları için teknik test geliştirme konusunda bir elim vardı. Sorular oldukça temel olarak düşündüğüm şeydi: belirli bir tablo yapısı için CREATE TABLE ifadelerini yazın; bazı basit sorgular yapın; vb.
Kendilerini SQL'de uzman olarak adlandıran çoğu iş başvurusu testi attı. Birincisi, yıllardır SQL geliştiricisi olmasına rağmen, GUI bunu kendisi için yaptığı için hiçbir zaman CREATE TABLE ifadesi yazmadığını söyledi.
Diğer teknik testlerle benzer deneyimler yaşadık. Windows destek personeli için, görevler "etki alanı kullanıcısı oluşturma", "yazıcı ekleme", "dosyadaki izinleri değiştirme" işlevine benzer. Çoğu insan bu görevleri, özellikle baskı altında yapamaz. Basit şeyleri bile yapabiliyorsanız, muhtemelen oldukça yetkin olduğunuzu anlıyoruz.
Daha açık sorular sormayı tercih ediyorsanız: DATE, DATETIME ... veri türleri hakkında genel sorular sorun. Farklı satıcı uygulamaları / ürünleri arasındaki farkları sorun. Komut satırı araçları, toplu yükleyiciler, güzel yazıcılar hakkında konuşun ... belki röportaj sırasında yeni bir numara öğrenebilirsiniz.