SlideShare a Scribd company logo
達⼈人に学ぶSQL徹底指南書
勉勉強会 #0
⽬目次
• SQLとは
• CREATE DATABASE
• SQL DATA TYPE
• CREATE TABLE
• INSERT INTO
• SELECT
• WHERE
• UPDATE
⽬目次 (2)
• ALTER TABLE
• PRIMARY KEY
• FOREIGN KEY
• JOIN
SQLとは
• SQLとはMySQLやPostgresql,SqliteなどのRDBを操作するためのド
メイン固有⾔言語(特定のタスクに特化したコンピューター⾔言語)であ
る。
• SQLを操る事により、DBにしまうデータの構造や型、関連性の定義
などが可能。
• 使うRDBによって多少の⽂文法の違いがあるため注意が必要。
CREATE DATABASE
• DATABASEを操作する前にRDBの中で明示的に仕様するDATABASE
を定義する必要がある。
• 今回はsql_sampleと⾔言うDBを作る。
• CREATE DATABASE sql_sample;
• また、DATABASE内のデータを操作する為には明示的に使うDBを宣
⾔言する必要がある。
• USE sql_sample;
• DATABASEを消す際は DROP DATABASE <DB_NAME>
SQLデータ型
• テーブル構造に定義できるデータ型は以下
• CHAR (SIZE) 固定⻑⾧長⽂文字型、SIZEに指定した⻑⾧長さの固定⻑⾧長サイズの
⽂文字列列を保存できる。
• VARCHAR(SIZE) 可変⻑⾧長⽂文字型、SIZEに指定した⻑⾧長さの可変⻑⾧長サイズ
の⽂文字列列を保存できる。
• TINYTEXT 最⼤大255⽂文字のデータを保存できる⽂文字列列型
• TEXT 最⼤大65535byteの⽂文字列列を保存できる⽂文字列列型
• BLOB 最⼤大65535byteのバイナリデータを保存できる型
SQLデータ型 (2)
• MEDIUMTEXT 最⼤大16,777,215⽂文字を保存できる⽂文字列列型
• MEDIUMBLOB 最⼤大16,777,215byte保存できるバイナリデータ型
• LONGTEXT 最⼤大4,294,967,295⽂文字保存できる⽂文字列列型
• LONGBLOB 最⼤大4,294,967,295⽂文字保存できるバイナリデータ型
• 書ききれないほどあるので詳しくは https://www.w3schools.com/
sql/sql_datatypes.asp を参照
•
CREATE TABLE⽂文(テーブルを作成する)
• CREATE⽂文はDB内にテーブルを作成し、テーブル構造を定義する事
ができる。
• CREATE⽂文でテーブルを作成していない場合、データの挿⼊入や検索が
できない。
• ⽂文法
• CREATE TABLE <TABLE_NAME>

(field_name field_type, field2_name, field_type);
• 今回は次のような構造のテーブルを定義する。
CREATE TABLE⽂文(テーブルを作成する)
CREATE TABLE⽂文(テーブルを作成する)
• 実際にやってみよう
• https://github.com/yasuno0327/LearnSQL からリポジトリをclone
• cloneしたリポジトリに移動してdocker-compose up
• mysql -u root -p でmysqlに⼊入る => 設定してあるパスワードは
password
• それぞれコマンドを実⾏行行。
INSERT INTO⽂文
• INSERT⽂文はDBのtable構造の中に実際にデータを挿⼊入する際に使う。
• ⽂文法
• INSERT INTO <TABLE_NAME> (field_name1, field_name2)

VALUES (value01, value02),(value11, value12);
• field_nameにはtableのfield名を⼊入れ, valueにはそのfieldに⼊入れたい値を⼊入れ
る
• そうするとDBに値を保存する事ができる。
• articlesのtitleとbodyに何か⼊入れてみてください。
SELECT ⽂文
• SELECT⽂文は⽂文字通りDBのデータを選ぶSQL⽂文
• SELECTを使うとDBから⾒見見たいデータを取ってきてくれる
• ⽂文法
• SELECT <FIELD_NAME> FROM <TABLE_NAME>;

SELECT <FIELD_NAME1>, <FIELD_NAME2> FROM <TABLE_NAME>;

SELECT * FROM <TABLE_NAME>;
• articlesからinsertしたtitleとbodyのデータ、全てのデータを取ってきて
みよう。
WHERE ⽂文
• WHEREはSELECTの後につけて検索条件を指定する事ができる。
• WHEREをつける事により、idが2のものを取ってくる、5以上のものを取ってくるな
どの複雑な検索を実現する事ができる。
• ⽂文法

SELECT <FIELD_NAME> FROM <TABLE_NAME> WHERE <CONDITION>;
• conditionには検索条件が⼊入ります
• 例例 SELECT title FROM articles WHERE id > 2; (articles.idが2より⼤大きい
articles.titleを取ってくる)
• title = “前回INSERTしたtitle” となるarticlesの全カラムを取ってきてみよう
UPDATE ⽂文
• INSERTしたデータを修正するためのSQL⽂文。
• ⽂文法

