【SQL】データベースをかっこよくコマンドで操作したいので学習した

前書き
最近プログラミングスクールに通い始めた まるちゃんです｡

コマンドを学習したのでアウトプット!!

SQLはデータベースに対して色々な命令を行う中で､その中でも**データを定義するDDL**と､**データを操作するDML**に分けられる｡

- DDL(Data Definition Language)

| 命令 | 機能 |
|  :--: | :--: |
| CREATE | データベースやテーブルの作成 |
| ALTER | データベースやテーブルの更新 |
| DROP | データベースやテーブルの操作 |

- DML(Data Manipulation Language)

| 命令 | 機能 |
|  :--: | :--: |
| INSERT | データの登録 |
| UPDATE | データの更新 |
| DELETE | データの削除 |
| SELECT | データの検索 |

読み始める前に･･･語尾には **;(セミコロン)** ←を絶対に付けようね｡

## データベースに接続

```
mysql -u ユーザー名 -D データベース名 -p
mysql -u ユーザー名 -p
mysql -u ユーザー名
```

rootユーザーにパスワードを指定してログインという意味

- -u : ユーザーを指定
- -D : 接続先のデータベース名を指定
- -p : パスワードを送信する場合に指定

[![Image from Gyazo](https://i.gyazo.com/41a9bd97fb186e5f28aab56fded7510f.png)](https://gyazo.com/41a9bd97fb186e5f28aab56fded7510f)

> 引用元 > [MySQLに接続するユーザー名とパスワードの指定](https://www.dbonline.jp/mysql/connect/index3.html)

## データベース一覧を表示

```
SHOW DATABASES;
```
ホストに作成されている**データベースの一覧を表示**する方法

[![Image from Gyazo](https://i.gyazo.com/401d16e2fde543a8b934b4ee115c1f72.png)](https://gyazo.com/401d16e2fde543a8b934b4ee115c1f72)

> 引用元 > [データベースの一覧とデータベースに関する情報を取得する](https://www.dbonline.jp/mysql/database/index2.html)

## データベースの作成

```
CREATE DATABASE データベース名;
```

**新規にデータベースを作成**する方法

[![Image from Gyazo](https://i.gyazo.com/83197386967a283662b7622c258d22f6.png)](https://gyazo.com/83197386967a283662b7622c258d22f6)
↓データベース一覧を表示して確認
[![Image from Gyazo](https://i.gyazo.com/74718726b23503dddeac62de7aa807f2.png)](https://gyazo.com/74718726b23503dddeac62de7aa807f2)

> 引用元 > [データベースを作成する(CREATE DATABASE文)](https://www.dbonline.jp/mysql/database/index1.html)


## 使用するデータベースの選択

```
USE データベース名
```

テーブルを作成の際に､最初にどのデータベースを使用するかをUSE文を使って指定する方法｡

[![Image from Gyazo](https://i.gyazo.com/144afb41f295c1a09f45f8f8a901b375.png)](https://gyazo.com/144afb41f295c1a09f45f8f8a901b375)

> 引用元 > [使用するデータベースを選択する(USE文)](https://www.dbonline.jp/mysql/database/index3.html)


## データベースのテーブル一覧を表示

```
SHOW TABLES;
```

作りたてなのでまだ空です｡

[![Image from Gyazo](https://i.gyazo.com/25fe3d0181c2f34753362cb1c1c3c193.png)](https://gyazo.com/25fe3d0181c2f34753362cb1c1c3c193)

> 引用元 > [データベースの一覧とデータベースに関する情報を取得する](https://www.dbonline.jp/mysql/database/index2.html)

## テーブルと､そのテーブルに紐づくカラムの作成

```
# 単体の場合
CREATE TABLE テーブル名 (カラム名 カラムの型);

# 複数の場合
CREATE TABLE テーブル名 (カラム名 カラムの型, ...);
```

[![Image from Gyazo](https://i.gyazo.com/66e33d250434622808b5b35f34c4f4d1.png)](https://gyazo.com/66e33d250434622808b5b35f34c4f4d1)

> 引用元 > [テーブルを作成する(CREATE TABLE文)](https://www.dbonline.jp/mysql/table/index1.html)

## テーブル構造の確認

```
SHOW COLUMNS FROM テーブル名;
```

[![Image from Gyazo](https://i.gyazo.com/c1bb5ccd639cdcad1b04ad54913691a9.png)](https://gyazo.com/c1bb5ccd639cdcad1b04ad54913691a9)

> 引用元 > [カラムに関する情報を取得する](https://www.dbonline.jp/mysql/table/index3.html)

## カラムの追加

```
# 単体の場合
ALTER TABLE テーブル名 ADD カラム名 カラムの型;

# 複数の場合
ALTER TABLE テーブル名 ADD (カラム名1 カラムの型1, カラム名2 カラムの型2, ...)
```

[![Image from Gyazo](https://i.gyazo.com/c75e6e91635c4d383ddfb254311dab2f.png)](https://gyazo.com/c75e6e91635c4d383ddfb254311dab2f)

> 引用元 > [カラムを追加する(ALTER TABLE ADD文)](https://www.dbonline.jp/mysql/table/index18.html#section3)

## カラムの修正

```
ALTER TABLE テーブル名 CHANGE oldカラム名 newカラム名 newカラムの型
```

[![Image from Gyazo](https://i.gyazo.com/fdb2d6ef452ccdb7b54473d98e663a81.png)](https://gyazo.com/fdb2d6ef452ccdb7b54473d98e663a81)

> 引用元 > [カラムの定義を変更する(ALTER TABLE CHANGE文、 ALTER TABLE MODIFY文)](https://www.dbonline.jp/mysql/table/index18.html#section2)

## カラムの削除

```
ALTER TABLE テーブル名 DROP カラム名
```

[![Image from Gyazo](https://i.gyazo.com/de4999c91bdd936aae10c8c5748e9df0.png)](https://gyazo.com/de4999c91bdd936aae10c8c5748e9df0)

> 引用元 > [カラムを削除する(ALTER TABLE DROP文)](https://www.dbonline.jp/mysql/table/index18.html#section4)

## テーブルに保存するデータの操作

```
# 全てのカラムに値を入れる場合
INSERT INTO テーブル名 VALUES(値1, 値2, 値3, ...);

# 特定のカラムのみに値を入れる場合
INSERT INTO テーブル名(カラム名1, カラム名2) VALUES(値1, 値2);
```

[![Image from Gyazo](https://i.gyazo.com/5e565e9396f4d58a2c4c1da062925324.png)](https://gyazo.com/5e565e9396f4d58a2c4c1da062925324)

> 引用元 > [データを追加する(INSERT文)](https://www.dbonline.jp/mysql/insert/index1.html)

## データを更新

```
UPDATE テーブル名 SET 変更内容 WHERE 条件;
```

[![Image from Gyazo](https://i.gyazo.com/84f4568a009d76d18ff8282dc9cb4d24.png)](https://gyazo.com/84f4568a009d76d18ff8282dc9cb4d24)

> 引用元 > [データを更新する(UPDATE文)](https://www.dbonline.jp/mysql/insert/index7.html)

## データの削除

```
DELETE FROM テーブル名 WHERE 条件;
```

[![Image from Gyazo](https://i.gyazo.com/064638c9ef724026f5c64b3e967a0a09.png)](https://gyazo.com/064638c9ef724026f5c64b3e967a0a09)

> 引用元 > [データを削除する(DELETE文)](https://www.dbonline.jp/mysql/insert/index10.html)

> 魔法の呪文
> ```
> TRUNCATE TABLE user;
> ```
> [![Image from Gyazo](https://i.gyazo.com/17b161c0c47870997e79df56c7bdd187.png)](https://gyazo.com/17b161c0c47870997e79df56c7bdd187)

次回あたりは､基本的な検索の構文などを投稿予定です｡

\- fin -