Maison  >  Article  >  base de données  >  10 questions d'entretien MySQL essentielles pour les administrateurs de bases de données

10 questions d'entretien MySQL essentielles pour les administrateurs de bases de données

PHPz
PHPzavant
2023-08-23 17:33:02971parcourir

10 questions dentretien MySQL essentielles pour les administrateurs de bases de données

En tant qu'administrateur de base de données, vous devez maîtriser MySQL, l'un des systèmes de gestion de bases de données open source les plus populaires. Que vous soyez un débutant ou un professionnel chevronné, vous devez être prêt à répondre à quelques questions d'entretien de base sur MySQL. Dans cet article, nous aborderons certaines des questions les plus courantes et fournirons des exemples pour vous aider à préparer votre prochain entretien.

Qu'est-ce que MySQL ?

MySQL est un système de gestion de base de données relationnelle (SGBDR) open source qui utilise SQL (Structured Query Language) pour gérer et manipuler les données. Il a été publié pour la première fois en 1995 et appartient actuellement à Oracle Corporation. MySQL est largement utilisé dans les applications Web, en particulier celles créées à l'aide de PHP, et est connu pour sa rapidité, sa fiabilité et sa facilité d'utilisation.

Quels sont les différents types de données pris en charge par MySQL ?

MySQL prend en charge plusieurs types de données, notamment −

  • Types de données numériques − INT, BIGINT, FLOAT, DOUBLE, DECIMAL.

  • Types de données de date et d'heure - DATE, TIME, DATETIME, TIMESTAMP.

  • Type de données chaîne − CHAR, VARCHAR, TEXT, BLOB.

  • Autres types de données - BOOLEAN, ENUM, SET.

Voici quelques exemples−

  • INT − représente un entier (par exemple 5, 10, 100).

  • VARCHAR − représente une chaîne de longueur variable (par exemple 'hello', 'world').

  • TEXT − représente de grandes valeurs de texte (par exemple des articles de blog, des articles).

  • DATE − représente une date (par exemple '2023-04-03').

  • TIMESTAMP − représente la date et l'heure (par exemple '2023-04-03 14:30:00').

Qu'est-ce qu'une clé primaire dans MySQL ?

Une clé primaire est un identifiant unique pour une ligne dans une table MySQL. Elle est utilisée pour garantir que chaque ligne d'une table est identifiable de manière unique et est accessible rapidement. Une clé primaire peut être constituée d'une ou plusieurs colonnes, mais elle doit le faire. être unique et ne peut pas être nul.

Ceci est un exemple −

CREATE TABLE users (
   id INT PRIMARY KEY,
   name VARCHAR(255) NOT NULL,
   email VARCHAR(255) NOT NULL UNIQUE
);

Dans cet exemple, la colonne 'id' est la clé primaire de la table 'users'. Il garantit que chaque utilisateur peut être identifié de manière unique par son identifiant.

Qu'est-ce qu'une clé étrangère dans MySQL ?

Une clé étrangère est une colonne ou un ensemble de colonnes dans une table MySQL qui fait référence à la clé primaire d'une autre table. Il permet d'établir une relation entre deux tables et d'assurer la cohérence des données entre elles. Des contraintes de clé étrangère peuvent être ajoutées à une table pour renforcer l'intégrité référentielle.

Ceci est un exemple −

CREATE TABLE orders (
   id INT PRIMARY KEY,
   user_id INT,
   product_id INT,
   FOREIGN KEY (user_id) REFERENCES users(id),
   FOREIGN KEY (product_id) REFERENCES products(id)
);

Dans cet exemple, les colonnes 'user_id' et 'product_id' sont des clés étrangères qui font référence à la colonne 'id' dans les tables 'users' et 'products', respectivement. Cela garantit que les commandes sont associées à des utilisateurs et des produits valides.

Que sont les vues dans MySQL ?

Dans MySQL, une vue est une table virtuelle basée sur les résultats d'une instruction SELECT. Les vues sont souvent utilisées pour simplifier les requêtes complexes et fournir une vue abstraite des données sous-jacentes.

Ceci est un exemple −

CREATE VIEW user_orders AS
SELECT u.name, o.product_name, o.order_date
FROM users u
JOIN orders o ON u.id = o.user_id;

Dans cet exemple, nous avons créé une vue appelée « user_orders » qui renvoie le nom d'utilisateur, le nom du produit et la date de commande pour toutes les commandes. Cette vue est basée sur une opération JOIN entre les tables 'users' et 'orders'.

