
La traduction de l'article a été préparée pour les étudiants du cours "MS SQL Server Developer"
Les bases de données relationnelles sont l'une des bases de données les plus couramment utilisées à ce jour, et par conséquent, des compétences en SQL pour la plupart des publications sont requises. Dans cet article, avec des questions SQL issues d'entretiens, je vais vous présenter les questions les plus fréquemment posées sur SQL (Structured Query Language - Structured Query Language). Cet article est un guide idéal pour explorer tous les concepts liés à SQL, Oracle, MS SQL Server et la base de données MySQL.
Notre article sur les questions SQL est une ressource universelle avec laquelle vous pouvez accĂ©lĂ©rer la prĂ©paration d'un entretien. Il consiste en un ensemble de 65 des questions les plus courantes qu'un enquĂȘteur peut poser lors d'un entretien. Il commence gĂ©nĂ©ralement par des questions SQL de base, puis passe Ă des questions plus complexes en fonction de la discussion et de vos rĂ©ponses. Ces questions d'entrevue SQL vous aideront Ă maximiser vos avantages Ă diffĂ©rents niveaux de comprĂ©hension.
Commençons!
Interview SQL Questions
Question 1. Quelle est la différence entre DELETE et TRUNCATE?
Non. Question 2. Quels sont les sous-ensembles de SQL?
- DDL (Data Definition Language) - vous permet d'effectuer diverses opĂ©rations avec la base de donnĂ©es, telles que CREATE (crĂ©er), ALTER (modifier) ââet DROP (supprimer des objets).
- DML (Data Manipulation Language) - vous permet d'accéder et de manipuler des données, par exemple, insérer, mettre à jour, supprimer et récupérer des données d'une base de données.
- DCL (Data Control Language) - vous permet de contrÎler l'accÚs à la base de données. Un exemple est GRANT (octroi de droits), REVOKE (révocation de droits).
Question 3. Qu'entend-on par SGBD? Quels types de SGBD existe-t-il?
La base de donnĂ©es est une collecte de donnĂ©es structurĂ©e. SystĂšme de gestion de base de donnĂ©es (SGBD) - logiciel qui interagit avec l'utilisateur, les applications et la base de donnĂ©es elle-mĂȘme pour collecter et analyser les donnĂ©es. Le SGBD permet Ă l'utilisateur d'interagir avec la base de donnĂ©es. Les donnĂ©es stockĂ©es dans la base de donnĂ©es peuvent ĂȘtre modifiĂ©es, rĂ©cupĂ©rĂ©es et supprimĂ©es. Ils peuvent ĂȘtre de tout type, tels que des chaĂźnes, des nombres, des images, etc.
Il existe deux types de SGBD:
- SystÚme de gestion de base de données relationnelle: les données sont stockées dans des relations (tables). Un exemple est MySQL.
- SystÚme de gestion de base de données non relationnelle: il n'y a pas de concept de relations, tuples et attributs. Un exemple est Mongo.
Question 4. Qu'entend-on par table et champ en SQL?
Un tableau est un ensemble de données organisé sous forme de lignes et de colonnes. Un champ est une colonne d'une table. Par exemple:
Tableau: Student_Information
Champ: Stu_Id, Stu_Name, Stu_Marks
Question 5. Que sont les jointures dans SQL?
L'opérateur JOIN est utilisé pour joindre des lignes de deux tables ou plus en fonction d'une colonne connectée entre elles. Il est utilisé pour joindre deux tables ou en obtenir des données. Il existe 4 types de connexion en SQL, à savoir:
- Jointure intérieure
- Jointure droite
- Jointure gauche
- Jointure complĂšte
Question 6. Quelle est la différence entre les types de données CHAR et VARCHAR dans SQL?
Char et Varchar servent de types de données de caractÚres, mais varchar est utilisé pour les chaßnes de caractÚres de longueur variable, tandis que Char est utilisé pour les chaßnes de longueur fixe. Par exemple, char (10) ne peut stocker que 10 caractÚres et ne peut pas stocker une chaßne de toute autre longueur, tandis que varchar (10) peut stocker une chaßne de n'importe quelle longueur jusqu'à 10, c'est-à -dire par exemple 6, 8 ou 2.
Question 7. Qu'est-ce qu'une clé primaire?

