27th Feb 2025 17 minutes de lecture Questions d'entretien Meta SQL Jill Thornhill questions d'entretien sql emplois et carrières Table des matières Le processus de recrutement de Meta Premier appel avec un recruteur Premier entretien Entretien de codage Conseils et astuces Entretien de conception Entretien comportemental Quelles sont les fonctions chez Meta qui requièrent des connaissances en SQL ? Préparation de votre entretien Meta SQL Questions d'entretien Meta SQL : Théorie Question 1 : Les jointures en SQL Question 2 : WHERE vs. HAVING Question 3 : Contraintes Question 4 : Transactions Question 5 : Procédures stockées et fonctions Question 6 : Injection SQL Questions d'entretien sur Meta SQL : Pratique Question 1 : Statistiques d'utilisation Réflexion approfondie Exemple de réponse Question 2 : Identifier les hôtes d'événements actifs Réflexion approfondie Exemple de réponse Question 3 : Trouver les meilleurs utilisateurs Réflexion approfondie Exemple de réponse Question 4 : Analyse de l'activité des utilisateurs d'une année sur l'autre Réflexion approfondie Exemple de réponse Trouver des ressources pour votre préparation à l'entretien Meta SQL Les entretiens SQL chez Meta sont difficiles et vous devez affiner vos compétences si vous voulez décrocher un emploi prestigieux et bien rémunéré. Lisez ce qui suit pour découvrir le type de questions d'entretien SQL qui peuvent vous être posées lors d'un entretien Meta, ainsi que la meilleure façon de vous préparer. Meta, comment vous préparer au mieux et comment vous démarquer. Meta est une entreprise très axée sur les données, qui utilise une grande variété de technologies de bases de données. MySQL est leur principale base de données, mais ils disposent également de bases de données spécialisées pour diverses applications. Quel que soit le poste pour lequel vous postulez, il y a de fortes chances que vous ayez à interagir avec des bases de données. Meta est plus susceptible que la plupart des entreprises d'inclure des questions relatives à SQL dans les entretiens. Si vous envisagez de postuler à un emploi chez Meta, il est utile de consulter des exemples de questions d'entretien SQL de Meta et de vous entraîner autant que possible. Si vous n'êtes pas encore familiarisé avec SQL, vous pouvez vous inscrire à notre parcours d'apprentissage SQL de A à Z. Cette série de cours vous emmène du niveau débutant jusqu'aux sujets SQL avancés. Vous acquerrez une expérience pratique en travaillant sur plus de 700 exercices guidés et vous vous familiariserez avec les concepts des bases de données relationnelles. Si vous avez une certaine expérience du langage SQL mais que vous n'avez pas utilisé beaucoup de ses fonctions avancées, notre coursSQL avancé vous conviendra peut-être mieux. Dans tous nos cours, vous accéderez à une base de données par l'intermédiaire de votre navigateur Internet ; il n'est pas nécessaire de télécharger ou d'installer quoi que ce soit. De plus, de l'aide est disponible à chaque étape. Supposons que vous connaissiez un peu le langage SQL et que vous souhaitiez travailler pour Meta. À quoi devez-vous vous attendre lors d'un entretien d'embauche pour Meta SQL ? Le processus de recrutement de Meta Les recruteurs de Meta évalueront vos connaissances techniques, votre capacité à résoudre des problèmes et à travailler en équipe. L'ensemble du processus peut durer deux à trois mois et comporter plusieurs séries d'entretiens. La première étape consiste à créer un profil de carrière sur Meta. Si vous ne l'avez pas encore fait, vous pouvez visiter la page Créer un profil de carrière pour commencer. À partir de votre profil, vous pouvez consulter les offres d'emploi recommandées et créer des alertes d'emploi. Vous y trouverez également une foule de ressources utiles, notamment des guides de préparation aux entretiens et des exercices d'entraînement. Une fois que vous aurez postulé à un emploi, vous recevrez, via votre profil, des documents de préparation spécifiques au poste. Examinons les étapes de l'entretien que vous passerez une fois que vous aurez soumis votre candidature. Premier appel avec un recruteur À quoi vous attendre ? On vous posera des questions sur votre formation, votre expérience et vos objectifs. On vous demandera également pourquoi vous souhaitez travailler chez Meta. Le recruteur vous en dira plus sur le rôle et l'équipe avec laquelle vous travaillerez. Comment vous préparer ? Dès que vous aurez posé votre candidature, prenez le temps de vous préparer : Vous familiariser avec la description du poste. Passez en revue votre expérience pertinente et réfléchissez à la manière dont vous pouvez la mettre en valeur auprès du recruteur. Dresser une liste de questions à poser au recruteur. Premier entretien À quoi s'attendre : Cet entretien peut se dérouler par téléphone ou (plus probablement) par le biais d'une plateforme de rencontre en ligne. Vous rencontrerez certains membres de l'équipe Meta et en apprendrez davantage sur le poste et les personnes avec lesquelles vous travaillerez. Comment vous préparer ? Votre recruteur vous aidera à préparer cet entretien et vous fournira tous les documents dont vous pourriez avoir besoin. Entretien de codage À quoi s'attendre : Si vous avez postulé à des postes d'analyste de données ou d'analyste marketing, le langage de codage peut être SQL. L'entretien dure 45 minutes, dont 35 sont réservées à la résolution de deux questions de codage de difficulté moyenne à élevée. Cet entretien peut se dérouler en personne ou en ligne. Comment se préparer ? Votre recruteur vous fournira des documents qui vous aideront à préparer l'entretien. La meilleure façon de se préparer à cet entretien est de s'entraîner, de s'entraîner et encore de s'entraîner ! Vous devrez également vous assurer que vous connaissez bien le langage de programmation cible. Ce que l'examinateur recherche : Vous serez évalué sur vos : votre expertise technique Votre capacité à résoudre des problèmes. Votre style de communication. votre capacité à vérifier votre solution à l'aide de données de test pertinentes. Conseils et astuces L'examinateur évalue vos compétences en matière de communication : Posez des questions avant de commencer, afin de vous assurer que vous avez bien compris le problème. Vous êtes prêt à expliquer à l'examinateur pourquoi vous avez choisi telle ou telle approche du problème. Écoutez attentivement les commentaires de votre interlocuteur : ils peuvent vous indiquer que vous n'avez pas choisi la bonne approche. Demandez à l'examinateur si vous n'êtes pas sûr de pouvoir utiliser une fonctionnalité spécifique (par exemple, des fonctions non standard) dans votre solution. En outre, n'oubliez pas que : L'examinateur essaie également d'évaluer la manière dont vous abordez les problèmes, alors réfléchissez à voix haute pendant que vous travaillez. Soyez conscient des problèmes de performance - par exemple, votre solution risque-t-elle d'être lente ou d'utiliser trop d'espace dans les tables temporaires ? Vous ne saisirez pas votre solution dans une base de données, vous n'aurez donc pas d'aide pour la syntaxe et vous ne pourrez pas faire d'essais. Si l'entretien a lieu en personne, vous écrirez votre solution sur un tableau blanc ; sinon, vous travaillerez dans un simple éditeur de texte. Une syntaxe parfaite est moins importante que la démonstration de votre capacité à résoudre des problèmes complexes. Si vous voyez plus d'une solution au problème, demandez à l'examinateur s'il est possible de choisir celle que vous préférez. Si vous avez déjà répondu à la question, dites-le. L'examinateur veut évaluer la manière dont vous résolvez un nouveau problème ; il sera évident pour lui que vous connaissez déjà la réponse. Enfin, n'oubliez pas de passer en revue l'échantillon de données que vous utiliserez pour tester votre solution. Entretien de conception Cet entretien peut ne pas s'appliquer à certains postes - par exemple, les analystes de données peuvent avoir un entretien portant sur leurs connaissances statistiques. Mais lors de cet entretien, il peut vous être demandé de créer une conception de haut niveau pour une application typique du monde réel. Il se peut que vous deviez démontrer votre compréhension des concepts de SGBDR, alors assurez-vous d'être à la hauteur dans ce domaine. Entretien comportemental Cet entretien permet d'évaluer si vous vous intégrez bien dans l'équipe. Quelles sont les fonctions chez Meta qui requièrent des connaissances en SQL ? La plupart des fonctions chez Meta impliquent un certain nombre d'interactions avec les bases de données. Voici quelques-unes des fonctions pour lesquelles vous pourriez être confronté à des questions d'entretien portant sur le langage SQL : Scientifique de données Analyste de données Ingénieur logiciel Analyste produit Analyste commercial Ingénieur en apprentissage automatique Analyste marketing Administrateur de base de données Responsable de programme technique Analyste de croissance Préparation de votre entretien Meta SQL Avant de postuler à un emploi chez Meta, vous devez vous familiariser avec leurs produits - par exemple Facebook, WhatsApp, Messenger et Instagram. Essayez de visualiser ce qui se passe en coulisses et quelles données sous-jacentes ces produits utilisent. Renseignez-vous sur la culture et les objectifs de l'entreprise et téléchargez le guide de préparation à l'entretien de Meta. Vous pouvez également regarder la vidéo de l'entretien de codage de Meta pour avoir une meilleure idée de ce qui vous attend. Vous aurez besoin de beaucoup d'entraînement pour répondre au type de questions qui pourraient vous être posées lors d'un entretien avec Meta. Essayez de travailler avec un simple éditeur de texte pour saisir vos réponses et réfléchissez à voix haute lorsque vous résolvez des problèmes. Cela vous aidera à vous habituer à cette partie de l'entretien technique. Avant de commencer à vous entraîner, vous pouvez passer notre évaluation des compétences SQL pour avoir une meilleure idée des domaines dans lesquels vous devez vous améliorer. Nous avons également plusieurs antisèches gratuites et téléchargeables que vous pouvez utiliser pour vous aider à réviser vos connaissances : Fiche d'aide à l'entretien SQL Feuille de contrôle sur les jointures SQL Fonctions de fenêtrage Feuille de contrôle Questions d'entretien Meta SQL : Théorie Voyons maintenant quelques questions d'entraînement qui vous donneront une idée de ce qui vous attend lors d'un entretien Meta SQL. Elles sont divisées en deux types : les questions théoriques et les questions pratiques. Les questions théoriques peuvent vous être posées au cours de l'un des entretiens oraux. Les sujets peuvent également être abordés lorsque vous discutez de vos solutions lors de l'entretien de conception. Les questions pratiques sont similaires aux problèmes que l'on peut vous demander de résoudre lors de l'entretien de codage. Question 1 : Les jointures en SQL Quelle est la différence entre un INNER JOIN et un OUTER JOIN en SQL ? Une INNER JOIN ne renvoie que les lignes qui correspondent dans les deux tables. Une OUTER JOIN inclut les lignes non appariées dans le résultat selon les règles suivantes : LEFT JOIN renvoie toutes les lignes de la table de gauche avec la ligne correspondante de la table de droite ou des zéros. RIGHT JOIN renvoie toutes les lignes de la table de droite ainsi que la ligne correspondante de la table de gauche ou des zéros. FULL JOIN renvoie toutes les lignes des deux tables. Question 2 : WHERE vs. HAVING Quelle est la différence entre l'utilisation d'un WHERE et d'un HAVING ?Quelle est la différence entre l'utilisation de la clause WHERE et de la clause HAVING ? La clause WHERE filtre des lignes individuelles pour certaines conditions, alors que la clause HAVING filtre des groupes de lignes par des conditions globales. Par conséquent, HAVING ne peut être utilisé qu'avec la clause GROUP BY. Question 3 : Contraintes Décrivez trois types de contraintes contraintes SQL. Les contraintes imposent des règles qui s'appliquent lorsque des lignes sont insérées, mises à jour ou supprimées dans la base de données ; elles sont définies lors de la création d'une table. Il existe plusieurs types de contraintes, vous pouvez donc choisir l'un des trois types suivants : NOT NULL spécifie qu'une colonne ne peut pas contenir de valeur nulle. UNIQUE spécifie que les valeurs de cette colonne ne peuvent pas être dupliquées dans la table. PRIMARY KEY spécifie que cette colonne sera utilisée comme clé primaire de la table, c'est-à-dire que les valeurs doivent être uniques et non nulles afin qu'elles puissent identifier chaque ligne. FOREIGN KEY spécifie que cette colonne sera liée à la clé primaire d'une autre table. Cela permet d'assurer l'intégrité référentielle. CHECK définit une condition pour n'autoriser que des valeurs spécifiques dans cette colonne. DEFAULT spécifie une valeur qui sera utilisée si aucune valeur n'est spécifiée lorsque des données sont insérées dans cette colonne. AUTO_INCREMENT spécifie que la colonne sera automatiquement définie sur le numéro suivant dans la séquence lors d'une insertion. Question 4 : Transactions Expliquez ce que l'on entend par transaction en SQL. Que se passe-t-il si le serveur tombe en panne au milieu d'une transaction ? Une transaction est un groupe de mises à jour qui doit être exécuté en tant qu'unité : soit toutes les mises à jour doivent être exécutées, soit aucune. Un exemple pourrait être l'achat d'un client, qui met à jour la table customer la table sales tableau, le tableau stock et le livre de caisse. Tous ces éléments doivent être mis à jour avec succès pour que la transaction aboutisse. Une fois qu'elles sont toutes mises à jour, vous pouvez valider la transaction et la base de données sera mise à jour de manière permanente. Vous pouvez également annuler la transaction, auquel cas aucune modification ne sera apportée à la base de données. Si le système tombe en panne, aucune des mises à jour n'est permanente et la base de données ne reflète pas la transaction. Question 5 : Procédures stockées et fonctions Quelle est la différence entre une procédure stockée et une fonction en SQL ? Donnez un exemple d'utilisation de chacune d'entre elles. Une procédure stockée est un ensemble d'instructions SQL prédéfinies qui exécutent une tâche. Les procédures stockées peuvent éventuellement renvoyer une ou plusieurs valeurs et peuvent prendre des paramètres. Elles sont invoquées à l'aide de l'instruction CALL. Il peut s'agir, par exemple, d'extraire des données pour un rapport ou d'exécuter des procédures d'apurement de fin d'année. Les fonctions sont également un ensemble d'instructions SQL prédéfinies, mais elles renvoient toujours un seul objet. Cet objet peut être une valeur ou une table. Les fonctions prennent éventuellement des paramètres et peuvent être utilisées dans les instructions SQL de la même manière que les colonnes de la base de données. Les exemples incluent l'exécution de calculs pour intégrer des règles commerciales et l'exécution d'un formatage personnalisé. Question 6 : Injection SQL Qu'est-ce que l'injection SQL (SQLi) ?Qu'est-ce que l'injection SQL (SQLi) ? Décrivez deux façons dont un programmeur peut se prémunir contre une attaque SQLi. L'injection SQL est un moyen d'injecter un code malveillant dans une instruction SQL, généralement pour mettre à jour frauduleusement la base de données. Imaginez un programme qui construit une instruction SQL sous la forme d'une chaîne de texte. Lorsque les clients font des demandes en ligne, ils fournissent des détails qui seront utilisés dans le code SQL. À titre d'exemple très simple, le programme peut construire une instruction SQL à partir du texte SELECT * FROM customer WHERE account_no = suffixé par le numéro de compte saisi par le client. Si le client saisit le numéro de compte sous la forme 12404; UPDATE customer SET balance_owing = 0 WHERE account_no = 12404, l'instruction de mise à jour malveillante est injectée dans la base de données. Un programmeur peut se prémunir contre ce problème de deux manières : Effectuer des contrôles sur l'instruction SQL résultante avant de l'exécuter. Utiliser des instructions préparées, de sorte que le numéro de compte soit utilisé comme paramètre plutôt que pour construire l'instruction. Questions d'entretien sur Meta SQL : Pratique Pour les besoins des questions d'entretien SQL pratiques, supposons une base de données contenant les tables et colonnes suivantes. Table nameUsersPostsEventevent_activityinteractions containsuser_idpost_idevent_idevent_act_idinter_id thenameuser_idHostevent_idaction rows:locationdatetime_posteddatetime_eventuser_iduser_id date_joineddetailsDetailsdatetime_acttarget_type response_typetarget_id Question 1 : Statistiques d'utilisation Calculez le pourcentage d'utilisateurs qui n'ont pas publié de messages cette année. Réflexion approfondie Vous pouvez aborder cette question de différentes manières. La plus simple est probablement d'utiliser une expression de table commune (CTE) pour compter le nombre d'utilisateurs distincts dans la table où la partie "année" de la date est utilisée. posts dont la partie année de la date est la même que la partie année de la date actuelle. Vous pouvez ensuite écrire une requête simple pour compter le nombre d'utilisateurs dans la table, la joindre à l'expression CTE. users joindre cette requête à la table CTE et effectuer un calcul pour obtenir le pourcentage. Exemple de réponse WITH posting_users AS ( SELECT COUNT(DISTINCT user_id) AS posting_users FROM posts WHERE year(datetime_posted) = year(current_date) ) SELECT 100 - (posting_users / COUNT(*) * 100) AS percent_inactive FROM users JOIN posting_users; Question 2 : Identifier les hôtes d'événements actifs Listez l'utilisateur ID de l'utilisateur, le nom de l'utilisateur, le nombre d'événements et le nombre total de participants aux événements pour tous les utilisateurs qui ont programmé plus de 10 événements cette année. Informations complémentaires : Les acceptations sont des lignes de la table qui ont le type de réponse "En cours". event_activity qui ont le type de réponse 'Going'. L'hôte dans le tableau events peut être associé à l'ID de l'utilisateur dans le tableau users pour trouver l'utilisateur qui a programmé l'événement. Réflexion approfondie Vous devrez joindre la table event la table event_activity et la table users pour obtenir toutes les informations nécessaires. La table event_activity doit utiliser une adresse LEFT JOIN, puisqu'il ne vous a pas été demandé d'exclure les événements qui n'ont pas de participants. Cette jointure doit inclure la condition selon laquelle la réponse doit être "Going". En regroupant les hôtes, vous pouvez inclure un décompte distinct de l'ID de l'événement pour obtenir le nombre d'événements et un décompte de user_id dans la table event_activity pour obtenir le nombre de participants. Vous devrez inclure une clause HAVING pour filtrer par le nombre d'événements. Exemple de réponse SELECT host, name, COUNT(DISTINCT e.event_id), COUNT(a.user_id) AS attendees FROM event e JOIN users u ON u.user_id = host LEFT JOIN event_activity a ON e.event_id = a.event_id AND response_type = 'Going' GROUP BY host, name HAVING COUNT(DISTINCT e.event_id) > 10 ORDER BY name Question 3 : Trouver les meilleurs utilisateurs Trouvez les 10 meilleurs utilisateurs (classés en fonction du nombre total de likes sur leurs posts) et indiquez leur classement, leur ID utilisateur, leur nom et le nombre total de likes. Informations complémentaires : Les utilisateurs influents sont définis comme des utilisateurs qui ont publié plus de 500 messages cette année et qui ont une moyenne de plus de 150 likes par message. Les mentions "J'aime" sur les messages sont enregistrées dans le tableau interactions avec action contenant 'Like' et target_type contenant 'Post'. L'identifiant de la cible peut être utilisé pour joindre la table posts sur l'ID du message. Réflexion approfondie Vous devez d'abord trouver le nombre de messages et le nombre de mentions J'aime pour chaque utilisateur pour cette année. Vous pouvez le faire avec un CTE. Dans la requête principale, vous pouvez joindre le CTE à la table des utilisateurs pour récupérer le nom de l'utilisateur. Filtrez l'ETC pour extraire uniquement les utilisateurs expérimentés. Vous pouvez utiliser la fonction de fenêtre RANK() pour classer les utilisateurs par nombre de likes et utiliser la clause LIMIT pour limiter les résultats aux 10 premiers utilisateurs. Exemple de réponse WITH user_posts AS ( SELECT p.user_id, COUNT(DISTINCT post_id) AS num_posts, COUNT(inter_id) AS likes FROM posts p LEFT JOIN interactions ON post_id = target_id AND target_type = 'POST' AND action = 'Like' WHERE year(datetime_posted) = year(current_date) GROUP BY user_id ) SELECT RANK() OVER (ORDER BY likes DESC) AS position, u.user_id, name, likes FROM users u JOIN user_posts p ON u.user_id = p.user_id WHERE num_posts > 500 AND likes/num_posts > 150 LIMIT 10; Question 4 : Analyse de l'activité des utilisateurs d'une année sur l'autre Pour les 5 dernières années, comparez le nombre d'utilisateurs actifs d'une année sur l'autre. Indiquez l'année, le nombre total d'utilisateurs actifs et l'évolution par rapport à l'année précédente. Informations complémentaires : Les utilisateurs actifs ont publié au moins un message au cours de l'année. Réflexion approfondie Vous devrez extraire un décompte du nombre d'utilisateurs par année à partir du tableau posts du tableau. Pour plus de lisibilité, vous pouvez le faire sous la forme d'un CTE. Vous devrez ensuite utiliser la fonction de fenêtre LAG() pour comparer les résultats d'une année sur l'autre. Exemple de réponse WITH activity AS ( SELECT year(datetime_posted) AS year, COUNT(distinct user_id) AS active_users FROM posts WHERE year(current_date) - year(datetime_posted) < 6 GROUP BY year(datetime_posted) ) SELECT year, active_users, (active_users - LAG(active_users) OVER (ORDER BY year) ) * 100/active_users AS percentage_change FROM activity; Trouver des ressources pour votre préparation à l'entretien Meta SQL La façon la plus importante de se préparer est de résoudre un large éventail de problèmes pratiques. Vous devriez vous efforcer de résoudre deux questions de difficulté moyenne à élevée en 35 minutes. N'oubliez pas de réfléchir à voix haute lorsque vous travaillez sur votre solution. Utilisez un éditeur de texte ou un stylo et du papier pour élaborer votre solution afin de simuler la situation de l'entretien. Bien entendu, vous pouvez ensuite tester vos solutions sur une base de données réelle pour vous assurer qu'elles fonctionnent. Lors de l'entretien, vous utiliserez probablement coderpad.io, il vaut donc la peine de l'essayer à l'avance. Prenez le temps d'explorer le hub de préparation dans votre profil de carrière Meta. Vous y trouverez de nombreux documents utiles, y compris des puzzles de codage que vous pouvez utiliser pour vous entraîner. LearnSQL.fr Le site Web de la Commission européenne propose plusieurs ressources utiles pour s'entraîner et passer un entretien : Questions d'entretien avancées Questions d'entretien difficiles Questions d'entretien SQL pour les analystes de données La ressource d'entraînement la plus précieuse est sans doute la piste d'entraînement avancée de LearnSQL.fr, qui vous permet de travailler sur des centaines d'exemples réalistes. Vous pouvez essayer vos solutions sur une base de données réelle et obtenir des conseils et des astuces lorsque vous êtes bloqué. Commencez dès aujourd'hui et réussissez votre entretien ! Tags: questions d'entretien sql emplois et carrières