Quelle est la différence entre INNER JOIN et LEFT JOIN dans MySQL ?

INNER JOIN et LEFT JOIN sont deux types d'opérations JOIN utilisées pour combiner des lignes de deux tables ou plus. La principale différence entre les deux est que INNER JOIN renvoie uniquement les lignes qui ont des valeurs correspondantes dans les deux tables, tandis que LEFT JOIN renvoie toutes les lignes de la table de gauche (la première table répertoriée dans l'instruction JOIN) ainsi que de la table de droite. de lignes correspondantes.

Ceci est un exemple −

Supposons que nous ayons deux tables, « utilisateurs » et « commandes ». Le tableau « utilisateurs » contient des informations sur les utilisateurs, tandis que le tableau « commandes » contient des informations sur les commandes passées par ces utilisateurs.

Pour obtenir une liste de tous les utilisateurs et de leurs commandes correspondantes, nous pouvons utiliser LEFT JOIN −

SELECT u.name, o.product_name, o.order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

Cette requête renverrait tous les utilisateurs, qu'ils aient ou non des commandes, et leurs commandes correspondantes, le cas échéant.

Pour obtenir la liste des utilisateurs qui ont passé des commandes, nous pouvons utiliser INNER JOIN −

SELECT u.name, o.product_name, o.order_date
FROM users u
INNER JOIN orders o ON u.id = o.user_id;

Cette requête ne renverrait que les utilisateurs qui ont passé des commandes et leurs commandes correspondantes.

Que sont les index dans MySQL ?

L'indexation est le processus de création d'un index sur une ou plusieurs colonnes d'une table MySQL pour améliorer les performances des requêtes. Un index est une structure de données qui permet à une base de données de trouver rapidement des lignes en fonction des valeurs des colonnes indexées.

Voici un exemple

Supposons que nous ayons un tableau appelé « produits » qui contient des informations sur les produits, y compris une colonne appelée « nom_produit ». Pour améliorer les performances de recherche de produits par nom, nous pouvons créer un index sur la colonne 'product_name' −

CREATE INDEX idx_products_product_name ON products(product_name);

Cela créera un index sur la colonne « product_name » de la table « products », permettant à la base de données de rechercher rapidement les produits par nom.

在MySQL中,CHAR和VARCHAR数据类型有什么区别?

CHAR和VARCHAR都是MySQL中用于存储字符数据的字符串数据类型。两者之间的主要区别在于,CHAR是固定长度的数据类型,而VARCHAR是可变长度的数据类型。

Here's an Example

如果我们将一个列定义为CHAR(10),无论该列中存储的数据的长度如何,它始终会占用10个字节的存储空间。这意味着,如果我们在该列中存储字符串'hello',它将会被填充空格以占用10个字节的存储空间。

如果我们将一列定义为VARCHAR(10),它将只占用必要的存储空间来存储数据。这意味着如果我们在该列中存储字符串'hello',它将只占用5个字节的存储空间。

一般来说,对于长度固定的列(例如邮政编码),使用CHAR是一个好的实践,而对于长度可变的列(例如产品名称),使用VARCHAR。

什么是MySQL中的子查询?

子查询是在MySQL中嵌套在另一个查询中的查询。子查询可以用于检索将在主查询中使用的数据,或者根据条件过滤数据。

Here's an Example

假设我们有两个表,'users'和'orders'。'users'表包含有关用户的信息,而'orders'表包含有关这些用户下的订单的信息。

要获取所有已下订单的用户列表,我们可以使用子查询 -

SELECT name FROM users WHERE id IN (SELECT user_id FROM orders);

这个查询首先执行子查询,该子查询从'orders'表中返回一个用户ID列表。然后,主查询使用IN运算符过滤'users'表,并返回下单的用户的姓名。

MySQL中的数据库事务是什么?

MySQL中的数据库事务是一系列作为单个工作单元执行的SQL语句。事务用于确保一组SQL语句以原子、一致、隔离和持久(ACID)的方式执行。

Here's an Example

假设我们有一个名为'accounts'的表,其中包含有关银行账户的信息,包括一个名为'balance'的列。要将资金从一个账户转移到另一个账户,我们需要在一个事务中更新两个账户的余额 -

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

此交易将从ID为1的账户中扣除100美元,并将100美元添加到ID为2的账户中,确保该交易以ACID方式执行。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer