20201016のMySQLに関する記事は6件です。

これだけ知っとけ!docker-composeスニペット集

はじめに

コピペで使える docker-compose 記載例集です。

使い方

  1. Mac, Windows 双方とも、空のディレクトリを作成する。
  2. docker-compose.ymlという名前のファイルを新規作成する。
  3. 記載例集に載っている記載例をコピー&ペーストして保存する。
  4. 上記フォルダをカレントディレクトリにして、Macならターミナル、WindowsならPowerShellかコマンドプロンプトを開く。
  5. docker-compose upを実行。

Macでターミナルを開く方法

https://qiita.com/yamagh/items/02608e97be22c85cefaa 参照。

WindowsでPowerShellを開く方法

エクスプローラの「ファイル」メニューからPowerShellを開くことができる。
image.png

記載例集

MySQL

docker-compose.yml
version: '3'

services:
  # MySQL
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: mysql
      MYSQL_DATABASE: appdb
    volumes:
      - ./db/data:/var/lib/mysql
    ports:
    - 3306:3306

バージョン指定は8.0にしていますが、5.5、5.7等でもOKです。
接続ID/Passwordは、root/mysqlになります。また、初期作成されるデータベース名がappdbになります。
変更したい場合は、environmentの各項目を修正してください。
localhost:3306にアクセスすれば接続できます。
docker-compose.ymlがあるフォルダにdbフォルダが自動的に作成され、この中にMySQLのデータが入ります。
このフォルダの中身を消去するとDBを初期化できます(downしている時に消去してください)

jupyterLab

docker-compose.yml
version: '3'
services:
  lab:
      image: jupyter/datascience-notebook
      environment:
          - JUPYTER_ENABLE_LAB=yes
      ports:
          - "8888:8888"
      volumes:
          - ./work:/home/jovyan/work

notebookよりもlabのほうが使い勝手が良いと思います。また、ホームにworkディレクトリをマウントさせています。
workの中にノートを作成していけば良いでしょう。

gcc

たまにめっちゃCのソースをコンパイルしたいときがある。

docker-compose.yml
version: "3"

services:
  gcc:
    image: gcc
    tty: true
    volumes:
      - ./src:/src

tty: trueを書いておかないとすぐexitしてコンテナが終了してしまいます。
コンテナは起動だけしておいて、あとからゆっくりCLIでアタッチしましょう。

終わりに

記載例集は順次増やしていく予定です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Docker】dbコンテナに入り、データを見ると日本語が???で表示される

環境:Mac
   Laravel 6.x系
   Mariadb

https://qiita.com/n_oshiumi/items/cfe91c60730f602b38eb
こちらの記事を参考にしましたが、私の場合は以下のエラーが発生し、解決できなかった。

E: Unable to locate package language-pack-ja-base
E: Unable to locate package language-pack-ja

そこで上記エラーを検索しまくり、やっと以下の記事にたどり着いた。
https://www.atmarkit.co.jp/ait/articles/1806/28/news043.html

結論としては、先に [apt update] をすることで、[language-pack-ja-base]らがインストール可能になる。

root # apt update
root # apt-get install language-pack-ja-base language-pack-ja
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SQL ~ DB 作成から基本操作、テーブルの結合まで ~ テーブルの結合編

SQLについて基本的な操作をまとめました。こちらではテーブルの結合についてまとめています。

DB作成と基本操作についてはこちらから
SQL ~ DB 作成から基本操作、テーブルの結合まで ~ DB 作成編

SQL ~ DB 作成から基本操作、テーブルの結合まで ~ 基本操作編

各テーブル情報

物品管理のDBを作成しました。
現在の勤務先の物品やらに依存しているので、あまり一般的な DB で無いですがご了承ください。

wheelchair(車椅子) テーブル