UPDATE <TABLE_NAME> SET <FIELD_NAME> = <NEW_VALUE>

WHERE <CONDITION>;
• WHEREを使ってある条件のarticles.titleを変更更してみよう。
ALTER TABLE ⽂文
• ALTER TABLEは作成したテーブルのデータ構造を変更更したい場合に使う。
• ⽂文法

ALTER TABLE <TABLE_NAME> <COMMAND> <COMMAND_SYNTAX>;
• コマンドにはフィールド追加のADD, フィールド名変更更のCHANGE,

フィールド型変更更のMODIFYがある。
• 詳しい紹介は時間の都合で割愛。

https://www.1keydata.com/jp/sql/sql-alter-table.php

(ここ⾒見見るとええで)
PRIMARY KEY
• いわゆる主キー、データを個別に判別するために使うキーフィール
ド
• PRIMARY KEYは重複してはいけない要素なのでこれを使って個別の
値を取ってくることができる。
• 追加⽅方法はTABLE作成の際に

CREATE TABLE articles 

(id int, title varchar(255), PRIMARY KEY(id)); のようにする
• TABLEを修正して追加する際は

ALTER TABLE articles ADD PRIMARY KEY(id);
FOREIGN KEY
• いわゆる外部キー、外部のテーブルとの関連付けのために⽤用いる

(Railsだとhas_manyとかhas_oneとか)
• FOREIGN KEYによって外部のテーブルの主キーを持ち、関連するデータの情
報を記憶し、SELECTの際に同時に取ってくる事が可能になる。
• 追加⽅方法はTABLE作成の際に

CREATE TABLE articles (

id int, title varchar(255),

FOREIGN KEY(user_id) REFERENCES users.id;

);

のようにする
• TABLEを修正して追加する際は

ALTER TABLE articles ADD FOREIGN KEY(user_id) REFERENCES users(id);
JOIN ⽂文
• テーブルを結合させます。
• WHEREで検索する際に関連性のあるテーブルから情報を取ってくるのはJOINで結
合してからでないと出来ません。デフォルトでは内部結合(結合条件にnilがある値は
無視される)されます。

外部結合は指定された側のtableを基準に相⼿手⽅方の値がnilであっても取ってきます。
• ⽂文法 (内部結合) JOINはINNER JOINでもOK、INNERを明示したほうが良い

SELECT <FIELD_NAME> FROM <TABLE_NAME>

JOIN <TABLE_NAME> ON <CONDITION>
• 実際にuserとarticleテーブルを結合させてuserと関連するarticleを取ってきてみよ
う。
最後に
• 達⼈人に学ぶSQL徹底指南書勉勉強会 #0お疲れ様でした。
• 次回からは実際に本を読みながら勧めていくので本を持ってきても
らうのが望ましいです。
• ⼀一応資料料は⽤用意しようと思いますが忙しかったら資料料なし本ベース
で進めるかもしれないのであしからず….

• 良いSQL ライフを送りましょう…!!

More Related Content

Similar to 達人に学ぶSQL徹底指南書 第2版勉強会 #0

About NoSQL
About NoSQLAbout NoSQL
About NoSQL
hideaki honda
 
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
Oda Shinsuke
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Oda Shinsuke
 
SQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しSQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話し
Insight Technology, Inc.
 
オープンソース・データベースの最新事情
オープンソース・データベースの最新事情オープンソース・データベースの最新事情
オープンソース・データベースの最新事情
Meiji Kimura
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
kumake
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば貴仁 大和屋
 
Webアプリケーション入門(3)
Webアプリケーション入門(3) Webアプリケーション入門(3)
Webアプリケーション入門(3) Takashi Asanuma
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
Oshitari_kochi
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術
Oda Shinsuke
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介
Oda Shinsuke
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
CO-Sol for Community
 
Polybase scale outgroups
Polybase scale outgroupsPolybase scale outgroups
Polybase scale outgroups
Microsoft
 
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
Masaki Yamakawa
 
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
elanlilac
 
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi ShinodaInsight Technology, Inc.
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
yoyamasaki
 
2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能
keki3
 
Nosql
NosqlNosql
Nosqluenno
 
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi InabaInsight Technology, Inc.
 

Similar to 達人に学ぶSQL徹底指南書 第2版勉強会 #0 (20)

About NoSQL
About NoSQLAbout NoSQL
About NoSQL
 
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
 
SQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しSQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話し
 
オープンソース・データベースの最新事情
オープンソース・データベースの最新事情オープンソース・データベースの最新事情
オープンソース・データベースの最新事情
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば
 
Webアプリケーション入門(3)
Webアプリケーション入門(3) Webアプリケーション入門(3)
Webアプリケーション入門(3)
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
 
Polybase scale outgroups
Polybase scale outgroupsPolybase scale outgroups
Polybase scale outgroups
 
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
20221117_クラウドネイティブ向けYugabyteDB活用シナリオ
 
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
 
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
 
2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能
 
Nosql
NosqlNosql
Nosql
 
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 

Recently uploaded (8)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 

達人に学ぶSQL徹底指南書 第2版勉強会 #0