SQL pour Data analyst

    Entretien d’embauche SQL : 50 Questions à préparer en 2020

    La préparation pour un entretien d’embauche est très importante car elle vous permettra de renvoyer une image professionnelle et compétente au recruteur et c’est ce que les entreprises cherchent réellement: des professionnels compétents. Afin de vous aider à réussir votre entretien, nous vous présentons dans cet article 50 questions  à préparer pour SQL.

    1. Que signifie DBMS?

    DBMS: Database Management System ou Système de gestion de Base de données.

    C’est un programme qui contrôle la création, la maintenance et l’utilisation d’une base de données.

    DBMS peut etre considéré comme un fichier de gestion, qui gère les données dans une Base de données plutôt que l’enregistrer dans les systèmes de fichiers.

    2. Que signifie RDBMS?

    RDBMS :Relational Database Management System ou   Système de gestion de Base de données Relationnelle

    RDBMS stocke les données dans une collection de tables, qui sont liées par des valeurs communes dans les colonnes de tables. Il fournit également des opérateurs relationnels pour manipuler les données stockés dans une table.

    Exemple de RDBMS est le serveur SQL.

    database SQL

    3. Que signifie SQL?

    SQL est l’abréviation de Structured Query Language : Langage de requête structuré.

    SQL est utilsé pour communiquer avec une Base de données. C’est un langage standard uyilisé pour effectuer des tâches telles que la récupération, la mise à jour, l’insertion et la suppression de données d’une base de données.

    4.Qu’est ce qu’une base de données?

    La base de données est une forme de données organisée pour faciliter l’accès, le stockage, l’extraction et la gestion des données. C’est une forme de données structurée auxquelles on peut accéder en différentes manières.

    5. Quels sont les deux mode d’authentification sur le serveur SQL?

    les deux mode d’authentification sur le serveur SQL sont:

    • Windows Mode
    • Mixed Mode

    Les modes peuvent être changés dans le menu de configuration du serveur SQL.

    6. Qu’est ce qu’un SQl Profiler?

    Sql profiler est un outils qui permet au systèmes d’administration de surveiller les événements dans le serveur SQL. il est utilisé capturer et enregistrer des données sur chaque événement d’un fichier ou d’une table, pour l’analyse.

    7. Quelle est la différence entre les tables temporaires locales et les tables temporaires globales?

    Les tables temporaires locales sont visibles en connexion et supprimés en déconnexion. En gros, Elles ne sont pas enregistrés en permanence dans le serveur.

    Les tables temporaires globales sont visibles pour tous les utilisateurs, et supprimées la connexion qui les a créé est fermée.

    8. Quels sont les tables et les champs?

    La table est un ensemble de données organisées sur des lignes et des colonnes. Les colonnes peuvent etre verticales et les lignes horizontales.  Une table a un nombre de colonnes appelés champs(fields) et lignes appelés enregistrements.

    Exemple:

    Table: Employé,

    Les champs: ID, Nom_employe, Date_naissance, fonction_employé

    les Enregistrements: 2134, David, 12/06/1988

    9. Que signifie CHECK constraint ( Contrainte de vérification )?

    La contrainte de verification est appliquée à une colonne d’une table pour limiter les valeurs qui peuvent etre dans cette colonne. Check contraint fait respecter l’intégrité.

    10. Le serveur SQL pourrait etre lié à d’autres serveurs?

    Le serveur SQL  peut etre connecté à toutes les bases de données qui ont le fournisseur OLE-DB de lien. Example:  Oracle a le fournisseur OLE-DB qui un lien de connexion avec l’ensemble des serveurs SQL.

    11. Qu’est ce qu’une clé primaire(primary key)?

    Une clé primaire permet d’identifier chaque ligne ou chaque enregistrement d’une table de base de données. La valeur de cette clé doit être toujours non nulle et chaque enregistrement doit avoir une clé primaire unique.

    La clé primaire est un index, chacune des tables ne peut contenir qu’une seule clé primaire, composée d’un ou plusieurs champs ou colonnes.

    12. Qu’est ce qu’une clé unique?

    La clé unique permet d’identifier un enregistrement unique dans une table et une table peut avoir plusieurs clés uniques. Les contraintes de clé uniques ne peuvent accepter qu’une seule valeur NULL pour une colonne.

    13. Quelle est la différence entre la clé primaire et la clé unique?

    • Lorsqu’un attribut est déclaré comme clé primaire, il n’accepte pas les valeurs NULL. Par contre, lorsqu’un attribut est déclaré Unique, il peut accepter une valeur NULL.
    • Une table ne peut avoir qu’une seule clé primaire alors qu’il peut y avoir plusieurs clés uniques.
    • Un index cluster créé automatiquement lorsqu’une clé primaire est définie. En revanche, la clé Unique génère l’index non-cluster.

    14. Qu’est ce qu’une clé Etrangère (foreign key)?

    La clé étrangère représente un champ (ou des champs) qui pointe vers la clé primaire d’une autre table. L’objectif de cette clé est d’assurer l’intégrité référentielle des données.

    15. Qu’est ce qu’une jointure?

    Les jointures permettent d’associer plusieurs tables dans une même requête. Cela permet d’obtenir des résultats qui combinent les données de plusieurs tables d’une manière efficace.

    16. Citez les différents types de jointures

    • INNER JOIN : jointure interne pour retourner les enregistrements quand la condition est vrai dans les 2 tables. C’est l’une des jointures les plus communes.
    • CROSS JOIN : jointure croisée permettant de faire le produit cartésien de 2 tables. En d’autres mots, permet de joindre chaque lignes d’une table avec chaque lignes d’une seconde table. Attention, le nombre de résultats est en général très élevé.
    • LEFT JOIN (ou LEFT OUTER JOIN) : jointure externe pour retourner tous les enregistrements de la table de gauche (LEFT = gauche) même si la condition n’est pas vérifié dans l’autre table.
    • RIGHT JOIN (ou RIGHT OUTER JOIN) : jointure externe pour retourner tous les enregistrements de la table de droite (RIGHT = droite) même si la condition n’est pas vérifié dans l’autre table.
    • FULL JOIN (ou FULL OUTER JOIN) : jointure externe pour retourner les résultats quand la condition est vrai dans au moins une des 2 tables.
    • SELF JOIN : permet d’effectuer une jointure d’une table avec elle-même comme si c’était une autre table.
    • NATURAL JOIN : jointure naturelle entre 2 tables s’il y a au moins une colonne qui porte le même nom entre les 2 tables SQL
    • UNION JOIN : jointure d’union

    17. Que signifie la normalisation dans les bases de données?

    La normalisation est le processus de minimisation de redondance et de dépendance tout en organisant les champs et les tables d’une base de données.

    18. Que signifie la DeNormalisation?

    DeNormalisation est une technique utilisée pour accéder aux données  à partir de formes normales de base de données. Il s’agit également d’introduire la redondance dans une table en intégrant les données d’autres tables.

    19. Quelles sont les différentes normalisation?

    • 1NF: Une table doit avoir une clé primaire. 1NF devrait éliminer toutes les colonnes en double d’une table.
    • 2NF:
    • 3NF
    • 4NF

    20. Qu’est ce qu’une vue?

    Une vue est une table virtuelle qui consiste en un sous-ensemble de données contenues dans un table. Les vues peuvent avoir la combinaison des données de plusieurs tables s’il existe des liens entre les tables.

    21. Qu’est ce qu’un index?

    C’est la méthode de réglage de performance permettant de récupérer plus rapidement les enregistrements d’une table. Un index crée une entrée pour chaque valeur pour récupérer les données rapidement.

    22. Quels sont les différents types d’index?

    • Unique index
    • Clustered index
    • NonClustered Index

    23. Quelles sont les relations dans les bases de données?

    Les relations de bases de données sont les liens entre les tables de la bases de données. Il existe différents types de relations:

    • 1 à 1
    • 1 à Plusieurs
    • Plusieurs à 1
    • Self-Referencing Relationship ou Relation d’auto-référence.

    24. Qu’est ce qu’une requête?

    Une requête est un code écrit pour récupérer une information stocké dans une base de données. Tout simplement, une requête est une question posé à la base de données.

    25. Qu’est-ce qu’une sous-requête(Sub query) et ses propriétés ?

    Une sous-requête est une requête dans une autre requête.

    Une sous-requête est une requête qui peut être imbriquée dans une requête principale comme Select, Update, Insert ou Delete. La requête externe est appelée requête principale, et la requête interne est appelée sous-requête.

    La sous-requête est toujours exécutée en premier, et son résultat est transmis à la requête principale pour l’utiliser.

    26. Quels sont les propriétés de la sous-requête?

    Une sous requête:

    •  ne doit pas contenir la clause ORDER BY
    •  doit être placé sur la droite des opérateurs de comparaison
    • doit être écrite entre deux parenthèses car elle doit s’exécuter en premier

    Plusieurs une sous requête peuvent être utilisées dans la même requête

    27. Qu’est ce qu’un agent de serveur SQL (server agent)?

    L’agent de serveur SQL joue un rôle principal dans les tâches quotidiennes de l’administrateur de serveur SQL(DBA). Le but de l’agent serveur est de planifier  l’exécution des tâches à une date et l’heure précises.

    28. Qu’est ce qu’un Trigger ou déclencheur ?

    les Triggers sont utilisés pour ont utilisés pour exécuter un code SQL lorsque des commandes d’insertion, de mise à jour ou de suppression sont exécutées sur une table.

    Les déclencheurs sont automatiquement exécutés lorsque les données sont modifiées. Ils peuvent être exécutés automatiquement lors des opérations d’insertion, de suppression et de mise à jour.

    29. Que signifie CDC?

    CDC est l’abréviation de Change Data Capture.

    CDC est utilisé pour capturer les données récemment modifiés. Cette fonction existe sur SQL Server 2008.

    30. Quels sont les différents types de déclencheurs?

    Les 4 types de déclencheurs sont :

    • Insert pour l’insertion
    • Delete pour la suppression
    • Update pour la mise à jour
    • Instead of  pour la modification

    31. Quelle est la difference entre DELETE et TRUNCATE?

    DELETE est utilsé pour supprimer des lignes d’enregistrement d’une table en fonction d’une condition définie dans la clause WHERE de la requête.Les fonctions Commit et Rollback peuvent être exécutées après suppression.

    TRUNCATE supprime toutes les lignes de la tables. Les fonctions Commit et Rollback ne peuvent pas être exécutées TRUNCATE.

    32. Qu’est ce qu’une contrainte ?

    La contrainte peut être utilisée pour spécifier la limite sur le type de données de la table. La contrainte peut être spécifiée lors de la création ou de la modification de l’instruction table. Voici quelques exemples de contrainte:

    • NOT NULL.
    • CHECK.
    • DEFAULT.
    • UNIQUE.
    • PRIMARY KEY.
    • FOREIGN KEY.

    33. Que signifie Data Integrity ou intégrité des données?

    L’intégrité des données définit l’exactitude et la cohérence des données stockées dans une base de données. Il peut également définir des contraintes d’intégrité à respecter dans certain cas.

    34. Que signifie Auto Increment?

    Le terme AUTO INCREMENT permet à l’utilisateur de créer un nombre unique à générer à chaque insertion de ligne d’enregistrement dans la table. Par exemple, L’ID de chaque enregistrement peut être auto incrémenté.

    AUTO INCREMENT est utilisé dans Oracle et IDENTITY dans les serveurs SQL.

    Généralement, l’attribut qui est défini en AUTO INCREMENT est utilisé comme clé primaire.

    35. Qu’est ce qu’une clause?

    Une clause SQL est utilisés pour limiter les lignes de résultat en donnant une condition à la requête. Autrement dit, La clause permet de filtrer les enregistrement.

    36. Comment sélectionner un seul enregistrement d’une table?

    Afin de selectionner un seul enregistrement ayant une condition particuliere, nous utilisons DISTINCT. Exemple :

    Select DISTINCT StudentID, StudentName from Student.

    37. Quelle est la difference entre UNION et UNION ALL?

    UNION : est utilisée pour sélectionner des informations connexes à partir de deux tables.  Elle est similaire à la commande JOIN.

    UNION ALL: similaire à la commande UNION. Par contre,  UNION ALL sélectionne tous les enregistrements et n’efface pas les doublons. Si un même enregistrement est présents dans les résultats des deux requêtes concaténées, UNION ALL retournera 2 fois ce même résultat.

    38. Comment pourrons-nous récupérer la version du serveur SQL?

    Select SERVERPROPERTY(‘productversion’)

    39. Comment pouvons-nous afficher le nombre des enregistrements d’une table?

    Select count(*) from <tablename>

    40. Comment pouvons-nous créer un login?

    CREATE LOGIN MyLogin WITH PASSWORD = ‘123’;

    41. A quoi sert l’opérateur ISNULL()?

    La fonction  ISNULL() est utilisé pour vérifier si une valeur est nulle dans le serveur SQL. Cette fonction permet également de remplacer une valeur par la valeur nulle.

    42. Quelle est l’utilisation de la clause FOR?

    La clause FOR est principalement utilisée pour les options XML et navigateur. Elle est principalement utilisée pour afficher les résultats d’une requête au format XML ou dans le navigateur.

    43. Quelle est la différence les types de données varchar et nvarchar?

    Varchar et nVarchar sont presque les meme, la seule différence est que nvarchar peut être utilisé pour stocker des caractères  d’Unicode pour plusieurs langages et prend plus d’espace de stockage dans la base de données par rapport à Varchar.

    44. Comment supprimer les lignes en doublons dans le serveur SQL?

    Les lignes en double peuvent être supprimées en utilisant la fonction CTE et ROW NUMER de SQL Server.

    45. Où sont stockés les nom d’utilisateurs et les mots de passe dans le serveur SQL?

    les nom d’utilisateurs et les mots de passe dans  sys.server_principals et sys.sql_logins. Mais, les mots de passe sont encodés.

    46. Quelle est la différence entre GETDATE et SYSDATETIME?

    Les deux ont la même fonction. GETDATE peut donner le temps jusqu’au millisecondes alors que SYSDATETIME peut donner la précision jusqu’à nanosecondes. SYSDATE TIME est plus précis que GETDATE.

    47. Comment les données peuvent être copiés dans table à une autre?

    INSERT INTO SELECT : Cette commande est utilisée pour insérer les données dans une table qui est déja crée.

    SELECT INTO : cette commande est utilisé pour créer une nouvelle table avec sa structure, et les données peuvent etre copiés d’une autre table existante.

    48. Qu’est ce que TABLESAMPLE?

    TABLESAMPLE est utilisé pour extraire un échantillon de lignes aléatoirement qui sont tous nécessaires pour l’application. l’échantillon de ligne prélevé est basé sur le pourcentage de lignes.

    49. Quelle est la commande utilisée pour afficher les messages d’erreurs?

    RAISEERROR est la commande utilisée pour lancer le le traitement des erreurs d’une session donnée. Ces messages définis par l’utilisateur sont stockés dans la table sys.messages.

    50. Quelle est la commande utilisée pour afficher les 5 premier caractère d’un string ou chaine de caractères?

    Select SUBSTRING(StudentName,1,5) as studentname from student

    Select LEFT(Studentname,5) as studentname from student

     

    A lire:

    >