11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【MySQL】超初心者向けMySQL入門

Last updated at Posted at 2023-08-14

こんにちは。
本日はSQL初心者の方に向けて、基礎から簡単なコマンド操作までを解説していきます。

目次

1.用語解説
2.新しいDBの作成
3.テーブルの作成
4.レコードの作成
5.レコードの検索
6.レコードの並べ替え
7.最後に

1. 用語解説

はじめにDB関連の基礎的な用語を解説していきます。
聞き慣れないワードが出てきて、イメージしにくいこともあると思うので、
今回は韓国アイドルグループのSEVENTEENを例にして解説していきます。

  • SQL
     →データの操作や定義を行うためのDB言語

  • DB(データベース)
     →データの集まり。今回は事務所に例えて、「HYBE」というデータベースを作成します。

  • テーブル
     →データを保存しておくための「表」にあたるものです。今回はグループ自体を例えて、「SEVENTEEN」というテーブルを作成します。ひとつのDBの中には、複数のテーブルを作成することができます。

  • レコード
     →テーブルの「行」にあたるものです。例えばメンバー情報を保存しておくための「SEVENTEEN」という名前のテーブルに、「S.COUPS」「JEONGHAN」「JOSHUA」などのメンバー全員分のデータが保存されている例で考えてみましょう。この1件分のデータにあたる「行」がレコードです。

  • カラム
     →カラムは、テーブルの「列」にあたるものです。例えばメンバー情報を保存しておくための SEVENTEEN という名前のテーブルを作成すると、テーブルの中には、ひとりひとりのユーザーIDや名前、出身国、チーム、生年月日の項目を保存できるようになります。それぞれの項目にあたる「列」がカラムです。

早速、データベースから作成していきます。

2. 新しいDBの作成

まず「HYBE」というデータベースを作成します。

 create database データベース名;

で作成できます。

create database HYBE;

早速、先ほど作成したデータベースに切り替えます。

 use データベース名;

use HYBE;

3. テーブルの作成

続いてテーブルを作成します。

 create table テーブル名 (カラム名1 型 属性,カラム名2 型 属性,...);

create table SEVENTEEN (ID int primary key, NAME varchar(10), COUNTRY varchar(10), TEAM varchar(10), BIRTHDAY date);

例にあるint,varchar,dateはそれぞれ整数、可変長文字列、日付の型です。
PRIMARY KEYは主キー(重複しないユニークな値)であることを表します。
全部合わせると
「SEVENTEENという名前のテーブルを作ってください。カラムは主キーの数値型のID、可変長文字列型のNAMEとCOUNTRYとTEAM、日付型のBIRTHDAYです。」
となります。

4. レコードの作成

続いて作成したテーブルに実際にレコードを追加していきます。

 insert into テーブル名 (カラム名1, カラム名2, ...) values (データ1, データ2, ...);

insert into SEVENTEEN (ID, NAME, COUNTRY, TEAM, BIRTHDAY) values (1,"S.COUPS", "korea", "hiphop","1995-08-08");

insert into SEVENTEEN (ID, NAME, COUNTRY, TEAM, BIRTHDAY) values (2,"JEONGHAN", "korea", "vocal","1995-10-04");

データの作成にはinsert文を使います。今回の1つ目の例では
「SEVENTEENテーブルにIDが1、NAMEがS.COUPS、COUNTRYがkorea、TEAMがhiphop、BIRTHDAYが1995-08-08のレコードを作ってください。」
になります。
同様に、メンバー全員分のレコードを追加していきます。

+----+-----------+---------+------------+------------+
| ID | NAME      | COUNTRY | TEAM       | BIRTHDAY   |
+----+-----------+---------+------------+------------+
|  1 | S.COUPS   | korea   | hiphop     | 1995-08-08 |
|  2 | JEONGHAN  | korea   | vocal      | 1995-10-04 |
|  3 | JOSHUA    | usa     | vocal      | 1995-12-30 |
|  4 | JUN       | china   | performanc | 1996-06-10 |
|  5 | HOSHI     | korea   | performanc | 1996-06-15 |
|  6 | WONWOO    | korea   | hiphop     | 1996-07-17 |
|  7 | WOOZI     | korea   | vocal      | 1996-11-22 |
|  8 | THE8      | china   | performanc | 1997-11-07 |
|  9 | MINGYU    | korea   | hiphop     | 1997-04-06 |
| 10 | DK        | korea   | vocal      | 1997-02-18 |
| 11 | SEUNGKWAN | korea   | vocal      | 1998-01-16 |
| 12 | VERNON    | usa     | hiphop     | 1998-02-18 |
| 13 | DINO      | korea   | performanc | 1999-02-11 |
+----+-----------+---------+------------+------------+

