MySQL SELECT ステートメントと例

SELECTクエリとは何ですか MySQL?

SELECT QUERY は、 MySQL データベース。データベースには次のデータが保存されます later 検索。の目的 MySQL [選択] を選択すると、データベース テーブルから、指定された基準に一致する 1 つ以上の行が返されます。選択クエリは、PHP、Ruby などのスクリプト言語で使用することも、コマンド プロンプト経由で実行することもできます。

SELECT クエリ MySQL

SQL SELECT ステートメントの構文

これは最も頻繁に使用される SQL コマンドであり、次のようなものがあります。wing 一般的な構文

SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)]  [HAVING condition] ORDER BY fieldName(s)

こちら

  • SELECT は、データを取得することをデータベースに知らせる SQL キーワードです。
  • [区別 | 全て] SQL SELECT ステートメントから返される結果を微調整するために使用できるオプションのキーワードです。 何も指定しない場合は、ALL がデフォルトとして想定されます。
  • {*| [フィールド式 [AS 新しい名前]} 少なくとも 1 つの部分を指定する必要があります。「*」は指定されたテーブル名のすべてのフィールドを選択します。fieldExpression は、指定されたフィールドに対して加算などの計算を実行します。 numbers または 2 つの文字列フィールドを 1 つにまとめます。
  • FROM tableName は必須であり、少なくとも XNUMX つのテーブルを含める必要があります。複数のテーブルはカンマを使用して区切るか、JOIN キーワードを使用して結合する必要があります。
  • WHERE 条件はオプションであり、クエリから返される結果セットの条件を指定するために使用できます。
  • グループ化 同じフィールド値を持つレコードをまとめるために使用されます。
  • HAVING 条件は、GROUP BY キーワードを使用して作業するときに基準を指定するために使用されます。
  • ORDER BY 結果セットのソート順を指定するために使用されます。

*

星印は、テーブル内のすべての列を選択するために使用されます。 単純な SELECT ステートメントの例を次に示します。

SELECT * FROM `members`;

上記のステートメントは、members テーブルからすべてのフィールドを選択します。 セミコロンはステートメントを終了します。 必須ではありませんが、そのように発言を終えることは良い習慣であると考えられています。

実用例

クリックしてダウンロードする 実際の例に使用される myflix DB。

.sql ファイルをインポートする方法を学習できます。 MySQL ワークベンチ

例は次のように実行されます。wing XNUMXつのテーブル

表1: メンバー テーブル

会員番号 フルネーム 性別 生年月日 実在住所 郵便番号 連絡先番号 email
1 ジャネット・ジョーンズ 女性 21-07-1980 第一街区画 No 4 専用バッグ 0759 253 542 janetjones@yagoo.cm
2 ジャネット・スミス・ジョーンズ 女性 23-06-1980 メルローズ 123 NULL NULL jj@fstreet.com
3 ロバート・フィル 男性 12-07-1989 サード ストリート 3 NULL 12345 rm@tstreet.com
4 グロリア・ウィリアムズ 女性 14-02-1984 セカンドストリート2 NULL NULL NULL

表2: 映画 テーブル

映画ID タイトル ディレクター リリース年 カテゴリ ID
1 パイレーツ・オブ・カリビアン 4 ロブ·マーシャル 2011 1
2 サラ・マーシャルを忘れる ニコラス・ストーラー 2008 2
3 X-メン NULL 2008 NULL
4 コードネームブラック エドガー・ジムズ 2010 NULL
5 ダディーズ・リトル・ガールズ NULL 2007 8
6 天使と悪魔 NULL 2007 6
7 ダヴィンチコード NULL 2007 6
9 Honey ムーナー ジョン・シュルツ 2005 8
16 67% 有罪 NULL 2012 NULL

メンバーリストの取得

データベースからすべての登録されたライブラリ メンバーのリストを取得したいとします。これを行うには、以下に示すスクリプトを使用します。

SELECT * FROM `members`;

上記のスクリプトを実行すると、 MySQL ワークベンチは以下を生成しますwing 結果。

会員番号 フルネーム 性別 生年月日 実在住所 郵便番号 連絡先番号 email
1 ジャネット・ジョーンズ 女性 21-07-1980 第一街区画 No 4 専用バッグ 0759 253 542 janetjones@yagoo.cm
2 ジャネット・スミス・ジョーンズ 女性 23-06-1980 メルローズ 123 NULL NULL jj@fstreet.com
3 ロバート・フィル 男性 12-07-1989 サード ストリート 3 NULL 12345 rm@tstreet.com
4 グロリア・ウィリアムズ 女性 14-02-1984 セカンドストリート2 NULL NULL NULL

上記のクエリは、members テーブルからすべての行と列を返しました。

full_names、gender、physical_address、および e のみを取得することにのみ関心があるとします。mail フィールドのみ。 次のことwing スクリプトはこれを達成するのに役立ちます。

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

上記のスクリプトを実行すると、 MySQL ワークベンチは以下を生成しますwing 結果。

フルネーム 性別 実在住所 email
ジャネット・ジョーンズ 女性 第一街区画 No 4 janetjones@yagoo.cm
ジャネット・スミス・ジョーンズ 女性 メルローズ 123 jj@fstreet.com
ロバート・フィル 男性 サード ストリート 3 rm@tstreet.com
グロリア・ウィリアムズ 女性 セカンドストリート2 NULL

映画リストの取得

上記の説明で、SELECT ステートメントで使用される式について言及したことを思い出してください。データベースから映画のリストを取得したいとします。映画のタイトルと映画監督の名前を 1 つのフィールドに含めたいと考えています。映画監督の名前が入っているはずです brackets。映画が公開された年も取得したいと思います。次のことwing スクリプトはそれを行うのに役立ちます。

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

こちら

  • コンキャット () MySQL 関数を使用して列の値を結合します。
  • 行「Concat (`title`, ' (', `director`, ')') はタイトルを取得し、開き括弧を追加し、続いてディレクターの名前を追加し、次に閉じ括弧を追加します。

Concat () 関数では、文字列部分はカンマを使用して区切られます。

上記のスクリプトを実行すると、 MySQL ワークベンチは以下を生成しますwing 結果セット。

Concat(`タイトル`, ' (', `ディレクター`, ')') リリース年
パイレーツ・オブ・カリビアン 4 (ロブ・マーシャル) 2011
サラ・マーシャルを忘れる(ニコラス・ストーラー) 2008
NULL 2008
コードネーム ブラック (エドガー・ジムズ) 2010
NULL 2007
NULL 2007
NULL 2007
Honey ムーナーズ(ジョン・シュルツ) 2005
NULL 2012

エイリアスフィールド名

上記の例では、結果のフィールド名として連結コードが返されました。 結果セットでよりわかりやすいフィールド名を使用したいとします。 これを実現するには、列のエイリアス名を使用します。 次のことwing 列の別名に対する基本的な構文です。

SELECT `column_name|value|expression` [AS] `alias_name`;

こちら

  • 「SELECT ` 列名|値|式 `」 は、列名、値、または式を指定できる通常の SELECT ステートメントです。
  • "[として]" は、返される式、値、またはフィールド名を示す別名の前のオプションのキーワードです。
  • 「`エイリアス名`」 は、結果セットでフィールド名として返すエイリアス名です。

より意味のある列名を使用した上記のクエリ

SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;

次のことを理解しましたwing 結果

コンキャット リリース年
パイレーツ・オブ・カリビアン 4 (ロブ・マーシャル) 2011
サラ・マーシャルを忘れる(ニコラス・ストーラー) 2008
NULL 2008
コードネーム ブラック (エドガー・ジムズ) 2010
NULL 2007
NULL 2007
NULL 2007
Honey ムーナーズ(ジョン・シュルツ) 2005
NULL 2012

メンバーリストの取得 showing 生まれた年

すべてのメンバーのリストを取得したいとします。wing 会員番号、フルネーム、誕生年を入力した場合、LEFT 文字列関数を使用して生年月日フィールドから誕生年を抽出できます。 以下に示すスクリプトは、これを行うのに役立ちます。

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

こちら

  • 「LEFT(`生年月日`,4)」   LEFT文字列関数 パラメータとして生年月日を受け入れ、左から 4 文字のみを返します。
  • 「「誕生年」として」列の別名 それは結果として返されます。 注意してください AS キーワードはオプションです省略してもクエリは引き続き機能します。

上記のクエリを実行すると、 MySQL myflixdb に対してワークベンチを実行すると、以下に示す結果が得られます。

会員番号 フルネーム 生年
1 ジャネット・ジョーンズ 1980
2 ジャネット・スミス・ジョーンズ 1980
3 ロバート・フィル 1989
4 グロリア・ウィリアムズ 1984

SQLを使用する MySQL ワークベンチ

これから使用します MySQL ワークベンチを使用して、カテゴリ テーブルのすべてのフィールド名を表示するスクリプトを生成します。

1. カテゴリテーブルを右クリックします。 「行を選択 – 1000 を制限」をクリックします。

2. MySQL ワークベンチは SQL クエリを自動的に作成し、エディターに貼り付けます。

3. クエリ結果が表示されます

SQLを使用する MySQL ワークベンチ

SELECT ステートメントを自分で書いたわけではないことに注意してください。 MySQL ワークベンチがそれを生成してくれました。

次のような場合に SELECT SQL コマンドを使用する理由 MySQL 作業台?

さて、次のようなツールを使用するだけでデータベースのデータをクエリできるのに、なぜ SQL SELECT コマンドを学習してデータベースからデータをクエリする必要があるのか​​と考えているかもしれません。 MySQL ワークベンチでは、SQL 言語の知識がなくても同じ結果が得られます。もちろんそれも可能ですが、 SELECTコマンドの使い方を学ぶ あなたにもっと与える 柔軟性 および コントロール あなたの上に SQL SELECT ステートメント.

MySQL 作業台は「」に分類されます。例によるクエリQBEツール。 これは、SQL ステートメントをより速く生成してユーザーの生産性を向上させることを目的としています。

SQL SELECT コマンドを学習すると、以下を作成できるようになります。 コムplex クエリ などの Query by Example ユーティリティを使用して簡単に生成できないもの MySQL 作業台。

生産性を向上させるためにできることは、 を使用してコードを生成します MySQL 作業台 その後 カスタマイズ それに 要件を満たす。 これは、SQL ステートメントがどのように機能するかを理解している場合にのみ発生します。

MySQL SELECT ステートメントと例

まとめ

  • SQL SELECT キーワードは、データベースのデータをクエリするために使用され、最も一般的に使用されるコマンドです。
  • 最も単純な形式の構文は「SELECT * FROM tableName;」です。
  • 式は select ステートメントでも使用できます。 例「売上から数量+価格を選択」
  • SQL SELECT コマンドには、WHERE、GROUP BY、HAVING、ORDER BY などの他のオプションのパラメーターを含めることもできます。それらは議論されるでしょう later.
  • MySQL ワークベンチは、SQL ステートメントの開発、実行、同じウィンドウ内での出力結果の生成に役立ちます。