Quali sono le domande per testare la conoscenza di SQL dei programmatori? [chiuso]

14

Quali sono le domande per testare la conoscenza di SQL dei programmatori? Qual è la risposta alla domanda? E cosa significherebbe la mancanza di una risposta corretta in termini di tempo in grado di comprendere i concetti relativi alla domanda?

GOOGLED: sql challenge

    
posta blunders 10.10.2010 - 22:13
fonte

5 risposte

20

Dipende da quanto difficile vuoi che sia. Inoltre, sono un po 'cauto nel darti la risposta perché molti problemi SQL hanno diversi modi accettabili per fare le cose e ci sono anche modi per risolvere problemi SQL in modi sciatti che causano altri problemi. La persona che "classifica" la risposta ha sicuramente bisogno di essere in grado di risolverla da sola.

Detto questo, eccone alcuni che mi sono venuti in mente.

Livello estremamente facile: Data una tabella dei dipendenti con le colonne EmpID, FirstName, Lastname, HireDate e TerminationDate:
Scrivi una query per restituire tutti i dipendenti che ancora lavorano per la società con cognomi che iniziano con "Smith" ordinati per cognome e nome.

Livello facile
Data la tabella Employee sopra, oltre a una nuova tabella "AnnualReviews" con le colonne EmpID e ReviewDate:
Scrivi una query per restituire tutti i dipendenti che non hanno mai avuto una revisione ordinata da HireDate.

Livello medio Data la tabella dei dipendenti di cui sopra, scrivi una query per calcolare la differenza (in giorni) tra il dipendente più o meno occupato che ancora lavora per la società?

Livello difficile Data la tabella dei dipendenti di cui sopra, scrivi una query per calcolare il periodo più lungo (in giorni) in cui l'azienda è andata senza assumere o licenziare nessuno.

Livello più difficile Sempre usando le stesse tabelle, scrivi una query che restituisce ogni dipendente e per ogni riga / dipendente include il maggior numero di dipendenti che ha lavorato per la società in qualsiasi momento durante il loro mandato e la prima data in cui è stato raggiunto il massimo. Punti extra per non usare i cursori.

    
risposta data 11.10.2010 - 04:36
fonte
4

Solitamente mi siedo sulle interviste per specialisti di dati, quindi le mie domande tendono ad essere difficili. Ma una cosa che richiederei a chiunque scriverà SQL è la conoscenza dei join e quando usare un join sinistro rispetto a un join interno. Chi non capisce che non ha attività di query su un database in alcun modo forma o forma.

Un'altra cosa che farei è assicurarsi che capiscano come eseguire un GROUP BY e utilizzare le funzioni di aggregazione.

E la differenza tra UNION e UNION ALL ha eliminato molti candidati poveri al mio lavoro.

    
risposta data 30.10.2011 - 20:06
fonte
2

Vorrei chiedere a "Perché e come si dovrebbero disinfettare i valori di input forniti dall'utente che verranno utilizzati in una query SQL?"

Questo è necessario per prevenire le iniezioni SQL e poter rispondere a questa domanda richiede una buona conoscenza della sintassi e dei comandi SQL (come SELECT , UPDATE , DROP , DELETE , ecc.), nonché in che modo questi possono essere aggirati mediante l'uso di commenti SQL per interrompere una query e iniettare ciò che l'utente maligno potrebbe desiderare di fare.

    
risposta data 10.10.2010 - 22:59
fonte
2

Ho avuto una mano nello sviluppo di un test tecnico per i programmatori di database. Le domande erano quelle che considero piuttosto semplici: scrivere le istruzioni CREATE TABLE per una data struttura di tabella; fai alcune semplici domande; ecc.

La maggior parte dei candidati al lavoro che si sono detti esperti di SQL hanno fallito il test. Uno ha affermato che, sebbene fosse stato uno sviluppatore SQL per molti anni, non aveva mai scritto un'istruzione CREATE TABLE perché la GUI lo ha fatto per lui.

Abbiamo avuto esperienze simili con altri test tecnici. Per il personale di supporto di Windows, le attività sono simili a "creare un utente di dominio", "aggiungere una stampante", "modificare le autorizzazioni su un file". La maggior parte delle persone non può svolgere questi compiti, specialmente sotto pressione. Immaginiamo che se riesci a fare anche le cose semplici, sei probabilmente abbastanza competente.

    
risposta data 31.10.2011 - 08:41
fonte
0

Se preferisci porre altre domande aperte: fai domande di carattere generale sui tipi di dati DATE, DATETIME .... Chiedi informazioni sulle differenze tra le diverse implementazioni / prodotti del fornitore. Parla di strumenti a riga di comando, caricatori di massa, stampanti graziose ... forse puoi imparare un nuovo trucco durante l'intervista.

    
risposta data 30.10.2011 - 21:49
fonte

Leggi altre domande sui tag