【SQL】新しいテーブルを作って、値を入れてみる。no.3

![見出しを追加 - 2021-04-13T131532.198.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/af2b542b-412c-eb97-10cc-5cac0f9c7207.png)


こんにちは、まゆみです。

SQLについての記事をシリーズで書いています

今回は第3回目になります

前回・前々回の記事では、SQLの周辺情報の概要をお伝えしてきました。

今回の記事から、実際にSQLを書いていこうと思います。

ではさっそく始めていきますね。


#SQLのドキュメント

SQLのドキュメントで一番整理されてて使いやすい(私の主観ですが...)のは、[w3schools](https://www.w3schools.com/sql/default.asp)なので、こちらのサイトを使いながら学習されることをオススメします。

![スクリーンショット 2021-04-13 101121.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/fa2a199e-f849-c7d5-6e23-f67543250dca.jpeg)

SQLでテーブル型のデータベースを

><font color="Red">C</font>reate (作る)

><font color="Red">R</font>ead (読み込む)

><font color="Red">U</font>pdate (更新する)

><font color="Red">D</font>estroy (削除する)

をしていくことを今回の記事から学習していきましょう。

データベースの専門用語で<font color="Red">CRUD(クラッド)</font>と呼ばれます。

#SQLを書くIDE(Integrated Development Environment)
では、SQLは何者なのか？MySQLとどう違うのか分かったところで、(そんなこと知らないっていう人は、[こちらの記事](https://qiita.com/Mayumi_Pythonista/items/ccdbdd8b4dd63a3d0475)を参考にどうぞ)SQLを練習してみましょう。


#SQLを気軽に練習してみたい

[http://sqlite.com/](https://sqliteonline.com/)のサイトにアクセスしてみましょう

![スクリーンショット 2021-04-13 102731.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/69b881d5-9211-c4cf-4013-4afd4c9fb52e.jpeg)

では準備ができましたら、さっそく

<font color="Red">C</font>reate

でテーブル形式のデータベースを作っていきましょう

#Create　テーブルを作る
w3schools のチュートリアルを見てみると、『SQL Create　Table』と書かれた項目がありますので、そちらを開いてみましょう

![スクリーンショット 2021-04-13 103536.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/b44a8208-8bfd-1065-46a6-2280317b620c.jpeg)


```
CREATE TABLE テーブルの名前
```

テーブルを作ると言っても

>①テーブル名

>②それぞれのコラムに入る値のデータタイプ(int, string, money, etc...)

のみを定めることになります。

値を入れていくプロセスは、また別の命令を書くことになるので、そのことは頭の隅に置いておいてくださいね。



![見出しを追加 - 2021-04-13T120136.683.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/444ef6da-3089-2820-db65-a2da3560b763.png)

上記のようなテーブルを作りましょう

>テーブル名は『customers』

>id のデータ型は『INT』

>name, addressのデータ型は『STRING』


ですね。

ドキュメントを参考に同じようにコードを書きます。


それらが書けたら、テーブルを作る最後の締めくくりにするのは、『primary key』を設定する事です。。

Primary Keys を設定する事によって、データを検索するときにそのデータを特定することができます。

w3schools に、Primary Keys を設定する仕方が載っていますので、開いてみましょう

![スクリーンショット 2021-04-13 130033.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/ae1b6f89-148f-68e6-2b70-f237c49a2fc4.jpeg)


![スクリーンショット 2021-04-13 121139.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/72c7b3d5-2675-c23b-60da-5867609b4603.jpeg)

まず、<font color="Red">Primary Keys に設定するカラムに『NULL』が格納されてはダメ</font>なので、今回Primary Keysにする『id』の横に『NOT NULL』と書きましょう。

そして一番下に、

PRIMARY KEYS(id)

と書きます。

『RUN』で実行すると新しいテーブルが出来上がります。
![スクリーンショット 2021-04-13 124149.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/2eec3339-c8c1-4f85-551c-b85d5db1ca67.jpeg)



#テーブルに値を入れる(insert)

先ほど言ったように、テーブルを作ってもまだ値が入っていない状態です。

<font color="Red">値を入れるには、『INSERT INTO』</font>を使います

w3schoolsのドキュメントを見てみます

![スクリーンショット 2021-04-13 124918.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/616d3e71-3cf2-f8ca-9094-e9f12cac0af4.jpeg)

>①コラム名を明示しながら、値を入れるか

>②値のみを書くか

になります。

今回は、②の方法で値を入れてみましょう

![スクリーンショット 2021-04-13 125614.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/3019a181-d9ef-9fcf-3068-7ac07904beee.jpeg)

必要なコードが書けたら、『RUN』で実行しましょう


![スクリーンショット 2021-04-13 130033.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/7b62f439-ac20-a43a-6b54-ad2e220f3844.jpeg)

無事、テーブルに値を入れることができました。

もし仮に、今の時点で、コラムの値が欠けているデータをテーブルに入れたい時は


①の方法で、<font color="Red">コラム名も明示しながら</font>テーブルを作ります。


例えば、顧客Mayumi のaddressの情報はまだ手に入っていないとしましょう

![スクリーンショット 2021-04-13 130824.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/529d07a6-4f43-e11a-b506-ac593b575d71.jpeg)
値を入れたいコラムのみを指定します

![スクリーンショット 2021-04-13 130904.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/61de2792-296a-310d-265f-65f2c06dc08c.jpeg)

『NULL』と表示されます

ただし、この時も、Primary Key　を設定しているコラムに値を入れないということはできません。

#まとめ

今回の記事はこれくらいで締めくくらせていただきます。

次回の記事では、作ったテーブルから実際にデータを読み込む方法を書いていこうと思います