8
17

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 3 years have passed since last update.

[MySQL]MySQLコマンド入門

Last updated at Posted at 2020-07-17

なんで書いたの?

自分の勉強のために書きました。
MySQLコマンド使うたびに調べてる状態なので、記事にしとこと思って書きました。

環境

  • ローカルにmysqlを入れてやってます
  • MySQL8.0
  • MySQLWorkbench <- これはなくてもok

バージョンが何か調べてみる。
mysqlコマンドを入力して確認してみます。コマンドが使えない人は,mysqlをインストールしましょう。

$ mysql -V
mysql  Ver 8.0.19 for osx10.15 on x86_64 (Homebrew)

対象読者

  • MySQLコマンドわからないって人

データベースを作成する

ログインする

ログインしようとするとパスワードが求められるので入力します。今回はrootでやっていきます。

$ mysql -u root -p
password:

~省略~

mysql >

データベースを追加する

データベースを追加する前に一度作ってあるデータベースを確認します。もしすでに同じ名前のデータベースが登録されていたら、already exists(もう作ってあるよ!!作れない!!)といわれてしまいます。


mysql > SHOW databases;

+-------------+
| Databases   |
+-------------+
| hogehoge_db |
| foobar_db   |
+-------------+

こんな感じでデータベースの存在を確認出来ます。

確認出来たのでデータベースを追加します。
ポケモンのデータベースを作ります。


mysql > CREATE database pokemon_db;

きちんと作成されたか確認します。


mysql > SHOW databases;

使うデータベースを指定します。


mysql > USE pokemon_db;

これで今後、テーブルを作ったり,データを投入していくと選択したデータベース対して処理が行われます。

テーブルを作る

今回はこんなテーブルを作ります。

カラム名
ID 整数
ニックネーム 文字列
タイプ 文字列
レベル 整数
パートナー 文字列

テーブルを作っていきます。作るためのコマンドの書き方


mysql >  CREATE TABLE テーブル名(カラム名 データ型, カラム名 データ型)

てことで、ポケモンテーブルを作ります。

mysql > CREATE TABLE pokemon(id int, nickname varchar(10), type varchar(10), level int, partner varchar(10))

作成できたら確認します


mysql > show tables;

MySQLWorkbenchで確認してみます。

スクリーンショット 2020-07-17 18.01.34.png

まだデータを投入していないので表は空になっています。

テストデータを生成する

これからテストデータを入れていきます。
とりあえず、好きなポケモンを10匹を投入します。

テーブルにデータを投入する際はINSERT文を使用して投入していきます。

書き方


INSERT INTO テーブル名 VALUES (id, ニックネーム, タイプ, レベル, パートナー)

いったん一つデータを入れます。やっぱりピカチュウを入れたいです。好きなので。


mysql > INSERT INTO pokemon VALUES (1, 'ピカチュウ', 'でんき' , 39, 'サトシ');
スクリーンショット 2020-07-17 18.24.24.png

mysql > INSERT INTO pokemon VALUES
	(2, 'ゼニガメ', 'みず' , 5, 'サトシ')
 ,(3, 'ヒトカゲ', 'ほのお', 5, 'サトシ')
 ,(4, 'フシギダネ', 'くさ', 5, 'サトシ')
スクリーンショット 2020-07-17 18.35.44.png

このままだとサトシのポケモンばかりになってしまうので、カスミやタケシのポケモンも追加します。


mysql > INSERT INTO pokemon VALUES
	(5, 'イワーク', 'いわ' , 14, 'タケシ')
 ,(6, 'イシツブテ', 'いわ', 8, 'タケシ')
 ,(7, 'スターミー', 'みず', 6, 'カスミ')
 ,(8, 'コダック', 'みず', 10, 'カスミ')
 ,(9, 'コラッタ', 'ノーマル', 3, 'やせい')
 ,(10, 'キャタピー', 'くさ', 2, 'やせい')
スクリーンショット 2020-07-17 18.37.11.png

これで10体登録出来ました。
誰か効率の良いデータ投入の仕方がわかるかた教えていただけると助かります。

抽出する

欲しいデータを取れるようになるのを目指します。

基本的な書き方


SELECT カラム名 FROM テーブル WHERE 条件文;

ちなみに*で全てを指定出来ます。

  1. 全部のポケモンの名前が欲しい

mysql > SELECT nickname FROM pokemon;

+-----------------+
| nickname        |
+-----------------+
| ピカチュウ      |
| ゼニガメ        |
| ヒトカゲ        |
| フシギダネ      |
| イワーク        |
| イシツブテ      |
| スターミー      |
| コダック        |
| コラッタ        |
| キャタピー      |
+-----------------+
  1. タイプがみずタイプのみのポケモンが欲しい

