SlideShare a Scribd company logo
1 of 12
Download to read offline
イタンジ的プログラミング講座#3	
  2/23	
今後の予定	
  
#1	
  2/9:プログラムの基礎	
  
#2	
  2/16:現代のプログラム(関数とオブジェクト指向)	
  
#3	
  2/23:データベースとSQL	
  
#4	
  3/2:WEBプログラミングとフレームワーク	
  
	
  
※毎朝8時から実施します	
  
前回の復習と事前準備	
•  動画で学ぶRuby、有名なドットインストール	
h6p://do;nstall.com/lessons/basic_ruby_v2	
  
•  その他有名な学習サービス	
  
h6p://bit.ly/1FkUNJo	
  
	
  
	
  
データベースとは?	
•  データベースは関係性のあるデータが一杯入った入れ物です	
  
•  関係性?例えば物件というデータは管理会社という他のデータと関係性
があると思います	
  
•  関係性+データを保存するので正式にはリレーショナルデータベースと
呼ばれます	
  
•  エクセルのシートがVLOOKUPで関連付けられているイメージを持つと分
かりやすいです	
  
h6ps://docs.google.com/spreadsheets/d/
16z0oc26OSFJMokHFvsoT2yTVr2ujqC3sA4zCriPA7oA/edit?usp=sharing	
  
プログラムとデータベース	
•  プログラム、特にWEBプログラムは基本的にはデータを扱う
プログラムです	
  
•  データを作る(CREATE)、読む(READ)、更新する(UPDATE)、
削除する(DELETE)これらの操作を行う為にWEBプログラム
は存在する事が一般的です	
  
•  それぞれの頭文字を取ってCRUD(クルード)と呼ばれるのが
WEBプログラムの基本となります	
  
データベースを操作する言語SQL	
•  毎回言語が変わって大変だと思いますが、データベースは
SQLという言語で操作します	
  
•  INSERT(作る、CREATE)	
  
•  SELECT(読む、READ)	
  
•  UPDATE(更新する、UPDATE)	
  
•  DELETE(削除する、DELETE)	
  
まずはデータベースを作ってみます	
CREATE	
  TABLE	
  yokozawa_employees	
  (	
  
	
  	
  id	
  INT,	
  
	
  	
  first_name	
  VARCHAR(30),	
  
	
  	
  last_name	
  VARCHAR(30),	
  
	
  	
  age	
  INT	
  
);	
  
CRUDを操作するSQL	
・データを作るINSERT文	
  
INSERT	
  INTO	
  yokozawa_employees	
  VALUES	
  (1,	
  "yokozawa",	
  "yusuke",	
  31);	
  
	
  
・データを読むSELECT	
  
SELECT	
  *	
  FROM	
  yokozawa_employees	
  WHERE	
  id	
  =	
  1;	
  
	
  
・データを更新する	
UPDATE	
  yokozawa_employees	
  SET	
  age	
  =	
  32	
  WHERE	
  id	
  =	
  1;	
  
	
  
・データを削除する	
DELETE	
  FROM	
  yokozawa_employees	
  WHERE	
  id	
  =	
  1;	
  
	
  
より複雑なデータを取り扱う	
・曖昧な絞込条件	
SELECT	
  *	
  
	
  	
  FROM	
  customers	
  
	
  WHERE	
  email	
  LIKE	
  '%yokozawa@itandi.co.jp%';	
  
	
  
・複数条件	
SELECT	
  *	
  FROM	
  customer_contacts	
  
	
  WHERE	
  room_id	
  IS	
  NOT	
  NULL	
  
	
  	
  	
  AND	
  customer_id	
  =	
  4256	
  
;	
  
より複雑なデータを取り扱う	
・集計、ソート	
SELECT	
  customer_id,	
  count(*)	
  
	
  	
  FROM	
  customer_contacts	
  
	
  GROUP	
  BY	
  customer_id	
  
	
  ORDER	
  BY	
  count(*)	
  DESC	
  
;	
  
	
  
・結合	
SELECT	
  c.created_at	
  
	
  	
  	
  	
  	
  	
  	
  ,cs.first_contact_at	
  
	
  	
  	
  	
  	
  	
  	
  ,TO_DAYS(cs.first_contact_at)	
  -­‐	
  TO_DAYS(c.created_at)	
  
	
  	
  FROM	
  customers	
  as	
  c	
  
	
  INNER	
  JOIN	
  customer_statuses	
  cs	
  
	
  	
  	
  	
  ON	
  c.id	
  =	
  cs.customer_id	
  
;	
  
Appendix	
•  ディレクターがSQLを学んでよかったこと@nanapi	
  tech	
  blog	
  
h6p://nanapi.co.jp/blog/2014/08/15/director-­‐skill-­‐sql/	
  
	
  
•  マンガで分かるデータベース	
h6p://amzn.to/1CCXxOM	
  
	
  
•  業務システムのための上流工程入門―要件定義から分析・設計まで	
h6p://amzn.to/1DARawH	
  
	
  
•  かなり古いサイトですがネットリファレンスとしてはとても優秀なサイト	
h6p://homepage2.nisy.com/sak/w_sak3/doc/sysbrd/sak3sql.htm	
  
※その他SQLに関する本はイタンジ社内にあるので興味があれば読んで下
さい。
まとめ	
•  データベースとは関係性を持った表の集合です	
  
•  CRUDという動作があり、SQLという言語で操作します	
  
