it-swarm-fr.com

Quelles sont les questions pour tester une connaissance des programmeurs de SQL?

Quelles sont les questions pour tester une connaissance des programmeurs de SQL? Quelle est la réponse à la question? Et qu'est-ce que l'absence de réponse correcte signifie en termes de temps de comprendre le (s) concept (s) conceptuel)?

Googled : SQL Challenge

14
blunders

Cela dépend de la difficulté que vous voulez que ce soit. En outre, je me méfie un peu de vous donner la réponse car la plupart des problèmes SQL ont de multiples façons acceptables de faire des choses et il existe également des moyens de résoudre les problèmes SQL sur des moyens bâclés qui entraîneront d'autres problèmes. La personne "classement" la réponse doit définitivement pouvoir le résoudre par eux-mêmes.

Cela dit, voici quelques-uns je suis arrivé au sommet de ma tête.

niveau extrêmement facile :
Étant donné une table d'employés avec les colonnes Empid, le prénom, le nom de famille, l'embauche et la résiliation:
[.____] Ecrire une requête pour renvoyer tous les employés qui travaillent toujours pour la société avec les noms de famille commençant par "Smith" triés par nom de famille, puis prénom.

niveau facile
[.____] Compte tenu de la table des employés ci-dessus, plus une nouvelle table "AnnualReviews" avec les colonnes Empid et ReviewDate:
[.____] Ecrire une requête pour renvoyer tous les employés qui n'ont jamais eu de commentaire triés par embauche.

niveau moyen Compte tenu de la table des employés ci-dessus, écrivez une requête pour calculer la différence (en jours) entre l'employé le plus et le moins titulaire travaillant toujours pour la société?

niveau dur
[.____] Compte tenu de la table des employés ci-dessus, écrivez une requête pour calculer la période la plus longue (en jours) que la société est devenue sans embaucher ni tirer à qui que ce soit.

niveau plus difficile
Encore une fois en utilisant les mêmes tables, écrivez une requête qui retourne chaque employé et que chaque ligne/employé incluait le plus grand nombre d'employés qui travaillaient pour la société à tout moment au cours de leur mandat et la première date à laquelle le maximum a été atteint. Points supplémentaires pour ne pas utiliser de curseurs.

20
JohnFx

Je ne suis généralement pas assis sur des entretiens pour des spécialistes de données, de sorte que mes questions ont tendance à être difficiles. Mais une chose que j'aurais besoin de quiconque sera en train d'écrire SQL est la connaissance des jointures et quand utiliser une jointure gauche contre une jointure intérieure. Quiconque ne comprend pas cela n'a pas d'activité qui a interrogé une base de données de manière ou forme.

Une autre chose que je ferais est de vous assurer qu'ils comprennent comment faire un groupe et utiliser des fonctions agrégées.

Et la différend entre Union et Union a tous éliminé beaucoup de candidats pauvres à mon travail.

4
HLGEM

Je demanderais "Pourquoi et comment devriez-vous assainir les valeurs d'entrée données de l'utilisateur qui sera utilisée dans une requête SQL?"

Ceci est nécessaire pour prévenir les injections SQL et pouvoir répondre à cela nécessite de bonnes connaissances sur la syntaxe SQL et les commandes (telles que SELECT, UPDATE, DROP, DELETE, etc.), ainsi que la façon dont ces choses peuvent être contournées par l'utilisation de commentaires SQL pour briser une requête et injecter ce que l'utilisateur maligne voudra peut-être faire.

2
gablin

Si vous préférez poser des questions plus ouvertes: posez des questions générales sur la date, DateTime ... Types de données. Demandez des différences entre différentes implémentations/produits du fournisseur. Parlez des outils de commande de commande, des chargeuses en vrac, de jolies imprimantes ... Vous pouvez peut-être apprendre un nouveau tour lors de l'entretien.

0
knb