Il faut réviser ses classiques de temps en temps !

Récemment un fil Twitter listait des questions SQL lors d’un entretien. J’ai traduit cette liste et complété avec quelques questions tirées de ces 50 questions à préparer qui peuvent être posées lors un entretien d’embauche pour un poste orienté SQL.

  1. Qu’est-ce que la base de données ?

Une base de données est une collection organisée de données, stockées et récupérées numériquement à partir d’un système informatique distant ou local. Les bases de données peuvent être vastes et complexes, et ces bases de données sont développées à l’aide d’approches de conception et de modélisation fixes.

  1. Qu’est-ce que le SGBD ?

SGBD signifie système de gestion de base de données. Le SGBD est un logiciel système chargé de la création, de la récupération, de la mise à jour et de la gestion de la base de données.

  1. Qu’est-ce que SQL ?

SQL est l’acronyme de Structured Query Language. C’est le langage standard pour les systèmes de gestion de bases de données relationnelles. Il est particulièrement utile dans le traitement de données organisées constituées d’entités et de relations entre différentes entités des données.

  1. Quelle est la différence entre SQL et MySQL ?

SQL est un langage standard pour récupérer et manipuler des bases de données structurées. Au contraire, MySQL est un SGBS relationnelle, comme SQL Server, Oracle, utilisé pour gérer les bases de données SQL.

  1. Que sont les tables et les champs ?

Une table est une collection organisée de données stockées sous forme de lignes et de colonnes. Les colonnes peuvent être classées comme verticales et les lignes comme horizontales. Les colonnes d’une table sont appelées champs tandis que les lignes peuvent être appelées enregistrements.

  1. Qu’est-ce qu’une clé primaire ?

La contrainte PRIMARY KEY identifie de manière unique chaque ligne d’une table. Il doit contenir des valeurs UNIQUE et a une contrainte NOT NULL implicite.

Une table en SQL est strictement limitée à une et une seule clé primaire.

  1. Qu’est-ce qu’une contrainte UNIQUE ?

Une contrainte UNIQUE garantit que toutes les valeurs d’une colonne sont différentes. Cela fournit un caractère unique pour la ou les colonnes et permet d’identifier chaque ligne de manière unique. Contrairement à la clé primaire, plusieurs contraintes uniques peuvent être définies par table.

  1. Qu’est-ce qu’une clé étrangère ?

Une clé étrangère comprend un seul ou une collection de champs dans une table qui fait essentiellement référence à la clé primaire dans une autre table. La contrainte de clé étrangère garantit l’intégrité référentielle dans la relation entre deux tables.

  1. Qu’est-ce qu’une jointure ? Énumérez ses différents types.

La clause SQL JOIN est utilisée pour combiner des enregistrements (lignes) de deux ou plusieurs tables dans une base de données SQL basée sur une colonne liée entre les deux.

Les types :

  • INNER JOIN
  • CROSS JOIN
  • LEFT JOIN
  • LEFT OUTER JOIN
  • RIGHT JOIN
  • RIGHT OUTER JOIN
  • FULL JOIN
  • FULL OUTER JOIN
  • SELF JOIN
  • NATURAL JOIN
  • UNION JOIN
  1. Qu’est-ce qu’une requête ?

Une requête est une demande de données ou d’informations provenant d’une table de base de données ou d’une combinaison de tables. Une requête de base de données peut être une requête de sélection ou une requête d’action.

  1. Créer et supprimer la base de données en SQL ?

Créer la base de données nom_base :
CREATE DATABASE nom_base;

Supprimer la base de données nom_base :
DROP DATABASE nom_base;

  1. Créer et supprimer une table en SQL?
CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
    ....
);
DROP TABLE table_name;

  1. Quelle est la différence entre les instructions DROP et TRUNCATE ?

Si une table est supprimée, toutes les choses associées aux tables sont également supprimées. Toutefois, si une table est tronquée, aucun des problèmes ci-dessus n’existe et la table conserve sa structure d’origine.

  1. Comment utilisons-nous l’instruction DISTINCT ?

L’instruction DISTINCT est utilisée avec l’instruction SELECT. Si un enregistrement contient des valeurs en double, DISTINCT sélectionnera différentes valeurs parmi les enregistrements en double.

Syntaxe :

SELECT DISTINCT nom_colonne
  FROM nom_table;

  1. Qu’est-ce que la propriété ACID ?