•  WEBプログラムの殆ど全てはデータを扱うプログラムです	
  
•  SQLそのものはシンプルで覚えやすいです	
  
宿題	
•  trainingデータベースにid,社員ID,出勤日時,退勤日時を持つ
yokozawa_;mecardsテーブルを作る	
•  ;mecardsテーブルに直近3日間の出勤記録をINSERTする	
•  ;mecardsテーブルの一番最近の出勤記録の出勤日時を一
時間早くUPDATEする	
•  ;mecardsテーブルの一番古い出勤記録をDELTEする	
•  employeesテーブルと;mecardsテーブルを結合し、社員id,出
勤日数を表示する	
  
	
  
※ヒントJOINとcount(*)を利用します

More Related Content

What's hot

mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発kishima7
 
俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)Masayuki KaToH
 
ページャ lessを使いこなす
ページャ lessを使いこなすページャ lessを使いこなす
ページャ lessを使いこなすToshiyuki Shimono
 
ウェブエンジニアとしての1年目を振り返って
ウェブエンジニアとしての1年目を振り返ってウェブエンジニアとしての1年目を振り返って
ウェブエンジニアとしての1年目を振り返ってKohki Yamagiwa
 
Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理Toshiyuki Shimono
 
ググリワードを探す話
ググリワードを探す話ググリワードを探す話
ググリワードを探す話toru ishikawa
 

What's hot (7)

mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発
 
俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)
 
stapy#23 LT
stapy#23 LTstapy#23 LT
stapy#23 LT
 
ページャ lessを使いこなす
ページャ lessを使いこなすページャ lessを使いこなす
ページャ lessを使いこなす
 
ウェブエンジニアとしての1年目を振り返って
ウェブエンジニアとしての1年目を振り返ってウェブエンジニアとしての1年目を振り返って
ウェブエンジニアとしての1年目を振り返って
 
Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理
 
ググリワードを探す話
ググリワードを探す話ググリワードを探す話
ググリワードを探す話
 

Similar to 20150217 イタンジプログラミング講座テキスト第3回

TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化tetsuro ito
 
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保するDNA Data Bank of Japan center
 
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』Insight Technology, Inc.
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめYasushi Hara
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation libraryKouta Shiobara
 
データベース技術 12(Database 12)
データベース技術 12(Database 12)データベース技術 12(Database 12)
データベース技術 12(Database 12)Yuka Obu
 
AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話Kenichiro Mori
 
Creating and Using Links between Data Objects
Creating and Using Links between Data ObjectsCreating and Using Links between Data Objects
Creating and Using Links between Data ObjectsMitsuo Yamamoto
 
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題Kenta Oono
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...NTT DATA Technology & Innovation
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~Developers Summit
 
Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4Microsoft
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Etsuji Nakai
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_opsume3_
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会otmb
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化Nobuyori Takahashi
 
TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介Takeo Imai
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructurePreferred Networks
 

Similar to 20150217 イタンジプログラミング講座テキスト第3回 (20)

TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化
 
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation library
 
データベース技術 12(Database 12)
データベース技術 12(Database 12)データベース技術 12(Database 12)
データベース技術 12(Database 12)
 
AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話
 
Creating and Using Links between Data Objects
Creating and Using Links between Data ObjectsCreating and Using Links between Data Objects
Creating and Using Links between Data Objects
 
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
 
Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
 
Ohs#7 学習API
Ohs#7 学習APIOhs#7 学習API
Ohs#7 学習API
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
 

More from Yusuke Yokozawa

少人数スタートアップで始める 意識低い系グロースハックへの取り組み
少人数スタートアップで始める 意識低い系グロースハックへの取り組み少人数スタートアップで始める 意識低い系グロースハックへの取り組み
少人数スタートアップで始める 意識低い系グロースハックへの取り組みYusuke Yokozawa
 
20160226-アジャイルひよこクラブkeynote
20160226-アジャイルひよこクラブkeynote20160226-アジャイルひよこクラブkeynote
20160226-アジャイルひよこクラブkeynoteYusuke Yokozawa
 
2015/12/18 アジャイルひよこくらぶ発表資料
2015/12/18 アジャイルひよこくらぶ発表資料2015/12/18 アジャイルひよこくらぶ発表資料
2015/12/18 アジャイルひよこくらぶ発表資料Yusuke Yokozawa
 

More from Yusuke Yokozawa (7)

少人数スタートアップで始める 意識低い系グロースハックへの取り組み
少人数スタートアップで始める 意識低い系グロースハックへの取り組み少人数スタートアップで始める 意識低い系グロースハックへの取り組み
少人数スタートアップで始める 意識低い系グロースハックへの取り組み
 
20160517-資料
20160517-資料20160517-資料
20160517-資料
 
20160226-アジャイルひよこクラブkeynote
20160226-アジャイルひよこクラブkeynote20160226-アジャイルひよこクラブkeynote
20160226-アジャイルひよこクラブkeynote
 
2015/12/18 アジャイルひよこくらぶ発表資料
2015/12/18 アジャイルひよこくらぶ発表資料2015/12/18 アジャイルひよこくらぶ発表資料
2015/12/18 アジャイルひよこくらぶ発表資料
 
LT資料
LT資料LT資料
LT資料
 
Gstudy 公開用資料
Gstudy 公開用資料Gstudy 公開用資料
Gstudy 公開用資料
 
アジェンダ
アジェンダアジェンダ
アジェンダ
 

20150217 イタンジプログラミング講座テキスト第3回