Le langage de requête structuré (SQL) constitue le socle de la manipulation de données pour les administrateurs de bases de données et les analystes. C’est un outil omniprésent dans le développement de sites web, d’applications et d’autres plateformes.
Il permet non seulement d’accéder aux données stockées dans une base, mais également de les modeler, notamment en créant ou en modifiant des tables et des colonnes, et en formulant des requêtes via des commandes SQL spécifiques.
Cet article se présente comme une ressource précieuse pour ceux qui préparent un entretien d’embauche axé sur SQL. Les questions et réponses suivantes couvrent un large éventail de sujets susceptibles d’être abordés lors d’entretiens pour des postes tels que ingénieur de données, analyste de données, ou administrateur de bases de données.
Quelles sont les commandes SQL fondamentales ?
Voici un aperçu des commandes SQL les plus essentielles :
SELECT
: Extrait des informations d’une base de données.CREATE TABLE
: Permet de créer une nouvelle table.DELETE
: Supprime des données d’une base de données.INSERT INTO
: Ajoute de nouvelles données à une base.ALTER DATABASE
: Modifie la structure d’une base de données.CREATE DATABASE
: Crée une toute nouvelle base de données.UPDATE
: Met à jour les données existantes dans une base de données.
Quelles sont les quatre catégories d’instructions SQL importantes ?
Les instructions SQL se regroupent principalement en ces quatre catégories :
- Instructions du langage de définition de données (DDL).
- Instructions du langage de manipulation de données (DML).
- Instructions du langage de contrôle de données (DCL).
- Instructions du langage de contrôle des transactions (TCL).
Quel est le rôle d’une clé primaire en SQL ?
Une clé primaire est une colonne, ou un ensemble de colonnes, qui assure l’identification unique de chaque ligne dans une table de base de données. Essentielle pour l’intégrité des données, elle garantit que chaque entrée possède un identifiant distinct. Une table ne peut avoir qu’une seule clé primaire, constituée d’un ou de plusieurs champs.
Quels sont les types de données gérés par SQL ?
Un type de données définit la nature des informations qu’une variable peut contenir : cela peut être du texte, des chiffres, des dates, ou encore des données binaires. SQL prend en charge plusieurs catégories de types de données :
- Valeurs numériques exactes (entiers, décimaux, etc.).
- Valeurs numériques approximatives (nombres à virgule flottante).
- Dates et heures.
- Chaînes de caractères.
- Chaînes de caractères Unicode (pour les caractères spéciaux).
- Chaînes binaires (pour les données brutes).
Où sont stockés les identifiants et mots de passe dans SQL Server ?
Les noms d’utilisateur et leurs mots de passe sont conservés respectivement dans les tables système sys.server_principals
et sys.sql_logins
. Les mots de passe ne sont pas stockés en clair, mais sous forme chiffrée, pour des raisons de sécurité.
Qu’est-ce que l’injection SQL ?
L’injection SQL est une technique de cyberattaque courante qui consiste à manipuler des requêtes SQL afin d’accéder à des données sensibles ou de prendre le contrôle d’une base de données. Ses conséquences peuvent être graves, allant de pertes financières à la compromission d’informations confidentielles. La meilleure défense reste la prévention, par la mise en place de pratiques de développement sécurisées.
Qu’est-ce qu’un déclencheur (trigger) en SQL, et quels sont ses types ?
Un déclencheur, ou trigger, est un type spécial de procédure stockée qui s’exécute automatiquement en réponse à un événement spécifique sur le serveur de base de données. Il sert à évaluer les données avant ou après des modifications, grâce à des instructions DDL et DML.
Il existe principalement trois types de déclencheurs :
- Déclencheurs de connexion (LOGON) : Activés lorsqu’un utilisateur se connecte.
- Déclencheurs DDL : Déclenchés par des commandes DDL comme
CREATE
,ALTER
, ouDROP
. - Déclencheurs DML : Se lancent lorsqu’une commande DML, telle que
INSERT
,UPDATE
ouDELETE
, est exécutée.
Comment distinguer les fonctions mono-ligne des fonctions multi-lignes ?
Les fonctions mono-ligne agissent sur une seule ligne à la fois et retournent un seul résultat. Elles sont souvent utilisées pour des transformations de données (longueur, casse, etc.).
Les fonctions multi-lignes, aussi appelées fonctions d’agrégation, traitent simultanément plusieurs lignes, et produisent une seule sortie (somme, moyenne, etc.).
Qu’est-ce que la normalisation de bases de données, et quels sont ses quatre principaux niveaux ?
La normalisation est un processus visant à organiser les données pour réduire la redondance et améliorer l’accès. Les tables et colonnes sont structurées pour que les dépendances entre données soient gérées de manière optimale par les contraintes d’intégrité de la base.
Les quatre niveaux de normalisation sont :
- Première forme normale (1NF).
- Deuxième forme normale (2NF).
- Troisième forme normale (3NF).
- Forme normale de Boyce-Codd (BCNF ou 4NF).
Que sont les index et les contraintes en SQL ?
Les index sont des structures qui accélèrent les recherches de données dans les tables en améliorant les performances des requêtes. Ils permettent également d’appliquer des contraintes, des règles qui dictent le comportement de la base lors de la modification des données.
Les contraintes limitent le type d’informations pouvant être stockées dans une table, garantissant ainsi l’intégrité et la fiabilité des données. En cas de violation d’une contrainte, l’opération est annulée.
Quelles sont les contraintes SQL couramment utilisées ?
Voici les contraintes les plus souvent rencontrées :
CREATE INDEX
: Crée des index pour améliorer la rapidité des recherches.FOREIGN KEY
: Établit une relation entre des tables en utilisant une clé d’une autre table.DEFAULT
: Définit une valeur par défaut pour un champ en l’absence de données saisies.UNIQUE
: Assure que les valeurs d’une colonne sont toutes distinctes.PRIMARY KEY
: Identifie de manière unique chaque ligne d’une table.NOT NULL
: Interdit les valeurs NULL dans une colonne.CHECK
: S’assure qu’un champ respecte une condition prédéfinie.
La valeur NULL est-elle équivalente à 0 en SQL ?
En SQL, NULL
représente une valeur manquante ou inconnue. Elle n’est pas équivalente à une chaîne vide (‘ ‘) ou au chiffre zéro (0). On ne peut pas comparer NULL
à une autre valeur en utilisant les opérateurs de comparaison habituels (=
, >
, <
), car elle ne peut être ni égale, ni différente d’aucune autre valeur.
Comment prévenir les attaques par injection SQL ?
Outre les audits de sécurité réguliers, les techniques de protection incluent la validation des entrées, le nettoyage des données, l’utilisation de requêtes paramétrées et d’instructions préparées. L’utilisation d’un pare-feu est également un élément de défense essentiel.
Qu’est-ce que SQL Dynamique, et quand l’utiliser ?
Le SQL dynamique permet de modifier les requêtes lors de l’exécution en fonction de critères variables, tels que la date, l’heure ou d’autres paramètres. Cela ajoute de la flexibilité à la programmation et s’avère utile dans une multitude de contextes, de la création d’applications à l’amélioration des systèmes de gestion de données.
Quels sont les différents types de clés en SQL ?
Voici une liste des différents types de clés :
- Clé primaire : Identifie de façon unique chaque enregistrement dans une table. Doit être non nulle et unique.
- Clé étrangère : Fait référence à la clé primaire d’une autre table. Sert à établir des relations entre tables.
- Super clé : Clé ou ensemble de clés qui permet d’identifier les enregistrements d’une table (mais peut inclure des attributs non nécessaires).
- Clé candidate : Sous-ensemble de super clés capable d’identifier uniquement les enregistrements, chaque attribut étant nécessaire à l’identification.
- Clé composite : Combinaison d’au moins deux colonnes d’une table, utilisées pour identifier de manière unique chaque ligne.
Quels sont les types d’index disponibles en SQL ?
Les types d’index en SQL comprennent :
- Index de hachage
- Index optimisés en mémoire
- Index clusterisé
- Index non clusterisé
- Index unique
- Index de magasin de colonnes
- Index avec colonnes incluses
- Index sur les colonnes calculées
- Index filtré
- Index spatial
- Index XML
- Index de texte intégral
Qu’est-ce que le pool de mémoire tampon (buffer pool) et quels sont ses avantages ?
Le pool de mémoire tampon est un espace mémoire alloué par SQL Server pour le stockage des pages de données fréquemment consultées. Sa taille a un impact direct sur les performances du serveur.
Les avantages de l’utilisation d’un pool de mémoire tampon comprennent :
- Amélioration des performances d’E/S.
- Augmentation du débit des transactions.
- Réduction de la latence d’E/S.
- Amélioration des performances de lecture.
Que signifie dépendance en SQL, et quels sont ses types ?
Une dépendance en SQL se crée lorsqu’un objet (l’entité référente) contient une expression SQL qui fait référence à un autre objet (l’entité référencée). Voici les types de dépendances courantes :
- Dépendance fonctionnelle.
- Dépendance entièrement fonctionnelle.
- Dépendance multivaluée.
- Dépendance transitive.
- Dépendance partielle.
Que sont les jointures SQL, et quelles sont les plus fréquentes ?
Les jointures sont des opérations essentielles permettant de combiner les données de deux ou plusieurs tables. Elles facilitent l’analyse de données et le filtrage de résultats.
Les types de jointures les plus utilisés sont :
INNER JOIN
OUTER JOIN
CROSS JOIN
SELF JOIN
Que sont les opérateurs ensemblistes en SQL ?
Les opérateurs ensemblistes, tels que UNION
, INTERSECT
ou EXCEPT
permettent de combiner des données issues de plusieurs requêtes de même type. Ils diffèrent des jointures SQL en ce qu’ils collectent les enregistrements de différentes requêtes, alors que les jointures combinent des colonnes de différentes tables.
Conclusion
Ces questions et réponses vous offrent un bon aperçu des concepts clés liés à SQL. Pour réussir un entretien d’embauche dans ce domaine, il est essentiel de maîtriser les principes fondamentaux de SQL. La pratique régulière de requêtes SQL, ainsi qu’une étude approfondie de la documentation vous aideront à progresser.
Pour plus d’informations sur les commandes SQL, n’hésitez pas à consulter des feuilles de triche SQL. Et pour vous exercer à la rédaction de requêtes, plusieurs plateformes d’entraînement en ligne sont disponibles.