WHERE句で条件を指定出来ます。今回はタイプがみずタイプのポケモンが欲しいので以下のようにtype="みず"で条件を指定しています。


mysql > SELECT * FROM pokemon WHERE type="みず";

+------+-----------------+--------+-------+-----------+
| id   | nickname        | type   | level | partner   |
+------+-----------------+--------+-------+-----------+
|    2 | ゼニガメ        | みず   |     5 | サトシ    |
|    7 | スターミー      | みず   |     6 | カスミ    |
|    8 | コダック        | みず   |    10 | カスミ    |
+------+-----------------+--------+-------+-----------+
  1. パートナーがサトシのポケモンが欲しい

これも先ほどと同じパターンでとってこれます。

mysql > SELECT * FROM pokemon WHERE partner="サトシ";

+------+-----------------+-----------+-------+-----------+
| id   | nickname        | type      | level | partner   |
+------+-----------------+-----------+-------+-----------+
|    1 | ピカチュウ      | でんき    |    39 | サトシ    |
|    2 | ゼニガメ        | みず      |     5 | サトシ    |
|    3 | ヒトカゲ        | ほのお    |     5 | サトシ    |
|    4 | フシギダネ      | くさ      |     5 | サトシ    |
+------+-----------------+-----------+-------+-----------+
  1. レベルが10以上のポケモンが欲しい

mysql > SELECT * FROM pokemon WHERE level>=10;

+------+-----------------+-----------+-------+-----------+
| id   | nickname        | type      | level | partner   |
+------+-----------------+-----------+-------+-----------+
|    1 | ピカチュウ      | でんき    |    39 | サトシ    |
|    5 | イワーク        | いわ      |    14 | タケシ    |
|    8 | コダック        | みず      |    10 | カスミ    |
+------+-----------------+-----------+-------+-----------+
  1. レベルがくさタイプでパートナ-がサトシのポケモン

〜なおかつ〜の場合はandを使用します

mysql > SELECT * FROM pokemon WHERE type="くさ" and partner="サトシ";

+------+-----------------+--------+-------+-----------+
| id   | nickname        | type   | level | partner   |
+------+-----------------+--------+-------+-----------+
|    4 | フシギダネ      | くさ   |     5 | サトシ    |
+------+-----------------+--------+-------+-----------+
  1. レベルが5以上のみずタイプのポケモンでパートナーがカスミかサトシのポケモン

mysql > SELECT * FROM pokemon WHERE level>=5 and partner="カスミ" or partner = "サトシ";

+------+-----------------+-----------+-------+-----------+
| id   | nickname        | type      | level | partner   |
+------+-----------------+-----------+-------+-----------+
|    1 | ピカチュウ      | でんき    |    39 | サトシ    |
|    2 | ゼニガメ        | みず      |     5 | サトシ    |
|    3 | ヒトカゲ        | ほのお    |     5 | サトシ    |
|    4 | フシギダネ      | くさ      |     5 | サトシ    |
|    7 | スターミー      | みず      |     6 | カスミ    |
|    8 | コダック        | みず      |    10 | カスミ    |
+------+-----------------+-----------+-------+-----------+

データを削除する

データの基本的な抽出の方法はわかったので、次はデータの削除をします。

基本的な書き方

DELETE FROM テーブル名
  1. くさタイプのポケモンを消す

mysql > DELETE FROM pokemon WHERE type="くさ";
スクリーンショット 2020-07-17 19.38.08.png

くさタイプのポケモンがいなくなりました。

  1. ピカチュウと野生のポケモンを消す

andではないです。andだとニックネームがピカチュウかつパートナーがやせいのデータを削除してしまうので...

mysql > DELETE FROM pokemon WHERE nickname="ピカチュウ" or partner="やせい";
スクリーンショット 2020-07-17 19.40.46.png
  1. テーブルを消す

テーブルごと消す。

mysql > DELETE FROM pokemon;

これでテーブルごと消えたかと思いましたが、消えていませんでした。


mysql > SHOW tables;

+----------------------+
| Tables_in_pokemon_db |
+----------------------+
| pokemon              |
+----------------------+

テーブルごと消すためには、DROPを使うみたいです。

mysql > DROP TABLE pokemon;

確認します。


mysql> show tables;
Empty set

データベースの削除

最後にデータベースを削除して終わります。こちらもDROPを使います。


mysql > DROP DATABASE pokemon_db;

確認すると消えているのがわかります。


mysql > SHOW databases;

最後まで読んでいただきありがとうございます。

8
17
3

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
8
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?