5. レコードの検索

レコードの中から、特定の条件を満たすレコードだけを抽出して表示してみます。

 select カラム名1, カラム名2, ... from テーブル名 where 条件;

select NAME from SEVENTEEN where ID=1;

「SEVENTEENテーブルからIDが1のメンバー(レコード)の名前(NAME)を取り出してください」
という指示です。

+---------+
| NAME    |
+---------+
| S.COUPS |
+---------+

IDが1であるS.COUPSが取り出せました。

続いて、中国人メンバーのみを取り出してみます。

select NAME from SEVENTEEN where COUNTRY="china";

「SEVENTEENテーブルからCOUNTRYがchinaのメンバー(レコード)の名前(NAME)を取り出してください」
という指示です。

+------+
| NAME |
+------+
| JUN  |
| THE8 |
+------+

中国人メンバーのJUNとTHE8のみが取り出せました。

続いて、ヒップホップチームのメンバーのみを取り出してみます。

select NAME from SEVENTEEN where TEAM="hiphop";

「SEVENTEENテーブルからTEAMがhiphopのメンバー(レコード)の名前(NAME)を取り出してください」
という指示です。

+---------+
| NAME    |
+---------+
| S.COUPS |
| WONWOO  |
| MINGYU  |
| VERNON  |
+---------+

ヒップホップチームのメンバーである、S.COUPS,WONWOO,MINGYU,VERNONが取り出せました。

6. レコードの並べ替え

続いて、レコードを指定した順番に並び替えてみます。

 select カラム名1 , カラム名2 , ...from テーブル名 where 条件 order by カラム名 asc;

※ asc(デフォルト) ... 昇順(A→Z)

今回は、メンバーを年齢順に並べ替えます。

select * from SEVENTEEN order by BIRTHDAY asc;

「SEVENTEENテーブルからメンバー(レコード)を、BIRTHDAYのasc(昇順)で取り出してください」という指示です。
※「*」を使うと全カラム名を列挙したことと同等となります。

+----+-----------+---------+------------+------------+
| ID | NAME      | COUNTRY | TEAM       | BIRTHDAY   |
+----+-----------+---------+------------+------------+
|  1 | S.COUPS   | korea   | hiphop     | 1995-08-08 |
|  2 | JEONGHAN  | korea   | vocal      | 1995-10-04 |
|  3 | JOSHUA    | usa     | vocal      | 1995-12-30 |
|  4 | JUN       | china   | performanc | 1996-06-10 |
|  5 | HOSHI     | korea   | performanc | 1996-06-15 |
|  6 | WONWOO    | korea   | hiphop     | 1996-07-17 |
|  7 | WOOZI     | korea   | vocal      | 1996-11-22 |
| 10 | DK        | korea   | vocal      | 1997-02-18 |
|  9 | MINGYU    | korea   | hiphop     | 1997-04-06 |
|  8 | THE8      | china   | performanc | 1997-11-07 |
| 11 | SEUNGKWAN | korea   | vocal      | 1998-01-16 |
| 12 | VERNON    | usa     | hiphop     | 1998-02-18 |
| 13 | DINO      | korea   | performanc | 1999-02-11 |
+----+-----------+---------+------------+------------+

メンバーを年齢順に並べ替えることができました。

7. 最後に

いかがだったでしょうか?
今回はSQL初心者の方に向けて、基礎から簡単なコマンド操作をアイドルグループSEVENTEENに例えて解説しました。
SQLは実際に現場などでも使用する機会が多いので、少しでも参考になれば嬉しいです。

最後までお読みいただきありがとうございました。

11
11
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
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?