ホームページ >データベース >mysql チュートリアル >データベース管理者向けの MySQL 面接で重要な 10 の質問
データベース管理者は、最も人気のあるオープンソース データベース管理システムの 1 つである MySQL に精通している必要があります。初心者でも経験豊富なプロフェッショナルでも、MySQL の面接での基本的な質問に答える準備をしておく必要があります。この記事では、最も一般的な質問のいくつかを取り上げ、次の面接の準備に役立つ例を示します。
MySQL は、SQL (構造化照会言語) を使用してデータを管理および操作するオープンソースのリレーショナル データベース管理システム (RDBMS) です。 1995 年に初めてリリースされ、現在は Oracle Corporation が所有しています。 MySQL は Web アプリケーション、特に PHP を使用して構築されたアプリケーションで広く使用されており、その速度、信頼性、使いやすさで知られています。
MySQL は、-
を含む複数のデータ型をサポートします。数値データ型 - INT、BIGINT、FLOAT、DOUBLE、DECIMAL。
日付と時刻のデータ型 - DATE、TIME、DATETIME、TIMESTAMP。
文字列データ型 - CHAR、VARCHAR、TEXT、BLOB。
その他のデータ型 - BOOLEAN、ENUM、SET。
ここにいくつかの例があります-
INT -整数を表します(例: 5、10、100)。
VARCHAR -可変長文字列 (例: 'hello'、'world') を表します。
TEXT -大きなテキスト値を表します(ブログ投稿、記事など)。
DATE -日付を表します(例: '2023-04-03')。
TIMESTAMP -日付と時刻を表します(例: '2023-04-03 14:30:00')。
主キーは、MySQL テーブル内の行の一意の識別子です。テーブル内の各行が一意に識別可能であり、すぐにアクセスできるようにするために使用されます。主キーは 1 つ以上の列で構成できますが、一意である必要があり、null にすることはできません。
これは例です -
リーリーこの例では、「id」列が「users」テーブルの主キーです。これにより、各ユーザーが ID によって一意に識別されることが保証されます。
外部キーは、別のテーブルの主キーを参照する MySQL テーブル内の列または列のグループです。これは、2 つのテーブル間の関係を確立し、テーブル間のデータの一貫性を確保するために使用されます。外部キー制約をテーブルに追加して、参照整合性を強制することができます。
これは例です -
リーリーこの例では、「user_id」列と「product_id」列は、それぞれ「users」テーブルと「products」テーブルの「id」列を参照する外部キーです。これにより、注文が有効なユーザーと関連付けられることが保証され、製品。###
MySQL のビューとは何ですか?これは例です -
リーリー
この例では、すべての注文のユーザー名、製品名、注文日を返す「user_orders」というビューを作成します。このビューは、「users」テーブルと「orders」テーブル間の JOIN 操作に基づいています。MySQL の INNER JOIN と LEFT JOIN の違いは何ですか?
これは例です -
「users」と「orders」という 2 つのテーブルがあるとします。 「users」テーブルにはユーザーに関する情報が含まれ、「orders」テーブルにはこれらのユーザーが行った注文に関する情報が含まれます。
すべてのユーザーとその対応する注文のリストを取得するには、LEFT JOIN −
を使用します。 リーリー
このクエリでは、注文があるかどうかに関係なく、すべてのユーザーが返され、存在する場合は対応する注文が返されます。注文したユーザーのリストを取得するには、INNER JOIN −
を使用します。 リーリー
このクエリは、注文を行ったユーザーと、そのユーザーに対応する注文のみを返します。MySQL のインデックスとは何ですか?
これが例です
リーリー
これにより、「products」テーブルの「product_name」列にインデックスが作成され、データベースが名前で製品をすばやく検索できるようになります。
CHAR和VARCHAR都是MySQL中用于存储字符数据的字符串数据类型。两者之间的主要区别在于,CHAR是固定长度的数据类型,而VARCHAR是可变长度的数据类型。
如果我们将一个列定义为CHAR(10),无论该列中存储的数据的长度如何,它始终会占用10个字节的存储空间。这意味着,如果我们在该列中存储字符串'hello',它将会被填充空格以占用10个字节的存储空间。
如果我们将一列定义为VARCHAR(10),它将只占用必要的存储空间来存储数据。这意味着如果我们在该列中存储字符串'hello',它将只占用5个字节的存储空间。
一般来说,对于长度固定的列(例如邮政编码),使用CHAR是一个好的实践,而对于长度可变的列(例如产品名称),使用VARCHAR。
子查询是在MySQL中嵌套在另一个查询中的查询。子查询可以用于检索将在主查询中使用的数据,或者根据条件过滤数据。
假设我们有两个表,'users'和'orders'。'users'表包含有关用户的信息,而'orders'表包含有关这些用户下的订单的信息。
要获取所有已下订单的用户列表,我们可以使用子查询 -
SELECT name FROM users WHERE id IN (SELECT user_id FROM orders);
这个查询首先执行子查询,该子查询从'orders'表中返回一个用户ID列表。然后,主查询使用IN运算符过滤'users'表,并返回下单的用户的姓名。
MySQL中的数据库事务是一系列作为单个工作单元执行的SQL语句。事务用于确保一组SQL语句以原子、一致、隔离和持久(ACID)的方式执行。
假设我们有一个名为'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方式执行。
以上がデータベース管理者向けの MySQL 面接で重要な 10 の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。