【SQL・データベース】phpMyAdminで「データベース/テーブル/カラム」を作成

最近DBについてこんなツイートをしました。今回はもう少し詳しくSQLについて解説していこうと思います。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">phpMyAdmin(SQL)をExcelで例えてみた<br><br>・データベース = Excel本体<br>・テーブル = sheet1<br>・レコード = 行<br>・カラム = 列<br>・フィールド = セル1つ1つ<br><br>身近にある物で例えると分かりやすいかな？<a href="https://twitter.com/hashtag/SQL?src=hash&amp;ref_src=twsrc%5Etfw">#SQL</a> <a href="https://twitter.com/hashtag/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0?src=hash&amp;ref_src=twsrc%5Etfw">#プログラミング</a> <a href="https://twitter.com/hashtag/%E6%9C%AA%E7%B5%8C%E9%A8%93%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%A8%E7%B9%8B%E3%81%8C%E3%82%8A%E3%81%9F%E3%81%84?src=hash&amp;ref_src=twsrc%5Etfw">#未経験エンジニアと繋がりたい</a></p>&mdash; Tomoya@フリーランス (@div_tomo) <a href="https://twitter.com/div_tomo/status/1693977266957713687?ref_src=twsrc%5Etfw">August 22, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

今回参考に作成するカラムは以下の記事で作成したお問い合わせフォームを参考にデータベースを作成していきます。

https://qiita.com/div_tomo/items/96d2f34cccd6f0bdca12

## phpMyAdminを開く

- **Xamppがあるファイルを開く**
    - 自分の場合D:￥にxamppがありますが 通常の場合C:￥にxamppファイルがあると思います。
- **下にスクロールして「xampp-control.exe」をクリック**

![Untitled (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/b065fd99-9919-e8bf-fb1c-653c0219ed97.png)


- 開けたら「**Apache**」と「**MySQL**」を「**Start**」します。
- 「**MySQL**」の「**Admin**」をクリックします。

![Untitled (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/c79ef8f1-f70f-4223-4363-153e1ff21eaa.png)


- **クリックすると以下のような画面が表示されます。**

![Untitled (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/24f3b9c1-d018-24b8-956e-5c3702ec22e9.png)


## データベースの作成

- データベース**を作成していきます。**
- **左のメニューにある「新規作成」をクリックします。**

![Untitled (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/bedcc9ff-d038-4bc8-dd5d-9893bedf2a2d.png)


- **データベース名を「php_test」とします。**
- **照合順序「utf8_general_ci」のままで作成をクリックします。**


![Untitled (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/928da3e7-8c1b-97b1-fece-ab75a5b2f39a.png)


- **「php_test」というデータベースが作成されました。**

## テーブルを作成

- **続いてテーブルを作成していきます。**
    - テーブル自体にデータがたまっていく事になるのでテーブル名は複数形で書くのが一般的になります。
- **テーブル名は「contacts」とします。**
- **カラム数は「5」とします。**
    - 今回作成するのが前回キータの記事で書いたお問い合わせフォームを使っていくので
    
https://qiita.com/div_tomo/items/96d2f34cccd6f0bdca12
    
    - 「お名前」「メールアドレス」「内容」+「ID」「日付」なので5つのカラムを作っていきます。
- **作成をクリック**

![Untitled (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/7f2fb357-43c8-b5b3-2d0e-59948934e5be.png)


## カラムを追加

- **カラムの名前を追加していきます。**
    
    
    | 名前 | 説明 |
    | --- | --- |
    | id | テーブル内でかぶらない数字が入ります |
    | name | お名前 |
    | email | メールアドレス |
    | contact | お問い合わせ内容 |
    | created_at | 作成日 |
- **データ型と長さの設定**
    
    
    | データ型 | 長さ/値 | 説明 |
    | --- | --- | --- |
    | INT |  | 数字 |
    | VARCHAR | 20 | 文字列２０文字 |
    | VARCHAR | 255 | 文字列２５５文字 |
    | VARCHAR | 200 | 文字列２００文字 |
    | TIMESTAMP |  | 日付 |
- **IDを自動的に数字を増やしていく**
    
    
    | A_I | 説明 |
    | --- | --- |
    | ☑ | AIはオートインクリメントの略です。 |
- **保存するをクリックします**

![Untitled (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/64fba3f7-8024-7d6b-caa0-e3a6befe3977.png)


**これでデータベースの作成はOKです！**

### ユーザーを作成

次の記事でやるデータベースの接続で使うユーザーを作成しておきます。

- 左メニューにある作成したデータベース「php_test」をクリックします。
- 上にあるメニューの「権限」をクリックします。
    
![Untitled (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/e2df5e98-67e0-a703-9298-17215aa13871.png)

    
- **画面の下のほうにある「ユーザアカウントを追加する」をクリック**
- **すると以下の画面に遷移します。**

![Untitled (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494399/5386472c-8ece-fe47-b013-40646a1e7663.png)


### ログイン情報

| ユーザー名： | php_test |
| --- | --- |
| ホスト名： | ％ |
| パスワード： | SuTomSun0218 |
| 再入力： | SuTomSun0218 |
- **それぞれ入力する値は自由でOKです**

### ユーザーアカウント専用データベース

- **データベースphp_testへのすべての権限を与える。にチェックを付けましょう。**
- **最後に実行をクリック**

これで新しいユーザーが作成されました。

## 【おまけ】データベースについても少し解説

・PDO_MySQL

```mermaid
flowchart LR

%%　初めのステップ　%%
%% 0,1 %%
WAKE([PHP]) <---> |PDO|S(SQL操作)
```

<aside>
📒 PDO = PHP Data Object
</aside>

PDOは PHP Data Object の略でデータベースと簡単にやりとりできる方法になります。

データベース自体にデータを登録したり　削除、変更、操作　をするためには、SQLという言語を使っておこなう必要があります。SQLはクエリと呼ばれたりもします。

データベースの中見はエクセルを大きくした物と考えていただけばOKです。

📒 例：
| データベース | ＝ | エクセル |
| --- | --- | --- |
| テーブル | ＝ | シート |
| レコード | ＝ | 行 |
| カラム | ＝ | 列 |
| フィールド | ＝ | セル１つ１つ |

DB操作の基本としてCRUDという考え方があります。

CRUDは以下のそれぞれの頭文字を取っています。

| Create | 新規作成 | insert |
| --- | --- | --- |
| Read | 表示 | select |
| Update | 更新 | update |
| Delete | 削除 | delete |