QCM Base de données MYSQL avec correction – Partie 21

QCM sur les Base de données et MYSQL avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses comprennent divers sujets pour réussir votre test.
 
 

1. Quelle est la commande pour définir une clé primaire sur une colonne existante ?

A ALTER TABLE ... ADD PRIMARY KEY

B ALTER TABLE ... SET PRIMARY KEY

C ALTER TABLE ... DEFINE PRIMARY KEY

D ALTER TABLE ... CREATE PRIMARY KEY

A
La commande ALTER TABLE ... ADD PRIMARY KEY permet d’ajouter une clé primaire à une colonne existante. Par exemple, ALTER TABLE employees ADD PRIMARY KEY (id); définit la colonne id comme clé primaire de la table employees.

 

 

2. Quelle commande permet de récupérer un enregistrement unique d’une table en MySQL ?

A SELECT UNIQUE * FROM table_name

B SELECT SINGLE * FROM table_name

C SELECT DISTINCT * FROM table_name

D SELECT * FROM table_name LIMIT 1

D
La commande LIMIT 1 permet de limiter les résultats de la requête à un seul enregistrement. Cela est utile pour récupérer un seul enregistrement de la table, même si plusieurs lignes pourraient correspondre à la requête.

 

 

3. Quel type d’index est le mieux adapté pour une colonne qui contient des valeurs uniques et qui est fréquemment utilisée dans des requêtes SELECT ?

A Index de type FULLTEXT

B Index de type HASH

C Index de type BTREE

D Index de type SPATIAL

C
Les index BTREE sont les plus courants et les plus utilisés dans MySQL pour les colonnes ayant des valeurs uniques et pour les requêtes de recherche, comme les SELECT avec des conditions de recherche sur des colonnes indexées. Ils permettent de rechercher efficacement des valeurs dans des colonnes numériques ou de texte ordonnées.

 

 
 

4. Quelle fonction MySQL permet de compter le nombre de caractères dans une chaîne de caractères ?

A LENGTH()

B CHAR_LENGTH()

C COUNT()

D SIZE()

B
La fonction CHAR_LENGTH() retourne le nombre de caractères dans une chaîne de caractères. Elle est différente de LENGTH() qui retourne la longueur en octets, ce qui peut être utile pour les chaînes multibytes.

 

 

5. Que fait la commande SQL suivante ?
SELECT * FROM commandes WHERE client_id IN 
(SELECT id FROM clients WHERE ville = 'Paris');

A Sélectionne toutes les commandes des clients dont le id est égal à celui de clients résidant à Paris.

B Sélectionne toutes les commandes passées par des clients ayant un id égal à Paris.

C Sélectionne toutes les commandes des clients dont l’adresse est à Paris.

D Sélectionne toutes les commandes des clients dont la ville est spécifiée dans une sous-requête.

A
La sous-requête (SELECT id FROM clients WHERE ville = 'Paris') renvoie les id des clients résidant à Paris. La requête principale sélectionne ensuite toutes les commandes associées à ces clients.

 

 

6. Que fait la commande SQL suivante ?
SELECT * FROM employés WHERE nom = 'Dupont' OR nom = 'Martin';

A Sélectionne les employés dont le nom est soit ‘Dupont’, soit ‘Martin’.

B Sélectionne les employés dont le nom commence par ‘Dupont’ ou ‘Martin’.

C Sélectionne tous les employés dont le nom est ‘Dupont’ et dont le prénom est ‘Martin’.

D Sélectionne les employés dont le nom est soit ‘Dupont’ soit ‘Martin’ et qui ont un salaire supérieur à 2000.

A
La clause OR permet de spécifier plusieurs conditions alternatives. Ici, la commande sélectionne les employés dont le nom est soit ‘Dupont’ soit ‘Martin’.

 

 
 

7. Quelle commande permet d’afficher l’état actuel d’une table (comme les indices et autres informations) ?

A SHOW STATUS

B SHOW TABLE STATUS

C SHOW COLUMNS

D SHOW SCHEMA

B
La commande SHOW TABLE STATUS fournit des informations détaillées sur la table, telles que la taille, le nombre de lignes, le type de moteur de stockage utilisé, et d’autres caractéristiques techniques.

 

 

8. Quelle est la commande pour supprimer une clé étrangère dans MySQL ?

A DROP FOREIGN KEY

B ALTER TABLE ... DROP FOREIGN KEY

C DELETE FOREIGN KEY

D REMOVE FOREIGN KEY

B
Pour supprimer une clé étrangère d’une table dans MySQL, vous utilisez la commande ALTER TABLE ... DROP FOREIGN KEY. Par exemple, ALTER TABLE orders DROP FOREIGN KEY fk_customer_id; supprime la clé étrangère fk_customer_id de la table orders.

 

 

9. Quelle est la principale différence entre les fonctions GROUP_CONCAT() et CONCAT() dans MySQL ?

A GROUP_CONCAT() concatène les résultats de plusieurs lignes en une seule chaîne de caractères, tandis que CONCAT() concatène simplement deux chaînes de caractères

B GROUP_CONCAT() est utilisé pour combiner des colonnes de tables, tandis que CONCAT() ne peut être utilisé qu’avec des chaînes littérales

C CONCAT() est plus rapide que GROUP_CONCAT()

D Il n’y a aucune différence entre GROUP_CONCAT() et CONCAT()

A
La fonction GROUP_CONCAT() est utilisée pour concaténer les valeurs d’une colonne pour plusieurs lignes dans une seule chaîne, souvent utilisée avec des fonctions de regroupement comme GROUP BY. En revanche, CONCAT() est une fonction de base qui permet de joindre deux ou plusieurs chaînes de caractères dans une seule chaîne, sans se soucier du nombre de lignes.

 

 
 

10. Quelle est la différence principale entre une sous-requête corrélée et une sous-requête non corrélée ?

A Une sous-requête non corrélée peut accéder aux colonnes de la table externe, mais une sous-requête corrélée ne le peut pas

B Une sous-requête corrélée fait référence à des colonnes de la requête externe, tandis qu’une sous-requête non corrélée ne le fait pas

C Les sous-requêtes non corrélées ne peuvent pas être utilisées avec JOIN

D Une sous-requête corrélée est toujours plus rapide qu’une sous-requête non corrélée

B
Une sous-requête corrélée dépend des valeurs de la requête externe, elle peut référencer des colonnes de la requête externe dans sa propre condition. En revanche, une sous-requête non corrélée est indépendante et n’a pas besoin d’informations de la requête externe.

 

Liste des commandes MySQL

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *