Recherche de site Web

11 Base de données MySQL avancée « Questions et réponses d'entretien » pour les utilisateurs Linux


Nous avons déjà publié deux articles MySQL, très appréciés par la Communauté Tecmint. Il s'agit du troisième article sur la série MySQL Interview et du seizième dans la colonne Interview Genre.

  1. 15 questions d'entretien de base sur MySQL
  2. 10 questions d'entretien sur la base de données MySQL pour les intermédiaires

Nous sommes arrivés ici grâce à votre soutien et nous recherchons la même chose à l'avenir. Ici, dans cet article, nous nous concentrerons sur l'aspect pratique de MySQL, la question pertinente pour l'aspect Interview.

1. À l'aide de l'instruction SELECT, recherchez la version du serveur que vous exécutez et imprimez le nom de la base de données actuelle ?

Réponse : La commande MySQL ci-dessous affichera la version du serveur et la base de données actuellement sélectionnée.

mysql> SELECT VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | NULL       |
+-------------------------+------------+
1 row in set (0.06 sec)

Dans la colonne Base de données, la valeur NULL est affichée car nous n'avons sélectionné aucune base de données. Alors, sélectionnez la base de données comme indiqué dans la commande suivante.

mysql> use Tecmint;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | tecmint    |
+-------------------------+------------+
1 row in set (0.00 sec)
2. N'UTILISEZ PAS l'opérateur (!) Pour sélectionner tous les utilisateurs sauf « SAM » dans un tableau, dites « Tecmint »

Réponse : L'instruction ci-dessous affichera toutes les colonnes de tous les utilisateurs de la table 'Tecmint', à l'exception de l'utilisateur 'SAM'.

mysql> SELECT * FROM Tecmint WHERE user !=SAM;

+---------------------+---------+---------+---------+---------+-------+ 
| date                | user    | host 	 | root     | local   | size  | 
+---------------------+---------+---------+---------+---------+-------+ 
| 2001-05-14 14:42:21 | Anthony | venus  | barb     | venus   | 98151 | 
| 2001-05-15 08:50:57 | TIM     | venus  | phil     | venus   | 978   | 
+---------------------+---------+---------+---------+---------+-------+
3. Est-il possible d'implémenter « AND » avec l'opérateur NOT (!).

Réponse : L'opérateur AND est utilisé lorsque nous utilisons (=) et l'opérateur OR est utilisé lorsque nous utilisons (!=). Un exemple de (=) avec l'opérateur AND.

mysql> SELECT * FROM mail WHERE user = SAM AND root = phil

Un exemple de (!=) avec l'opérateur OR.

mysql> SELECT * FROM mail WHERE user != SAM OR root != phil

+---------------------+---------+---------+---------+---------+-------+ 
| date                | user    | host    | root    | local   | size  | 
+---------------------+---------+---------+---------+---------+-------+ 
| 2001-05-14 14:42:21 | Anthony | venus   | barb    | venus   | 98151 | 
+---------------------+---------+---------+---------+---------+-------+
  1. = : signifie Égal à
  2. != : Différent de
  3. ! : représente NON l'opérateur

Les AND & OR sont traités comme des opérateurs de jointure dans MySQL.

4. À quoi sert l'instruction IFNULL() dans MySQL ?

Répons : La requête dans MySQL peut être écrite avec précision à l'aide de l'instruction IFNULL(). L'instruction IFNULL() teste son premier argument et renvoie s'il n'est pas NULL, ou renvoie son deuxième argument dans le cas contraire.

mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+
5. Vous souhaitez voir uniquement certaines lignes d'un jeu de résultats à partir du début ou de la fin d'un jeu de résultats. Comment allez-vous le faire?

Réponse : Nous devons utiliser la clause LIMIT avec ORDER BY pour réaliser le scénario décrit ci-dessus.

Afficher 1 enregistrement
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
Afficher 5 enregistrements
mysql> SELECT * FROM profile LIMIT 5;

