LoginSignup
1
1

More than 3 years have passed since last update.

MySQL業務でよく使うコマンド集

Posted at

業務でほぼ週に1度は使用SQL文を叩いているのでまとめようと思い、メモ代わりに共有できたらなと思います。

データベース管理ソフト

データベースの管理はこれらの管理ソフトを使用するといいかと思います。
MacOSとWindowsで異なるので注意してください。

MacOSの方

Squel Proダウンロードページ

Windowsの方

HeidiSQLのダウンロードページ

コマンド集

カラムの合計値

SUM

SUM関数を使用することで、列の値の合計値を求めることができます。

mysql> SELECT * FROM test_table2;
+------+-------+
| name | score |
+------+-------+
| 太郎 |    80 |
| 次郎 |    70 |
| 三郎 |    92 |
| 四郎 |    88 |
| 五郎 |    76 |
| 太郎 |    75 |
| 次郎 |    98 |
| 三郎 |   100 |
| 四郎 |    80 |
| 五郎 |    60 |
+------+-------+
10 rows in set (0.00 sec)

mysql> SELECT SUM( score ) FROM test_table2;
+--------------+
| SUM( score ) |
+--------------+
|          819 |
+--------------+
1 row in set (0.01 sec)

条件検索の設定

WHERE

SELECT文では指定したテーブル(FROM句)に対して、検索条件(WHERE句)にマッチするレコード(行)の指定フィールド(列)を表示します。SELECTに続くのは列名、と覚えましょう。

mysql> SELECT title, price FROM book_list
    -> WHERE
    -> author = 'auth_A';
+--------+-------+
| title  | price |
+--------+-------+
| book_A |  1500 |
| book_G |   400 |
+--------+-------+

テーブル結合

DBからデータを取り出す際、複数テーブルからデータを検索して取得するといったケースも多々あるかと思います。

内部結合と外部結合

まず、2つのテーブルを結合する方法として、大きく内部結合と外部結合というものが存在しています。

内部結合は、それぞれのテーブルの指定したカラムの値が一致するものだけを結合します。

外部結合は、内部結合のようにそれぞれのテーブルの指定したカラムの値が一致するものを結合するのに加え、どちらかのテーブルにしか存在しないものに関しても取得します。

INNER JOIN(内部結合)

JOINした2つのテーブルを比較し、結合条件に一致した行だけを返すことができます。

mysql> SELECT purchase.id_g, name FROM goods 
    -> INNER JOIN purchase ON purchase.id_g=goods.id_g;
+------+--------------------+
| id_g | name               |
+------+--------------------+
|    1 | 饅頭               |
|    1 | 饅頭               |
|    1 | 饅頭               |
|    2 | みたらし団子         |
|    2 | みたらし団子         |
|    4 | 抹茶団子            |
+------+--------------------+

LEFT JOIN(外部結合)

JOINの左側のテーブルが結合条件に一致しなくてもレコードを返すことができます。

mysql> SELECT purchase.id_g,name FROM goods 
    -> LEFT OUTER JOIN purchase ON purchase.id_g=goods.id_g;
+------+--------------------+
| id_g | name               |
+------+--------------------+
|    1 | 饅頭               |
|    1 | 饅頭               |
|    4 | 抹茶団子           |
|    2 | みたらし団子       |
|    1 | 饅頭               |
|    2 | みたらし団子       |
| NULL | 八つ橋             |
+------+--------------------+

RIGHT JOIN(外部結合)

JOINの右側のテーブルが結合条件に一致しなくてもレコードを返すことができます。

mysql> SELECT purchase.id_g,name FROM goods 
    -> RIGHT JOIN purchase ON purchase.id_g=goods.id_g;
+------+--------------------+
| id_g | name               |
+------+--------------------+
|    1 | 饅頭               |
|    1 | 饅頭               |
|    1 | 饅頭               |
|    2 | みたらし団子       |
|    2 | みたらし団子       |
|    4 | 抹茶団子           |
+------+--------------------+

データ結合

UNION

複数のSELECT文をまとめることが出来ます。

mysql> SELECT 1  AS NUM
    -> UNION
    -> SELECT 2 AS NUM;

+-----+
| NUM |
+-----+
|   1 |
|   2 |
+-----+
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1