クラウドサーバー上のMySQLとMariaDBで基本的なクエリを実行する方法
MySQLとMariaDBとは何ですか?
MySQLとMariaDBは、リレーショナルデータベース管理システムです。 これらのツールをVPSサーバーで使用して、さまざまなプログラムからのデータを管理できます。 どちらもSQLクエリ言語の形式を実装しており、どちらもクラウドサーバーで使用できます。
このガイドでは、さまざまな検索条件を指定してデータベースから情報をクエリする方法について説明します。 これは、データベースから柔軟な方法で必要なデータを取得するのに役立ちます。
このガイドでは、Ubuntu 12.04クラウドサーバーでMySQLを使用しますが、関連する手順は、最新のLinuxディストリビューションのMySQLまたはMariaDBのいずれかで機能します。
MySQLとMariaDBから情報をクエリする方法
次の構文を使用して、データベースから情報を取得するようにデータベースソフトウェアに指示します。
SELECT selection_fields FROM data_source WHERE selection_criteria_is_met;
MySQLおよびMariaDBでクエリするデータソースの選択
デフォルトの「mysql」データベースを使用して、クエリの形成を練習します。
USE mysql;
Database changed
「mysql」データベース内のテーブルを表示して、クエリできるデータソースのアイデアを取得します。
SHOW TABLES;
+---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | host | . . . . . .
UbuntuのデフォルトのMySQLインストールでは、このコマンドは24の結果を返します。
結果をクエリする「ユーザー」テーブルを選択しましょう。 選択できるカテゴリを把握するには、テーブルの列ヘッダーを表示します。
SHOW COLUMNS FROM user;
+------------------------+-----------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+---------+-------+ | Host | char(60) | NO | PRI | | | | User | char(16) | NO | PRI | | | | Password | char(41) | NO | | | | | Select_priv | enum('N','Y') | NO | | N | | . . . . . .
「フィールド」列の値は、「ユーザー」テーブルの列見出しです。
MySQLとMariaDBで基本的なクエリを作成する方法
ユーザーに関する基本的な情報をいくつか選択しましょう。
SELECT user,password,host FROM user;
+------------------+-------------------------------------------+-----------+ | user | password | host | +------------------+-------------------------------------------+-----------+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | localhost | | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | 127.0.0.1 | | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | ::1 | | debian-sys-maint | *9AE1BDEEBCD7F85D6304C3FB18146904CE3496F6 | localhost | +------------------+-------------------------------------------+-----------+ 4 rows in set (0.00 sec)
選択した選択フィールドは、「ユーザー」テーブルの3つの列です。 さまざまなフィールドをコンマで区切っていることに注目してください。
要求する各列は、テーブル内のすべてのレコードから順番に返されます。
MySQLおよびMariaDBクエリでワイルドカードを使用する方法
前の例では、優れたデータセットが返されました。 この構文は、特定の既知の基準に関連するすべてのデータを返したい場合に役立ちます。
SQLクエリ言語を使用すると、より柔軟な検索が可能になります。 「user」テーブルからすべてを返したい場合は、任意の値に一致するアスタリスク(*)ワイルドカードを使用できます。
SELECT * FROM user;
結果は少し扱いにくいので、ここには含まれません。 このコマンドは、テーブル内のすべてのレコード(行)のすべての列のすべての値を提供します。
MySQLとMariaDBで結果をフィルタリングする方法
特定の条件を満たす結果のみを返したい場合は、「where」フィルターを使用して結果をフィルター処理できます。
たとえば、ユーザーが「debian-sys-maint」であるテーブルデータのみを返したい場合は、次のようにクエリをフィルタリングできます。
SELECT user,password,host FROM user WHERE user = "debian-sys-maint";
+------------------+-------------------------------------------+-----------+ | user | password | host | +------------------+-------------------------------------------+-----------+ | debian-sys-maint | *9AE1BDEEBCD7F85D6304C3FB18146904CE3496F6 | localhost | +------------------+-------------------------------------------+-----------+ 1 row in set (0.00 sec)
同様に、どのユーザーが「localhost」ホストに接続されているかを確認できます。
SELECT user,password,host FROM user WHERE host = "localhost";
+------------------+-------------------------------------------+-----------+ | user | password | host | +------------------+-------------------------------------------+-----------+ | debian-sys-maint | *9AE1BDEEBCD7F85D6304C3FB18146904CE3496F6 | localhost | | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | localhost | +------------------+-------------------------------------------+-----------+ 2 rows in set (0.00 sec)
複数の用語でフィルタリングする場合は、条件を「and」で区切ることができます。
SELECT user,password,host FROM user WHERE host = "localhost" AND user = "root";
+------+-------------------------------------------+-----------+ | user | password | host | +------+-------------------------------------------+-----------+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | localhost | +------+-------------------------------------------+-----------+ 1 row in set (0.00 sec)
Like比較演算子の使用方法
「where」フィルターでは、パーセント記号(%)が、アスタリスクの代わりに「すべて」のワイルドカードとして使用されます。 0個以上の文字に一致します。
この知識を使用して、「like」比較演算子を使用できます。これは、「where」でフィルタリングする別の方法です。
「like」演算子は、特定のフィールドの値を右側の式と比較します。 たとえば、「d」で始まるユーザーがいる行を選択するには、次のクエリを実行できます。
SELECT user,password,host FROM user WHERE user LIKE "d%";
+------------------+-------------------------------------------+-----------+ | user | password | host | +------------------+-------------------------------------------+-----------+ | debian-sys-maint | *9AE1BDEEBCD7F85D6304C3FB18146904CE3496F6 | localhost | +------------------+-------------------------------------------+-----------+ 1 row in set (0.00 sec)
等式比較の場合と同じように、「and」または「or」を使用して「like」比較を指定できます。
SELECT user,password,host FROM user WHERE user LIKE "d%" OR user LIKE "r%";
+------------------+-------------------------------------------+-----------+ | user | password | host | +------------------+-------------------------------------------+-----------+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | localhost | | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | 127.0.0.1 | | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | ::1 | | debian-sys-maint | *9AE1BDEEBCD7F85D6304C3FB18146904CE3496F6 | localhost | +------------------+-------------------------------------------+-----------+ 4 rows in set (0.00 sec)
結論
これで、データベースからデータを取得する方法の基本を理解できたはずです。
まだ取り上げていないクエリは他にもたくさんありますが、前述のリストは、MySQLとMariaDBで情報検索を実行する方法の良いスタートです。
このリンクをクリックすると、MySQLとMariaDBでデータベースを作成および管理する方法と、MySQLとMariaDBでテーブルを作成する方法について学ぶことができます。