mysql> select * from wheelchair;
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
| id | name           | type             | money | purchase | floor_id | occupant_id | created_at          |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
|  1 | low_wheelchair | wheelchair       | 10000 | NULL     |        1 |           1 | 2020-10-16 10:16:53 |
|  2 | wheelchair     | wheelchair       | 10000 | NULL     |        1 |           2 | 2020-10-16 10:17:48 |
|  3 | action_3       | modular          |  NULL | NULL     |        2 |           3 | 2020-10-16 10:19:08 |
|  4 | rebo           | modular          |  NULL | NULL     |        3 |           4 | 2020-10-16 10:20:04 |
|  5 | mytilt         | tilt_ant_recline |  NULL | NULL     |        4 |           5 | 2020-10-16 10:22:33 |
|  6 | mytilt_pro     | tilt_ant_recline |  NULL | NULL     |        5 |           6 | 2020-10-16 10:23:11 |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+

floor デーブル

+----+------------+
| id | floor_name |
+----+------------+
|  1 | AB3F       |
|  2 | AB4F       |
|  3 | AB2F       |
|  4 | C2F        |
|  5 | C3F        |
+----+------------+

occupant テーブル

mysql> select * from occupant;
+----+---------------+------+------+----------+---------------------+
| id | occupant_name | sex  | age  | floor_id | created_at          |
+----+---------------+------+------+----------+---------------------+
|  1 | 鈴木          | NULL | NULL |        1 | 2020-10-16 10:04:25 |
|  2 | 田中          | NULL | NULL |        1 | 2020-10-16 10:05:20 |
|  3 | 佐藤          | NULL | NULL |        2 | 2020-10-16 10:05:36 |
|  4 | 後藤          | NULL | NULL |        3 | 2020-10-16 10:05:58 |
|  5 | 加藤          | NULL | NULL |        4 | 2020-10-16 10:06:22 |
|  6 | 村田          | NULL | NULL |        5 | 2020-10-16 10:06:36 |
+----+---------------+------+------+----------+---------------------+

内部結合 INNER JOIN

基本構文

SELECT カラム名1, カラム名2, ... FROM テーブル名1
  INNER JOIN テーブル名2 ON 結合の条件
mysql> SELECT * FROM wheelchair INNER JOIN floor ON wheelchair.floor_id = floor.id;
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+----+------------+
| id | name           | type             | money | purchase | floor_id | occupant_id | created_at          | id | floor_name |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+----+------------+
|  1 | low_wheelchair | wheelchair       | 10000 | NULL     |        1 |           1 | 2020-10-16 10:16:53 |  1 | AB3F       |
|  2 | wheelchair     | wheelchair       | 10000 | NULL     |        1 |           2 | 2020-10-16 10:17:48 |  1 | AB3F       |
|  3 | action_3       | modular          |  NULL | NULL     |        2 |           3 | 2020-10-16 10:19:08 |  2 | AB4F       |
|  4 | rebo           | modular          |  NULL | NULL     |        3 |           4 | 2020-10-16 10:20:04 |  3 | AB2F       |
|  5 | mytilt         | tilt_ant_recline |  NULL | NULL     |        4 |           5 | 2020-10-16 10:22:33 |  4 | C2F        |
|  6 | mytilt_pro     | tilt_ant_recline |  NULL | NULL     |        5 |           6 | 2020-10-16 10:23:11 |  5 | C3F        |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+----+------------+
6 rows in set (0.00 sec)

wheelchair テーブルの全レコードと floor テーブルを id で紐付けて結合している。

mysql> SELECT floor_id, floor_name FROM wheelchair JOIN floor ON wheelchair.floor_id = floor.id;
+----------+------------+
| floor_id | floor_name |
+----------+------------+
|        1 | AB3F       |
|        1 | AB3F       |
|        2 | AB4F       |
|        3 | AB2F       |
|        4 | C2F        |
|        5 | C3F        |
+----------+------------+

wheelchair テーブルの floor_id と floor テーブルの id を結合。

