【Laravel勉強会Day7】データベースをLaravelから操作

#はじめに
前回：[データベース周りの環境構築](https://qiita.com/keinko/items/9daf46c8436c37363a07)
前回はデータベースに関する環境構築を行いました。
今回は*Section3: Database Access*についてまとめたいと思います。

##データベースに接続
まず*EPISODE9 Setup a Database Connction*周りの話です。
動画見ればわかるんですが、Laravelとデータベースの連携に関する記述は、`.env`と`database.php`という名前のファイルに書かれています。
とりあえず`.env`の9行目あたりのmysqlに関する記述を以下のように書き換えましょう。
VSCodeでファイル検索するときは「Command (Ctrl)」＋「P」です！

```text:.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel6
DB_USERNAME=root
DB_PASSWORD=password
```

そんで仮想環境上で`laravel6`というデータベースを作成してください。
ここらへんもチュートリアル通りです。

```terminal
$ mysql -uroot -ppassword
```

```sql
mysql> CREATE DATABASE laravel6;
```

##データベース可視化ツールの操作
操作を行う前に「テーブル(表)」、「カラム」というような用語がたくさん出てくるのでそれについてまず説明します。
###データベースの基礎知識
mysqlでは一つの接続(ホスト)が複数のデータベースを持ち、そのデータベースたちがそれぞれ複数のテーブル(表)を持ちます。
「テーブル」とはエクセルのファイルやスプレッドシートのようなものと考えてください。

- localhost(接続)
    - laravel6(データベース)
        - posts(テーブル)
        - users(テーブル)
        - table1(テーブル)
        - table2(テーブル)
        - ...
    - database1(データベース)
        - table1(テーブル)
        - table2(テーブル)
        - ...
    - database2(データベース)
    - ...

一つ一つのテーブルの内容はこんな感じです。
<img width="1123" alt="スクリーンショット 2020-03-10 12.00.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208979/994672a1-7c6c-f4ce-87bf-4496299935e9.png">

この例では"users"というテーブルに名前やメールアドレスが記載されています。
ここで"id", "name", "mail_address"等のテーブルがもつ要素のことを「カラム」と言います。

###DBeaverの使い方
動画ではTablePlusというデータベース可視化ツールを使用していますが、僕らは[前回](https://qiita.com/keinko/items/9daf46c8436c37363a07)インストールしたDBeaverを使います。
正直、初心者の段階ではどのアプリケーションもほぼ一緒だと思うので何を使っても構いません。
操作も似たり寄ったりです。

*〜TablePlusの表示画面〜*
<img width="929" alt="スクリーンショット 2020-03-10 11.28.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208979/77081470-f7e3-03d1-1a57-02948e27e360.png">

DBeaverの接続は前回行なったので下三角のプルダウンマークをクリックして先ほど作成した"laravel6"というデータベースをクリックします。
<img width="360" alt="スクリーンショット 2020-03-10 11.46.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208979/9d598fe1-8cda-ebea-e598-becc060f8566.png">

「データベースナビゲーター」っていうものがそもそもない人は右上のクイックアクセスで「データベースナビゲーター」って調べてクリックしてください。
<img width="903" alt="スクリーンショット 2020-03-10 11.49.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208979/8d7e3554-fea4-28f3-d20d-fad17da4d22c.png">

*EPISODE9 Setup a Database Connction*ではテーブルをTablePlusというアプリケーションからポチポチ作成する場面がありますが、DBeaverでこれに相当する作業は「テーブル」と書いてあるところを右クリックし「新しく作る 表」、タブからプロパティをクリックしてテーブル名に好きな名前を入力します。
**
<img width="907" alt="スクリーンショット 2020-03-10 12.08.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208979/3d4a6feb-6f92-6556-c203-e773aa1ae57c.png">
**ただし、この方法でのテーブル作成はWebアプリ開発において好ましいものではありません！！**
実際に自分のアプリを作るときは必ず`php artisan なんちゃら`で作成しましょう。
`php artisan なんちゃら`で作成しないとLaravelとmysqlの整合性がとれなくなる可能性があります。
カラムの作成は同じ画面の表っぽいところで右クリックして「新しく作る カラム」をクリックして好きなデータ構造のカラムを作りましょう！
<img width="455" alt="スクリーンショット 2020-03-10 13.04.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208979/3d9c67fa-db7b-fafc-7404-f53d98cb1485.png">

##Section3: データベースへのアクセス(Database Access)
あとはいつも通り軽い理解で[Laracasts](https://laracasts.com/series/laravel-6-from-scratch/episodes/9)をどんどん進めていきましょう！

#まとめ
*Section3: Database Access*を進められるようにDBeaver等の説明を記述した。
次回は未定