- Une clé primaire est une colonne ou un ensemble de colonnes qui identifie de maniÚre unique chaque ligne d'une table.
- Identifie de façon unique une ligne dans un tableau
- Valeurs nulles non autorisées
_Exemple: dans la table Student Stu, la clé primaire est.
Question 8. Quelles sont les contraintes?
Les contraintes sont utilisĂ©es pour indiquer les restrictions sur le type de donnĂ©es d'une table. Ils peuvent ĂȘtre spĂ©cifiĂ©s lors de la crĂ©ation ou de la modification d'une table. Exemples de restrictions:
- PAS NUL
- VĂRIFIER
- PAR DĂFAUT
- UNIQUE
- CLĂ PRIMAIRE
- CLĂ ĂTRANGĂRE
Question 9. Quelle est la différence entre SQL et MySQL?
SQL est le langage de requĂȘte structurĂ© standard basĂ© sur la langue anglaise, tandis que MySQL est un systĂšme de gestion de base de donnĂ©es. SQL est un langage de base de donnĂ©es relationnelle utilisĂ© pour accĂ©der et gĂ©rer les donnĂ©es, MySQL est un SGBD relationnel (systĂšme de gestion de base de donnĂ©es), ainsi que SQL Server, Informix, etc.
Question 10. Qu'est-ce qu'une clé unique?
- Identifie de façon unique une ligne dans un tableau.
- De nombreuses clĂ©s uniques sont autorisĂ©es dans une mĂȘme table.
- Les valeurs NULL sont autorisĂ©es ( note de traduction: dĂ©pend du SGBD; dans SQL Server, NULL ne peut ĂȘtre ajoutĂ© qu'une seule fois dans un champ avec UNIQUE KEY ).
Question 11. Qu'est-ce qu'une clé étrangÚre?
- Une clé étrangÚre maintient l'intégrité référentielle en fournissant un lien entre les données de deux tables.
- La clé étrangÚre dans la table enfant fait référence à la clé primaire dans la table parent.
- Une contrainte de clĂ© Ă©trangĂšre empĂȘche les actions qui rompent les relations entre les tables enfant et parent.
Question 12. Qu'entend-on par intégrité des données?
L'intégrité des données détermine la précision ainsi que la cohérence des données stockées dans la base de données. Il définit également des contraintes d'intégrité pour appliquer des rÚgles métier aux données lorsqu'elles sont entrées dans une application ou une base de données.
Question 13. Quelle est la différence entre les index cluster et non cluster en SQL?
- Différences entre les index cluster et non cluster en SQL:
Un index cluster est utilisé pour récupérer facilement et rapidement des données à partir d'une base de données, tandis que la lecture à partir d'un index non cluster est relativement plus lente. - Un index cluster change la façon dont les enregistrements sont stockés dans la base de données - il trie les lignes par une colonne qui est définie comme un index cluster, tandis que dans un index non cluster, il ne change pas la méthode de stockage, mais crée un objet séparé à l'intérieur du tableau qui pointe vers les lignes du tableau d'origine lors de la recherche.
- Une table ne peut avoir qu'un seul index clusterisé, alors qu'elle peut en avoir plusieurs non clusterisés.
Question 14. Ăcrivez une requĂȘte SQL pour afficher la date actuelle.
SQL possÚde une fonction GetDate () intégrée qui permet de renvoyer l'horodatage / la date actuelle.
Question 15. ĂnumĂ©rez les types de connexions
Il existe différents types de jointures qui sont utilisées pour extraire des données entre les tables. Fondamentalement, ils sont divisés en quatre types, à savoir:

Jointure interne : dans MySQL, le type le plus courant. Il est utilisé pour renvoyer toutes les lignes de plusieurs tables pour lesquelles la condition de jointure est remplie.
Jointure gauche : dans MySQL, elle est utilisée pour renvoyer toutes les lignes de la table gauche (premiÚre) et uniquement les lignes correspondantes de la table droite (seconde) pour lesquelles la condition de jointure est remplie.
Jointure droite : dans MySQL, elle est utilisée pour renvoyer toutes les lignes de la table de droite (deuxiÚme) et uniquement les lignes correspondantes de la table de gauche (premiÚre) pour lesquelles la condition de jointure est remplie.
Jointure complÚte : renvoie tous les enregistrements pour lesquels il existe une correspondance dans l'une des tables. Par conséquent, il renvoie toutes les lignes de la table de gauche et toutes les lignes de la table de droite.
Question 16. Qu'entendez-vous par dénormalisation?
La dĂ©normalisation est une technique utilisĂ©e pour convertir des formes normales supĂ©rieures aux formes normales infĂ©rieures. Il aide les dĂ©veloppeurs de bases de donnĂ©es Ă amĂ©liorer les performances de l'ensemble de l'infrastructure en introduisant une redondance dans la table. Il ajoute des donnĂ©es redondantes Ă la table, compte tenu des frĂ©quentes requĂȘtes de base de donnĂ©es qui combinent les donnĂ©es de diffĂ©rentes tables en une seule table.
Question 17. Que sont les entités et les relations?
EntitĂ©s: une personne, un lieu ou un objet dans le monde rĂ©el, dont les donnĂ©es peuvent ĂȘtre stockĂ©es dans une base de donnĂ©es. Les tables stockent des donnĂ©es qui reprĂ©sentent un type d'entitĂ©. Par exemple, une base de donnĂ©es bancaire possĂšde une table client pour stocker les informations client. La table des clients stocke ces informations sous la forme d'un ensemble d'attributs (colonnes du tableau) pour chaque client.
Relations: relations ou relations entre entitĂ©s qui sont en quelque sorte liĂ©es les unes aux autres. Par exemple, le nom d'un client est associĂ© Ă un numĂ©ro de compte client et des informations de contact, qui peuvent figurer dans le mĂȘme tableau. Il peut Ă©galement y avoir des relations entre des tables individuelles (par exemple, du client aux comptes).
Question 18. Qu'est-ce qu'un indice?
Les index se rapportent à une méthode d'optimisation des performances qui permet une récupération plus rapide des enregistrements d'une table. L'index crée une structure distincte pour le champ indexé et, par conséquent, permet une récupération plus rapide des données.
Question 19. Décrivez les différents types d'index.
Il existe trois types d'index, Ă savoir:
- Index unique: cet index empĂȘche le champ d'avoir des valeurs en double si la colonne est indexĂ©e de maniĂšre unique. Si une clĂ© primaire est dĂ©finie, un index unique peut ĂȘtre appliquĂ© automatiquement.
- Index clusterisé: cet index modifie l'ordre physique de la table et effectue des recherches en fonction des valeurs clés. Chaque table ne peut avoir qu'un seul index cluster.
- Index non clusterisé: ne modifie pas l'ordre physique de la table et conserve l'ordre logique des données. Chaque table peut avoir de nombreux index non clusterisés.
Question 20. Qu'est-ce que la normalisation et quels sont ses avantages?
La normalisation est le processus d'organisation des données dont le but est d'éviter la duplication et la redondance. Quelques avantages:
- Meilleure organisation de base de données
- Plus de tables avec de petites rangées
- AccÚs efficace aux données
- Plus grande flexibilitĂ© pour les requĂȘtes
- Recherche rapide d'informations
- Plus facile Ă mettre en Ćuvre la sĂ©curitĂ© des donnĂ©es
- Permet une modification facile
- Réduisez les données redondantes et dupliquées
- Base de données plus compacte
- Assure la cohérence des données aprÚs les modifications
Question 21. Quelle est la différence entre DROP et TRUNCATE?
La commande DROP supprime la table elle-mĂȘme et vous ne pouvez pas effectuer de commandes Rollback, tandis que la commande TRUNCATE supprime toutes les lignes de la table ( notez la traduction: dans SQL Server, Rollback fonctionnera normalement et restaurera DROP ).
Question 22. Expliquez les différents types de normalisation.
Il existe de nombreux niveaux de normalisation consécutifs. Ce sont les soi-disant formes normales. Chaque forme normale suivante comprend la précédente. Les trois premiÚres formes normales sont généralement suffisantes.
- Premier formulaire normal (1NF) - pas de groupes en double dans les lignes
- La deuxiÚme forme normale (2NF) - chaque valeur de colonne non clé (prise en charge) dépend de la clé primaire entiÚre
- TroisiÚme forme normale (3NF) - chaque valeur non clé dépend uniquement de la clé primaire et ne dépend pas d'une autre valeur non clé de la colonne
Question 23. Quelle est la propriété ACID dans la base de données?
ACIDE signifie atomicité, cohérence, isolation, durabilité. Il est utilisé pour fournir un traitement fiable des transactions de données dans un systÚme de base de données.
AtomicitĂ©. Garantit que la transaction est entiĂšrement terminĂ©e ou Ă©choue, oĂč la transaction reprĂ©sente une seule opĂ©ration de donnĂ©es logiques. Cela signifie que si une partie d'une transaction Ă©choue, la transaction entiĂšre Ă©choue et l'Ă©tat de la base de donnĂ©es reste inchangĂ©.
Cohérence. Garantit que les données doivent respecter toutes les rÚgles de validation. Autrement dit, vous pouvez dire que votre transaction ne laissera jamais votre base de données dans un état invalide.
Isolement. Le principal objectif de l'isolement est de contrÎler le mécanisme des modifications de données parallÚles.
Longévité. La durabilité implique que si la transaction a été confirmée (COMMIT), les changements intervenus au sein de la transaction seront conservés indépendamment de ce qui pourrait se mettre en travers de leur chemin (par exemple, perte de puissance, panne ou erreurs de toute nature).
Question 24. Qu'entendez-vous par «déclencheur» en SQL?
Un dĂ©clencheur dans SQL est un type spĂ©cial de procĂ©dure stockĂ©e conçu pour ĂȘtre exĂ©cutĂ© automatiquement lorsque ou aprĂšs la modification des donnĂ©es. Cela vous permet d'exĂ©cuter un package de code lorsqu'une insertion, une mise Ă jour ou toute autre requĂȘte est effectuĂ©e sur une table spĂ©cifique.
Question 25. Quelles instructions sont disponibles dans SQL?
Trois types d'instructions sont disponibles en SQL, Ă savoir:
- Opérateurs arithmétiques
- Opérateurs logiques
- Opérateurs de comparaison
Question 26. Les valeurs NULL correspondent-elles à zéro ou à l'espace?
NULL n'est pas nul ou espace du tout. Une valeur NULL représente une valeur qui n'est pas disponible, inconnue, affectée ou non applicable, tandis que zéro est un nombre et l'espace est un caractÚre.
Question 27. Quelle est la différence entre une jointure croisée et une jointure naturelle?
Une jointure croisĂ©e crĂ©e un produit croisĂ© ou cartĂ©sien de deux tables, tandis qu'une jointure naturelle est basĂ©e sur toutes les colonnes qui ont le mĂȘme nom et les mĂȘmes types de donnĂ©es dans les deux tables.
Question 28. Qu'est-ce qu'une sous-requĂȘte dans SQL?
Une sous-requĂȘte est une requĂȘte Ă l'intĂ©rieur d'une autre requĂȘte qui dĂ©finit une requĂȘte pour rĂ©cupĂ©rer des donnĂ©es ou des informations d'une base de donnĂ©es. Dans une sous-requĂȘte, la requĂȘte externe est appelĂ©e la requĂȘte principale, tandis que la requĂȘte interne est appelĂ©e la sous-requĂȘte. Les sous-requĂȘtes sont toujours exĂ©cutĂ©es en premier et le rĂ©sultat de la sous-requĂȘte est transmis Ă la requĂȘte principale. Il peut ĂȘtre imbriquĂ© dans SELECT, UPDATE ou dans toute autre requĂȘte. Une sous-requĂȘte peut Ă©galement utiliser n'importe quel opĂ©rateur de comparaison, tel que>, <ou =.
Question 29. Quels sont les types de sous-requĂȘtes?
Il existe deux types de sous-requĂȘtes, Ă savoir: corrĂ©lĂ©es et non corrĂ©lĂ©es.
- Sous-requĂȘte corrĂ©lĂ©e: il s'agit d'une requĂȘte qui sĂ©lectionne les donnĂ©es d'une table avec un lien vers une requĂȘte externe. Elle n'est pas considĂ©rĂ©e comme une requĂȘte indĂ©pendante car elle fait rĂ©fĂ©rence Ă une autre table ou colonne de la table.
- Sous-requĂȘte non corrĂ©lĂ©e: cette requĂȘte est une requĂȘte indĂ©pendante dans laquelle la sortie de la sous-requĂȘte est substituĂ©e dans la requĂȘte principale.
Question 30. ĂnumĂ©rez les façons d'obtenir le nombre d'enregistrements dans le tableau?
Pour compter le nombre d'enregistrements dans une table, vous pouvez utiliser les commandes suivantes:
SELECT * FROM table1
SELECT COUNT(*) FROM table1
SELECT rows FROM sysindexes WHERE id = OBJECT_ID(table1) AND indid < 2
Nous publierons 35 autres questions avec des réponses dans la prochaine partie ... Suivez l'actualité!