+----+------+------------+-------+-----------------------+------+ 
| id | name | birth      | color | foods                 | cats | 
+----+------+------------+-------+-----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza  | 0    | 
| 2  | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3    | 
| 3  | Brit | 1957-12-01 | red   | burrito,curry,pizza   | 1    |   
| 4  | Carl | 1973-11-02 | red   | eggroll,pizza         | 4    | 
| 5  | Sean | 1963-07-04 | blue  | burrito,curry         | 5    | 
+----+------+------------+-------+-----------------------+------+
mysql> SELECT * FROM profile ORDER BY birth LIMIT 1;

+----+------+------------+-------+----------------+------+ 
| id | name | birth      | color | foods          | cats | 
+----+------+------------+-------+----------------+------+ 
| 9  | Dick | 1952-08-20 | green | lutefisk,fadge | 0    | 
+----+------+------------+-------+----------------+------+
6. Oracle contre MySQL. Lequel et pourquoi ?

Réponse : Eh bien, les deux ont leurs avantages et leurs inconvénients. Pour le moment, je préfère MySQL.

Raison de la sélection MySQL plutôt que Oracle
  1. MySQL est un logiciel libre.
  2. MySQL est portable.
  3. MYSQL prend en charge à la fois l'interface graphique et l'invite de commande.
  4. L'administration MySQL est prise en charge via le navigateur de requêtes.
7. Comment obtiendrez-vous la date actuelle dans MySQL ?

Répons : Obtenir la date actuelle dans MySQL est aussi simple que d'exécuter l'instruction SELECT ci-dessous.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+
8. Comment allez-vous exporter des tables sous forme de fichier XML dans MySQL ?

Réponse : Nous utilisons l'option '-e' (export) pour exporter la table MySQL ou l'intégralité de la base de données dans un fichier XML. Avec de grandes tables, nous devrons peut-être l'implémenter manuellement, mais pour de petites tables, des applications comme phpMyAdmin peuvent faire le travail.

Une commande native de MySQL peut le faire.

mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml

Où USER_NAME est le nom d'utilisateur de la base de données, table_name est la table que nous exportons au format XML et table_name.xml est le fichier XML dans lequel les données sont stockées.

9. Qu'est-ce que MySQL_pconnect ? Et en quoi diffère-t-il de MySQL_connect ?

Réponse : MySQL_pconnect() ouvre une connexion persistante à la base de données MySQL, ce qui signifie simplement que la base de données n'est pas ouverte à chaque chargement de la page et que nous ne pouvons donc pas utilisez MySQL_close() pour fermer une connexion persistante.

Il existe une brève différence entre MySQL_pconnect et MySQL_connect.

Contrairement à MySQL_pconnect, MySQL_connect – Ouvre la base de données à chaque fois que la page est chargée et peut être fermée à tout moment à l'aide de l'instruction MySQL_close().

10. Vous devez afficher tous les index définis dans un tableau, par exemple « utilisateur » de la base de données, par exemple « mysql ». Comment allez-vous y parvenir ?

Réponse : La commande suivante affichera tous les index d'une table 'user'.

mysql> show index from user;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | 
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| user  |          0 | PRIMARY  |            1 | Host        | A         |        NULL |     NULL | NULL   |      | BTREE      |         |               | 
| user  |          0 | PRIMARY  |            2 | User        | A         |           4 |     NULL | NULL   |      | BTREE      |         |               | 
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
2 rows in set (0.00 sec)
11. Que sont les tableaux CSV ?

Réponse : CSV signifie Valeurs séparées par des virgules, également appelées Valeurs séparées par des caractères. Le tableau CSV stocke les données au format texte brut et tabulaire. Il contient généralement un enregistrement par ligne.

Chaque enregistrement est séparé par des délimiteurs spécifiques (virgule, point-virgule, …) où chaque enregistrement a la même séquence de champs. Les tableaux CSV sont les plus largement utilisés pour stocker les contacts téléphoniques à importer et à exporter et peuvent être utilisés pour stocker tout type de données en texte brut.

C'est tout pour le moment. Je serai de retour ici avec un autre article intéressant, que vous adorerez lire. D'ici là, restez à l'écoute et connecté à Tecmint et n'oubliez pas de nous faire part de vos précieux commentaires dans la section commentaires ci-dessous.