JOIN のみにしているが INNER JOIN と同じ意味。

外部結合 OUTER JOIN

基本構文

SELECT カラム名1, カラム名2, ...,FROM テーブル名1
LEFT(RIGHT) OUTER JOIN テーブル名2 ON 結合の条件

LEFT OUTER JOIN と RIGHT OUTER JOIN

SQL 文の FROM 〜 の文で左側(LEFT)のテーブルをメインとするか右側(RIGHT)のテーブルをメインとするかの違い。基本構文の例で言うと、LEFT OUTER JOIN にすると「テーブル名1」をメインとする。RIGHT OUTER JOIN とすると「テーブル名2」をメインとする。

わかりやすくするため、occupant テーブルに foor_id を入力していない値を設定。

mysql> select * from occupant;
+----+---------------+------+------+----------+---------------------+
| id | occupant_name | sex  | age  | floor_id | created_at          |
+----+---------------+------+------+----------+---------------------+
|  1 | 鈴木          | NULL | NULL |        1 | 2020-10-16 10:04:25 |
|  2 | 田中          | NULL | NULL |        1 | 2020-10-16 10:05:20 |
|  3 | 佐藤          | NULL | NULL |        2 | 2020-10-16 10:05:36 |
|  4 | 後藤          | NULL | NULL |        3 | 2020-10-16 10:05:58 |
|  5 | 加藤          | NULL | NULL |        4 | 2020-10-16 10:06:22 |
|  6 | 村田          | NULL | NULL |        5 | 2020-10-16 10:06:36 |
|  7 | 鈴木          | NULL | NULL |     NULL | 2020-10-16 14:32:24 |
+----+---------------+------+------+----------+---------------------+

LEFT OUTER JOIN 文

mysql> SELECT occupant_name, floor_id, floor_name FROM occupant LEFT OUTER JOIN floor ON occupant.floor_id = floor.id;
+---------------+----------+------------+
| occupant_name | floor_id | floor_name |
+---------------+----------+------------+
| 鈴木          |        1 | AB3F       |
| 田中          |        1 | AB3F       |
| 佐藤          |        2 | AB4F       |
| 後藤          |        3 | AB2F       |
| 加藤          |        4 | C2F        |
| 村田          |        5 | C3F        |
| 鈴木          |     NULL | NULL       |
+---------------+----------+------------+

occupant テーブルの foor_id と floor テーブルの id を紐づけて表示。内部結合と違うのは、occupant テーブルに保存されているデータを全て表示していて、紐付かれていないレコードに関しては NULL を返してくること。

以下は内部結合をした結果。

mysql> SELECT occupant_name, floor_id, floor_name FROM occupant INNER JOIN floor ON occupant.floor_id = floor.id;
+---------------+----------+------------+
| occupant_name | floor_id | floor_name |
+---------------+----------+------------+
| 鈴木          |        1 | AB3F       |
| 田中          |        1 | AB3F       |
| 佐藤          |        2 | AB4F       |
| 後藤          |        3 | AB2F       |
| 加藤          |        4 | C2F        |
| 村田          |        5 | C3F        |
+---------------+----------+------------+

紐付かれていない(floor_id が入力されていない)レコードは表示されない。

RIGHT OUTER JOIN 文

比較のため、floor テーブルに未所属レコードを追加

mysql> select * from floor;
+----+------------+
| id | floor_name |
+----+------------+
|  1 | AB3F       |
|  2 | AB4F       |
|  3 | AB2F       |
|  4 | C2F        |
|  5 | C3F        |
|  6 | 未所属     |
+----+------------+
mysql> SELECT occupant_name, floor_id, floor_name FROM occupant RIGHT OUTER JOIN floor ON occupant.floor_id = floor.id;
+---------------+----------+------------+
| occupant_name | floor_id | floor_name |
+---------------+----------+------------+
| 鈴木          |        1 | AB3F       |
| 田中          |        1 | AB3F       |
| 佐藤          |        2 | AB4F       |
| 後藤          |        3 | AB2F       |
| 加藤          |        4 | C2F        |
| 村田          |        5 | C3F        |
| NULL          |     NULL | 未所属     |
+---------------+----------+------------+

