MySQL SELECT ステートメントと例
SELECTクエリとは何ですか MySQL?
SELECT QUERY は、 MySQL データベース。データベースは、後で取り出すためにデータを保存します。 MySQL [選択] を選択すると、データベース テーブルから、指定された基準に一致する 1 つ以上の行が返されます。選択クエリは、PHP、Ruby などのスクリプト言語で使用することも、コマンド プロンプト経由で実行することもできます。
SQL SELECT ステートメントの構文
これは最も頻繁に使用されるSQLコマンドであり、次のような一般的な構文があります。
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 は指定されたフィールドに対して数値の追加や 2 つの文字列フィールドを 1 つにまとめるなどの計算を実行します。
- FROM tableName は必須であり、少なくとも XNUMX つのテーブルを含める必要があります。複数のテーブルはカンマを使用して区切るか、JOIN キーワードを使用して結合する必要があります。
- WHERE 条件はオプションであり、クエリから返される結果セットの条件を指定するために使用できます。
- グループ化 同じフィールド値を持つレコードをまとめるために使用されます。
- HAVING 条件は、GROUP BY キーワードを使用して作業するときに基準を指定するために使用されます。
- ORDER BY 結果セットのソート順を指定するために使用されます。
*
星印は、テーブル内のすべての列を選択するために使用されます。 単純な SELECT ステートメントの例を次に示します。
SELECT * FROM `members`;
上記のステートメントは、members テーブルからすべてのフィールドを選択します。 セミコロンはステートメントを終了します。 必須ではありませんが、そのように発言を終えることは良い習慣であると考えられています。
実用例
クリックしてダウンロードする 実際の例に使用される myflix DB。
.sql ファイルをインポートする方法を学習できます。 MySQL ワークベンチ
例は次の2つのテーブルで実行されます
表1: メンバー テーブル
会員番号 | フルネーム | 性別 | 生年月日 | 実在住所 | 郵便番号 | 連絡先番号 | |
---|---|---|---|---|---|---|---|
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 ワークベンチは次の結果を生成します。
会員番号 | フルネーム | 性別 | 生年月日 | 実在住所 | 郵便番号 | 連絡先番号 | |
---|---|---|---|---|---|---|---|
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、email の各フィールドのみを取得することに関心があるとします。次のスクリプトは、これを実現するのに役立ちます。
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
上記のスクリプトを実行すると、 MySQL ワークベンチは次の結果を生成します。
フルネーム | 性別 | 実在住所 | |
---|---|---|---|
ジャネット・ジョーンズ | 女性 | 第一街区画 No 4 | janetjones@yagoo.cm |
ジャネット・スミス・ジョーンズ | 女性 | メルローズ 123 | jj@fstreet.com |
ロバート・フィル | 男性不妊治療 | サード ストリート 3 | rm@tstreet.com |
グロリア・ウィリアムズ | 女性 | セカンドストリート2 | NULL |
映画リストの取得
上の説明で、SELECT ステートメントで使用されている式について言及したことを思い出してください。データベースから映画のリストを取得するとします。映画のタイトルと映画監督の名前を 1 つのフィールドに入力します。映画監督の名前は括弧で囲みます。また、映画が公開された年も取得します。次のスクリプトは、これを実行する場合に役立ちます。
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
こちら
- コンキャット () MySQL 関数を使用して列の値を結合します。
- 行「Concat (`title`, ' (', `director`, ')') はタイトルを取得し、開き括弧を追加し、続いてディレクターの名前を追加し、次に閉じ括弧を追加します。
Concat () 関数では、文字列部分はカンマを使用して区切られます。
上記のスクリプトを実行すると、 MySQL ワークベンチは次の結果セットを生成します。
Concat(`タイトル`, ' (', `ディレクター`, ')') | リリース年 |
---|---|
パイレーツ・オブ・カリビアン 4 (ロブ・マーシャル) | 2011 |
サラ・マーシャルを忘れる(ニコラス・ストーラー) | 2008 |
NULL | 2008 |
コードネーム ブラック (エドガー・ジムズ) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey ムーナーズ(ジョン・シュルツ) | 2005 |
NULL | 2012 |
エイリアスフィールド名
上記の例では、結果のフィールド名として連結コードを返しました。結果セットでより説明的なフィールド名を使用したいとします。そのためには、列の別名を使用します。以下は、列の別名の基本的な構文です。
SELECT `column_name|value|expression` [AS] `alias_name`;
こちら
- 「SELECT ` 列名|値|式 `」 は、列名、値、または式を指定できる通常の SELECT ステートメントです。
- "[として]" は、返される式、値、またはフィールド名を示す別名の前のオプションのキーワードです。
- 「`エイリアス名`」 は、結果セットでフィールド名として返すエイリアス名です。
より意味のある列名を使用した上記のクエリ
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
次のような結果が得られます
コンキャット | リリース年 |
---|---|
パイレーツ・オブ・カリビアン 4 (ロブ・マーシャル) | 2011 |
サラ・マーシャルを忘れる(ニコラス・ストーラー) | 2008 |
NULL | 2008 |
コードネーム ブラック (エドガー・ジムズ) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey ムーナーズ(ジョン・シュルツ) | 2005 |
NULL | 2012 |
生年月日を表示したメンバーリストを取得する
会員番号、氏名、生年月日を示す全会員のリストを取得したい場合、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. クエリ結果が表示されます
SELECT ステートメントを自分で書いたわけではないことに注意してください。 MySQL ワークベンチがそれを生成してくれました。
次のような場合に SELECT SQL コマンドを使用する理由 MySQL 作業台?
さて、次のようなツールを使用するだけでデータベースのデータをクエリできるのに、なぜ SQL SELECT コマンドを学習してデータベースからデータをクエリする必要があるのかと考えているかもしれません。 MySQL ワークベンチでは、SQL 言語の知識がなくても同じ結果が得られます。もちろんそれも可能ですが、 SELECTコマンドの使い方を学ぶ あなたにもっと与える 柔軟性 と コントロール あなたの上に SQL SELECT ステートメント.
MySQL 作業台は「」に分類されます。例によるクエリQBEツール。 これは、SQL ステートメントをより速く生成してユーザーの生産性を向上させることを目的としています。
SQL SELECT コマンドを学習すると、以下を作成できるようになります。 複雑なクエリ などの Query by Example ユーティリティを使用して簡単に生成できないもの MySQL 作業台。
生産性を向上させるためにできることは、 を使用してコードを生成します MySQL 作業台 その後 カスタマイズ それに 要件を満たす。 これは、SQL ステートメントがどのように機能するかを理解している場合にのみ発生します。
まとめ
- SQL SELECT キーワードは、データベースのデータをクエリするために使用され、最も一般的に使用されるコマンドです。
- 最も単純な形式の構文は「SELECT * FROM tableName;」です。
- 式は select ステートメントでも使用できます。 例「売上から数量+価格を選択」
- SQL SELECT コマンドには、WHERE、GROUP BY、HAVING、ORDER BY などの他のオプション パラメータも指定できます。これらについては後で説明します。
- MySQL ワークベンチは、SQL ステートメントの開発、実行、同じウィンドウ内での出力結果の生成に役立ちます。