[初めてのデータベース] SQL MySQL xampp

# 初めに
MySQL(データベース)とSQL(データベース言語)を利用て、DBの作成、データの登録、データの取り出し、についてまとめていきます。
今回はXAMPPを利用していますが、環境構築の部分は割愛しております。

## データベースとは
**データを一定のルールで蓄積し、必要に応じて取り出せるようにしたもの。**
きっちり整理整頓された、データの倉庫。

Excelやスプレッドシートに似ている。
**[Excelとの対比]**

|データベース  |Excell  |
|---|---|
|データベース自体  |ファイル  |
|テーブル(表)  |Sheet  |
|レコード(行・ロウ)  |横の行  |
|フィールド(列・カラム)  |縦の列  |

## データベースの作成 (xampp)

### データベースの作成
XAMPP起動後、http://localhost/phpmyadmin/
にアクセス。
**１：  画面上部「データベース」をクリック**
**２：  データベース名を記入**
**３：  「照合順序」は 「utf8_unicode_ci」 を選択。**
大文字小文字/全角半角を区別しない。曖昧検索に適している。
**４：  「作成」を押してDB作成**
![スクリーンショット 2022-06-03 14.34.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096105/2eec86d3-a793-a806-5ac3-c7160bebbb59.png)

### テーブルの作成
**１：  テーブル名を記入**
**２：  カラム数を記入。**
(横の行になります。後から追加も可能)
**３：  「作成」を押してテーブルを作成**
![スクリーンショット 2022-06-03 14.41.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096105/804df5b2-a28a-5309-73ca-29452359f0b4.png)

### Fildの作成
テーブル内に入れていくデータの項目（種類）を登録する。
![スクリーンショット 2022-06-03 15.07.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096105/b1f9d7fa-ec3e-1a72-331d-d6b31c26683b.png)
**１：  名前の部分に、個々のデータ名を入れていく**
**２：  タイプで、データのタイプを選択**
```
INT == 数列
VARCHAR == 文字列
TEXT == VARCHRよりも大きな文字列を扱える
```
VARCHARとTEXTの違いを調べてみたのですが、とりあえずVARCHARでいいような気がしています。

**３：  長さ/幅の部分に、最大文字数を入力**
この部分は、大きい数値にしておいても、
データのサイズは、実際に登録された文字数に依存するようなので、大きめにしておいても問題はなさそう。

**３.５：プラスアルファ**
・被らない固有のIDにしたい場合は、「A.I」にチェックをつける。primaryは自動で選択される。

・入力なし、空を許可する場合は「NULL」にチェックを入れる。
![スクリーンショット 2022-06-03 15.18.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096105/a7a79839-5c69-b708-3527-3a4c25874e2e.png)

・Fild (データの項目)を追加したい場合は画面上部で、カラム数（追加する数）を選択し「実行」をクリック
![スクリーンショット 2022-06-03 15.28.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096105/d24be8b5-0d16-8b9a-1007-e1200700e9f2.png)

**４： 登録**
「保存する」をクリックして登録。
　![スクリーンショット 2022-06-03 15.26.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096105/8c13473a-af62-3f66-d7f3-3b7c829abf01.png)


## データベースの操作(SQL)
画面上部の「SQL」タブからSQL(データベース言語)を使い、操作ができます。
![スクリーンショット 2022-06-03 15.33.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096105/b46fa0e2-bfa7-bf8e-fddc-c13d9323706f.png)

## SQL基本
◇ SQLコマンド(データ操作)
```
INSERT:  データを“登録”
SELECT:  データを“表示“
UPDATE:  データを“更新”
DELETE:  データを“削除“
```

### １：INSERT(データ登録)
DBにデータを**登録**する

◇書式:
```
INSERT INTO [テーブル名]([カラム1], [カラム2]) //データを入れる場所の指定
VALUES([値1], [値2]) ;                    //入れるデータを記述
```
◇例:
```
//[sample_table]内の　「name」　と　「email」　と　「indate」　にデータを入れるよ
INSERT INTO sample_table(name, email, indate)

//入れるデータは 「現役次郎」 と 「test2@test.test」 と 「現在の日時」　 だよ
VALUES('現役次郎', 'test2@test.test', sysdate() );
```
※A.Iにチェックを入れたID等に関しては自動で入力される
※``sysdate()``は現在の日付と時刻を返してくれる

### ２：SELECT(データ取得)
DBからデータを**取得**する
◇書式:
```
SELECT [表示するカラム] FROM [テーブル名];
```

◇例:
```
全指定:    SELECT * FROM sample_table;
単体指定:  SELECT name FROM sample_table;
複数指定:  SELECT name, email FROM sample_table;

※WHERE を使用して特定のデータを抽出。 
SELECT * FROM gs_an_table WHERE name = 'ジーズ太郎'; 
```
**[様々な条件をつけて検索]**

**・演算子を使う**
```
SELECT * FROM [テーブル名] WHERE id = 1;
SELECT * FROM [テーブル名] WHERE id >= 3;
```
**・AND, OR で検索条件を複数指定**
```
SELECT * FROM [テーブル名] WHERE id=1 OR id=2;
SELECT * FROM [テーブル名] WHERE id >= 1 AND id<=3;
```
**・あいまい検索**
```
//前方一致
SELECT * FROM [テーブル名] WHERE indate LIKE ’2015-06%'; 
//後方一致
SELECT * FROM [テーブル名] WHERE email LIKE ’%@gmail.com'; 
//部分一致
SELECT * FROM [テーブル名] WHERE email LIKE ‘%@%';
```

**[ソートと制限]**
**・表示をソート（並び順を変える）**
※ DESCは降順、ASCは昇順
```
SELECT * FROM [テーブル名] ORDER BY [ソートしたいカラム名] [ソート方法指定];

SELECT * FROM [テーブル名] ORDER BY id DESC;
SELECT * FROM [テーブル名] ORDER BY email, name DESC;
```
**・表示件数を制限**
```
SELECT [表示するカラム] FROM [テーブル名] LIMIT [数値の指定];

SELECT * FROM [テーブル名] LIMIT 5;    //5個目まで
SELECT * FROM [テーブル名] LIMIT 3, 5;  //3個目から5個目まで
```

### ３：UPDATE(データ更新)
DB上のデータを変更する。

◇書式:
```
UPDATE [テーブル名]　 SET [変更するカラム名(列)]　＝　[新しい値] WHERE [変更するレコード(行)];
```
◇例:
カンマ　で区切ることで複数のカラムを一度に変更が可能。
```
UPDATE sample_table SET name='変更さん',email='henkou@jp' WHERE id=1;
```

### ４：DELETE(削除)
DB上のデータを削除
◇書式:
```
DELETE FROM [テーブル名] WHERE [変更するレコード(行)];
```
◇例:
※``WHERE``での指定を忘れると、table内の全てのデータが消えるので注意
```
DELETE sample_table SET WHERE id=1;
```

## 終わりに
自分のメモ代わりでした。
PHPとの接続も次回記述予定です。