floor テーブルをメインとし、先ほどと同じように occupant テーブルの floor_id と floor テーブルの id を紐付けて表示。floor テーブルをメインとしているため、未所属レコードが表示され、occupant_name, floor_id に紐付かれている値がないため NULL が表示される。

複数のテーブルを結合させて表示

長いので改行しています。

SELECT occupant_name, floor_name, name
FROM wheelchair 
LEFT OUTER JOIN floor 
ON wheelchair.floor_id = floor.id 
LEFT OUTER JOIN occupant
ON wheelchair.occupant_id = occupant.id;

少しややこしいが JOIN 文をつなぎ合わせているだけ。

実行結果。

mysql> SELECT occupant_name, floor_name, name FROM wheelchair LEFT OUTER JOIN floor ON wheelchair.floor_id = floor.id LEFT OUTER JOIN occupant ON wheelchair.occupant_id = occupant.id;
+---------------+------------+----------------+
| occupant_name | floor_name | name           |
+---------------+------------+----------------+
| 鈴木          | AB3F       | low_wheelchair |
| 田中          | AB3F       | wheelchair     |
| 佐藤          | AB4F       | action_3       |
| 後藤          | AB2F       | rebo           |
| 加藤          | C2F        | mytilt         |
| 村田          | C3F        | mytilt_pro     |
+---------------+------------+----------------+

where 句で検索可能。

mysql> mysql> SELECT occupant_name, floor_name, name FROM wheelchair LEFT OUTER JOIN floor ON wheelchair.floor_id = floor.id LER JOIN occupant ON wheelchair.occupant_id = occupant.id where wheelchair.floor_id = 1;
+---------------+------------+----------------+
| occupant_name | floor_name | name           |
+---------------+------------+----------------+
| 鈴木          | AB3F       | low_wheelchair |
| 田中          | AB3F       | wheelchair     |
+---------------+------------+----------------+
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SQL ~ DB 作成から基本操作、テーブルの結合まで ~ 基本操作編

前回からの続きです。
SQL ~ DB 作成から基本操作、テーブルの結合まで ~ DB 作成編

テーブルの結合編はこちらから
SQL ~ DB 作成から基本操作、テーブルの結合まで ~ テーブルの結合編

ここでは基本操作についてまとめています。

INSERT 文

基本構文

INSERT INTO テーブル名 VALUES (値);

列を指定して挿入。全ての列を指定しなくても OK。

INSERT INTO wheelchair(id, name, type, floor_id, occupnat_id) VALUES (1,'low_wheelchair','wheelchair', 1, 1);

その他の値を入れた結果。

mysql> select * from wheelchair;
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
| id | name           | type             | money | purchase | floor_id | occupant_id | created_at          |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
|  1 | low_wheelchair | wheelchair       |  NULL | NULL     |        1 |           1 | 2020-10-16 10:16:53 |
|  2 | wheelchair     | wheelchair       |  NULL | NULL     |        1 |           2 | 2020-10-16 10:17:48 |
|  3 | action_3       | modular          |  NULL | NULL     |        2 |           3 | 2020-10-16 10:19:08 |
|  4 | rebo           | modular          |  NULL | NULL     |        3 |           4 | 2020-10-16 10:20:04 |
|  5 | mytilt         | tilt_ant_recline |  NULL | NULL     |        4 |           5 | 2020-10-16 10:22:33 |
|  6 | mytilt_pro     | tilt_ant_recline |  NULL | NULL     |        5 |           6 | 2020-10-16 10:23:11 |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+

SELECT 文

テーブル内のカラムを選んで検索する。「*」を使うと全検索になる。