Afin de maintenir la cohérence dans une base de données, avant et après la transaction, certaines propriétés sont suivies. Celles-ci sont appelées propriétés ACID :

  • Atomicité
  • Cohérence
  • Isolement
  • Durabilité
  1. Combien de fonctions d’agrégation sont disponibles dans SQL ?

Les fonctions SQL d’agrégation calculent des valeurs à partir de plusieurs colonnes et renvoient une valeur unique. Il existe 7 fonctions d’agrégation dans SQL:

  1. AVG()
  2. COUNT()
  3. MAX()
  4. MIN()
  5. SUM()
  6. FISRT()
  7. LAST()
  1. Qu’est-ce qu’une vue en SQL ?

Une vue peut être définie comme une table virtuelle contenant des lignes et des colonnes avec des champs d’une ou plusieurs tables.

Syntaxe :

CREATE VIEW nom_vue AS
SELECT nom_colonnes(s)
FROM nom_table
WHERE condition

  1. Qu’est-ce que l’injection SQL ?

L’injection SQL est un type de technique d’attaque de base de données où des instructions SQL malveillantes sont insérées dans un champ d’entrée de la base de données d’une manière telle qu’une fois exécutée, la base de données est exposée à un attaquant pour l’attaque.

  1. Qu’est-ce que la normalisation ? Combien de formes de normalisation existe-t-il ?

La normalisation est utilisée pour organiser les données afin de supprimer les redondances.

5 types de forme normale existent :

  • Première forme normale (1NF)
  • Deuxième forme normale (2NF)
  • Troisième forme normale (3NF)
  • Quatrième forme normale (BCNF)
  1. Qu’est-ce qu’une relation ? Combien de types de relations existe-t-il ?

La relation peut être définie comme la connexion entre plusieurs tables de la base de données.

Types de relation :

  1. One to One
  2. Many to One
  3. Many to Many
  4. One to Many
  5. Comment sélectionner tous les enregistrements d’une table ?

Pour sélectionner tous les enregistrements de la table, nous devons utiliser la syntaxe suivante :

SELECT * FROM nom_table;

  1. Différence entre les commandes TRUNCATEDELETE et DROP ?

DELETE supprime certaines ou toutes les lignes d’une table en fonction de la condition.
TRUNCATE supprime TOUTES les lignes d’une table en libérant les pages mémoire.
La commande DROP supprime complètement une table de la base de données.

  1. Définir UNIONMINUSUNION ALL ?
  • MINUS – renvoie toutes les lignes distinctes sélectionnées par la première requête mais pas par la seconde.
  • UNION – renvoie toutes les lignes distinctes sélectionnées par l’une ou l’autre des requêtes
  • UNION ALL – renvoie toutes les lignes sélectionnées par l’une ou l’autre des requêtes, y compris tous les doublons.
  1. Qu’est-ce qu’un index ?

Un index est une structure de données utilisée et entretenue par le SGBS pour lui permettre de retrouver rapidement les données. L’utilisation d’un index simplifie et accélère les opérations de recherche, de tri, de jointure ou d’agrégation effectuées par le SGBS.

  1. Quels sont les différents types d’index ?
  • Unique index
  • Clustered index
  • NonClustered Index
  1. Qu’est ce qu’un déclencheur (trigger) ?

les déclencheurs sont utilisés pour exécuter un code SQL 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.

  1. Que signifie CDC ?

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

CDC est utilisé pour capturer les données récemment modifiés.

  1. 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
  1. 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
  1. 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’identifiant de chaque enregistrement peut être incrémenté automatiquement.

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

A lire, pour préparer un entretien ou pour se rassurer. 😉

https://blog.lecacheur.com/wp-content/uploads/2021/03/tumblr_nhrphtX3tk1sfie3io1_1280-1024x735.jpghttps://blog.lecacheur.com/wp-content/uploads/2021/03/tumblr_nhrphtX3tk1sfie3io1_1280-150x150.jpgSeBDéveloppemententretien,recrutement,SQLIl faut réviser ses classiques de temps en temps ! Récemment un fil Twitter listait des questions SQL lors d'un entretien. J'ai traduit cette liste et complété avec quelques questions tirées de ces 50 questions à préparer qui peuvent être posées lors un entretien d'embauche pour un poste orienté SQL. Qu'est-ce que la...Un blog, c'est un blog !