このチュートリアルは、MySQLを使用した基本的なSQLクエリの学習シリーズの一部です。このチュートリアルでは、MySQLのテーブルから行をフェッチしたりデータを読み取ったりするためのSQLクエリについて説明します。
クエリの選択
コマンドSELECT テーブルから行を読み取るために使用できます。データベースにリモートでログインしている場合は、テーブルから行を読み取るために、テーブルに対するSELECT権限も必要になります。
# SELECT - Syntax
SELECT [ ALL | DISTINCT | DISTINCTROW ] <select expression> FROM table_name;
# SELECT - Syntax - All Columns
SELECT [ ALL | DISTINCT | DISTINCTROW ] * FROM table_name;
# SELECT - Syntax - Selective Columns
SELECT [ ALL | DISTINCT | DISTINCTROW ] column_1,column_2,... FROM table_name;
# SELECT - Syntax - Filter results using WHERE
SELECT [ ALL | DISTINCT | DISTINCTROW ] column_1,column_2,... FROM table_name WHERE <single or multiple filter conditions>;
クエリの説明
MySQLコマンドSELECT 指定されたテーブル名から行またはデータを読み取るために使用できます。ここで、テーブルの選択式と名前は必須です。
キーワードALLまたはDISTINCTまたはDISTINCTROWの使用はオプションです。 ALLが指定されていない場合のデフォルトのキーワードです。
select式も指定する必要があります 指定されたテーブルからデータを取得するため。 *のいずれかを使用できます またはカンマで区切られた列名 テーブルからクエリ結果を取得します。キーワードASを使用して、列名のエイリアスを指定することもできます。 。
このシリーズの次のチュートリアルでは、場所を使用して結果をフィルタリング、並べ替え、またはグループ化するための選択クエリの高度な使用法について説明します。 、いいね 、注文者 、および GROUP BY 条項。
例
このセクションでは、SELECTコマンドを使用してテーブルからデータを読み取る例を示します。以下のクエリを使用して、ユーザーデータを格納するためのid、名、および姓の列を持つユーザーテーブルを作成します。
# Create the User Table
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`first_name` varchar(45),
`last_name` varchar(45)
);
下記のクエリを使用して、ユーザーテーブルにデータを挿入できます。
# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
( 1, 'John', 'Smith' ),
( 2, 'Rick', 'Jones' ),
( 3, 'Catherine', 'Ponting' ),
( 4, 'Harsh', 'Upadhyay' ),
( 5, 'Tajwinder', 'Singh' );
上記のクエリは、5人の異なるユーザーを表すために、ID、名、および姓を持つ5つの行をテーブルに挿入します。
次に、userテーブルに挿入されたデータを読み取ります。以下に示すように、SELECTコマンドを使用して実行できます。
# Read all the columns and rows
SELECT * FROM `user`;
# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay
5 Tajwinder Singh
# Read selective columns
SELECT `first_name`, `last_name` FROM `user`;
# Result
John Smith
Rick Jones
Catherine Ponting
Harsh Upadhyay
Tajwinder Singh
最初のクエリではクエリ結果のすべての列が表示されますが、2番目のクエリでは提供された列の行データのみが表示されます。
テーブルの行数が50または100より大きい場合は、LIMITまたはOFFSETを使用して制限されたデータを読み取ることをお勧めします。
# Read limited rows>
SELECT * FROM `user` LIMIT 2;
# Result
1 John Smith
2 Rick Jones
# Read limited rows using offset
SELECT * FROM `user` LIMIT 3, 2;
# Result
4 Harsh Upadhyay
5 Tajwinder Singh
キーワードLIMITを使用して、オフセット値と制限値を指定することにより、制限された行をフェッチできます。上記の例では、最初のクエリが最初の2行を読み取ります。 2番目のクエリも、オフセット値を3に指定することにより、4行目から2行を読み取ります。
これが、MySQLテーブルに格納されているデータを読み取る方法です。