SELECT  カラム名,カラム名... FROM   テーブル名

カラムに対し、演算子を利用できる

SELECT カラム名(+, -, *, /)2 FROM テーブル名

WHERE 句で絞り込み検索

比較演算子を使用する。

SELECT  カラム名 FROM   テーブル名 WHERE カラム名 (=, <, >, <=, >=, <>) 20(条件式)
mysql> mysql> select * from wheelchair where name = 'low_wheelchair';
+----+----------------+------------+-------+----------+----------+-------------+---------------------+
| id | name           | type       | money | purchase | floor_id | occupant_id | created_at          |
+----+----------------+------------+-------+----------+----------+-------------+---------------------+
|  1 | low_wheelchair | wheelchair |  NULL | NULL     |        1 |           1 | 2020-10-16 10:16:53 |
+----+----------------+------------+-------+----------+----------+-------------+---------------------+

wheelchair テーブルの name が low_whhelchair を検索している。

複合条件には論理演算子

SELECT  カラム名 FROM   テーブル名 WHERE カラム名 (=, <, >, <=, >=, <>) 20 (and, or, not) カラム名 (=, <, >, <=, >=, <>) 40
mysql> select * from wheelchair where floor_id = 1 and occupant_id = 2;
+----+------------+------------+-------+----------+----------+-------------+---------------------+
| id | name       | type       | money | purchase | floor_id | occupant_id | created_at          |
+----+------------+------------+-------+----------+----------+-------------+---------------------+
|  2 | wheelchair | wheelchair |  NULL | NULL     |        1 |           2 | 2020-10-16 10:17:48 |
+----+------------+------------+-------+----------+----------+-------------+---------------------+

wheelchair テーブルの floor_id が 1 「かつ(and)」 occupant_id が 2 を検索。

mysql> select * from wheelchair where floor_id = 1 or occupant_id = 2;
+----+----------------+------------+-------+----------+----------+-------------+---------------------+
| id | name           | type       | money | purchase | floor_id | occupant_id | created_at          |
+----+----------------+------------+-------+----------+----------+-------------+---------------------+
|  1 | low_wheelchair | wheelchair |  NULL | NULL     |        1 |           1 | 2020-10-16 10:16:53 |
|  2 | wheelchair     | wheelchair |  NULL | NULL     |        1 |           2 | 2020-10-16 10:17:48 |
+----+----------------+------------+-------+----------+----------+-------------+---------------------+

wheelchair テーブルの floor_id が 1 「または(or)」 occupant_id が 2 を検索。

UPDATE 文

基本構文

UPDATE  表名
SET    列名 = 値
WHERE 更新する行を特定する条件;
mysql> UPDATE wheelchair SET money = 10000 WHERE type = 'wheelchair';
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 0

wheelchair テーブルの 列 type が wheelchair の列 money を 10000 に更新する処理。

結果

mysql> select * from wheelchair;
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
| id | name           | type             | money | purchase | floor_id | occupant_id | created_at          |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
|  1 | low_wheelchair | wheelchair       | 10000 | NULL     |        1 |           1 | 2020-10-16 10:16:53 |
|  2 | wheelchair     | wheelchair       | 10000 | NULL     |        1 |           2 | 2020-10-16 10:17:48 |
|  3 | action_3       | modular          |  NULL | NULL     |        2 |           3 | 2020-10-16 10:19:08 |
|  4 | rebo           | modular          |  NULL | NULL     |        3 |           4 | 2020-10-16 10:20:04 |
|  5 | mytilt         | tilt_ant_recline |  NULL | NULL     |        4 |           5 | 2020-10-16 10:22:33 |
|  6 | mytilt_pro     | tilt_ant_recline |  NULL | NULL     |        5 |           6 | 2020-10-16 10:23:11 |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+

列 type が wheelchair は2つあるので2つとも更新された。

DELETE 文

基本構文

DELETE  FROM  テーブル名 
WHERE  (条件);
mysql> select * from wheelchair;
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
| id | name           | type             | money | purchase | floor_id | occupant_id | created_at          |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
|  1 | low_wheelchair | wheelchair       | 10000 | NULL     |        1 |           1 | 2020-10-16 10:16:53 |
|  2 | wheelchair     | wheelchair       | 10000 | NULL     |        1 |           2 | 2020-10-16 10:17:48 |
|  3 | action_3       | modular          |  NULL | NULL     |        2 |           3 | 2020-10-16 10:19:08 |
|  4 | rebo           | modular          |  NULL | NULL     |        3 |           4 | 2020-10-16 10:20:04 |
|  5 | mytilt         | tilt_ant_recline |  NULL | NULL     |        4 |           5 | 2020-10-16 10:22:33 |
|  6 | mytilt_pro     | tilt_ant_recline |  NULL | NULL     |        5 |           6 | 2020-10-16 10:23:11 |
|  7 | 削除用         | 削除用           |  NULL | NULL     |     NULL |        NULL | 2020-10-16 10:59:47 |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+

削除用のレコードを削除

mysql> DELETE FROM wheelchair WHERE id = 7;
Query OK, 1 row affected (0.01 sec)

結果

mysql> select * from wheelchair;

+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
| id | name           | type             | money | purchase | floor_id | occupant_id | created_at          |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
|  1 | low_wheelchair | wheelchair       | 10000 | NULL     |        1 |           1 | 2020-10-16 10:16:53 |
|  2 | wheelchair     | wheelchair       | 10000 | NULL     |        1 |           2 | 2020-10-16 10:17:48 |
|  3 | action_3       | modular          |  NULL | NULL     |        2 |           3 | 2020-10-16 10:19:08 |
|  4 | rebo           | modular          |  NULL | NULL     |        3 |           4 | 2020-10-16 10:20:04 |
|  5 | mytilt         | tilt_ant_recline |  NULL | NULL     |        4 |           5 | 2020-10-16 10:22:33 |
|  6 | mytilt_pro     | tilt_ant_recline |  NULL | NULL     |        5 |           6 | 2020-10-16 10:23:11 |
+----+----------------+------------------+-------+----------+----------+-------------+---------------------+
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SQL ~ DB 作成から基本操作、テーブルの結合まで ~ DB 作成編

備忘録のため作成。
長いので 3部構成にしています。ここではDB作成について説明します。

以下は続きです。
SQL ~ DB 作成から基本操作、テーブルの結合まで ~ 基本操作編
SQL ~ DB 作成から基本操作、テーブルの結合まで ~ テーブルの結合編

環境

mysql Ver 8.0.21 for osx10.15 on x86_64 (Homebrew)

DB基本操作

DB 作成

mysql> create database Goods_management;
Query OK, 1 row affected (0.01 sec)

DB 確認

mysql> show databases;
+-------------------------------+
| Database                      |
+-------------------------------+
| Goods_management              |
| hello_world_rails_development |
| hello_world_rails_test        |
| information_schema            |
| line_todo_list_development    |
| line_todo_list_test           |
| mysql                         |
| performance_schema            |
| sys                           |
+-------------------------------+
9 rows in set (0.00 sec)

DB 削除

mysql> DROP DATABASE Goods_manegement;
Query OK, 0 rows affected (0.06 sec)

mysql> show databases;
+-------------------------------+
| Database                      |
+-------------------------------+
| hello_world_rails_development |
| hello_world_rails_test        |
| information_schema            |
| line_todo_list_development    |
| line_todo_list_test           |
| mysql                         |
| performance_schema            |
| sys                           |
+-------------------------------+
8 rows in set (0.00 sec)

使用する DB の選択

mysql> use Goods_management
Database changed

テーブル一覧の表示

mysql> show tables;
Empty set (0.00 sec)

テーブル作成

mysql> create table Goods_management.wheelchair (
    ->     id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
    ->     name VARCHAR(50),
    ->     type VARCHAR(50) NOT NULL,
    ->     money INT ,
    ->     purchase VARCHAR(50),
    ->     floor_id INT,
    ->     occupant_id INT,
    ->     created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
    ->  );

wheelchair(車椅子)テーブル作成

6つのカラム作成

- id
- name(名前)
- type(種類)
- money(金額)
- purchase(購入日)
- floor_id(リレーション用)
- occupant_id(リレーション用)
- created_at(登録日)

それぞれのカラム内容

id

  • カラム名:id
  • データ型:INT
  • AUTO_INCREMENT:自動的に値が1ずつ増えていく設定
  • NOT NULL:空データを許さない設定
  • PRIMARY KEY:データ(レコード)を一意に特定するためのカラムを決めるもので、1つのテーブルに必ず1つは必要

name

  • カラム名:name
  • データ型:VARCHAR(50)

type

  • カラム名:name
  • データ型:VARCHAR(50)
  • NOT NULL:空データを許さない設定

money

  • カラム名:money
  • データ型:INT

purchase

  • カラム名:purchase
  • データ型:VARCHAR(50)

floor_id

  • カラム名:floor_id
  • データ型:INT

occupant_id

  • カラム名:occupant_id
  • データ型:INT

created_at

  • カラム名:created_at
  • データ型:TIMESTAMP
  • NOT NULL:空データを許さない設定
  • DEFAULT CURRENT_TIMESTAMP:現在日時を保存する

登録したテーブル内容確認

mysql> describe wheelchair;
+-------------+-------------+------+-----+-------------------+-------------------+
| Field       | Type        | Null | Key | Default           | Extra             |
+-------------+-------------+------+-----+-------------------+-------------------+
| id          | int         | NO   | PRI | NULL              | auto_increment    |
| name        | varchar(50) | YES  |     | NULL              |                   |
| type        | varchar(50) | NO   |     | NULL              |                   |
| money       | int         | YES  |     | NULL              |                   |
| purchase    | varchar(50) | YES  |     | NULL              |                   |
| floor_id    | int         | YES  |     | NULL              |                   |
| occupant_id | int         | YES  |     | NULL              |                   |
| created_at  | timestamp   | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+-------------+-------------+------+-----+-------------------+-------------------+
8 rows in set (0.01 sec)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MySQL error pid file warning

  mysql ハマった 流れ

 ・homebrewでmysqlをインストール
 ・テーブルの作成
 ・放置期間(3週間)
 ・mysqlworkbenchでテーブル作成
 ・ターミナルでコマンドで作成を新たに試みる(3週間前作ったのを忘れる)
 ・cleat しようとするとエラーがでる
 ・とりあえず一回消そうと安易に考えてアンインストール
 ・brew doctor でwarning
 ・aplle deveroper でCommand line ほにゃを Xcodeインストールせずにインストール
 
 ・Error 何種類かみた

 多いのはThe server quit without updating PID file(

)

・ls -al /usr/local
・ls -al /usr/var

ファイルが無かったので

mkdir /usr/local/var/mysql
からの
chomod 775/usr/local/var/mysql
からの
mysql.server start

エラーー

ps aux|grep mysql
からの
warning:The post-install step did not complete successfully

全部のファイル消せてるか不安だったので
powerMyMacでsql関連のファイルと思われるもの全て削除
アンインストール mac再起動

ERROR:The server quit without updating PID fileーーー

からの

https://motomichi-works.hatenablog.com/entry/2016/03/02/103207
この記事参考にbash.profile作成した後
https://qiita.com/akiko-pusu/items/aef52b723da2cb5dc596
でアンインストールとインストールしたら再起動に成功した

12時間ほどerrorとwarningループ楽しかった
アンインストールして
関連物消して
bashプロファイル作って
再起動して
インストールして立ち上げたらいけました

♯mysql

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む