SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
データベース技術
第10回(2015.12.1)
115年12月7日月曜日
SQLiteの操作
•データーベスの作成&接続
•テーブルの作成
•データの追加、更新、削除
•データの取得
create table、alter table、drop table
insert、update、delete
select文、条件文の作り方
between by, is null, order by, group by
集計関数
215年12月7日月曜日
表の結合
•SQL文作成のポイント
- 「主キーとそれを参照している外部キーが等しい」と
いう条件をつける
- 同じカラム名がある場合はテーブル名.カラム名とする
•具体例:売上.輸出先コード=輸出先.輸出先コード
報告書コード 日付 輸出先コード
1101 3/5 12
1102 3/7 23
1103 3/8 25
輸出先コード 輸出先名
12 アメリカ
23 中国
25 フランス
「売上」表 「輸出先」表
参照
315年12月7日月曜日
内部結合(inner join)
•値が共通する行だけ選択する結合方法
- 等結合(equi join)
• 同じ意味を表す列を介して表を結合すること
• 同じ値を持つ行を結合条件として指定する
• 売上報告書の例がこれにあたる
- 自然結合(natural join)
• 重複する列を1つにまとめる結合
415年12月7日月曜日
外部結合(outer join)
•どちらか一方の表の行全体を残し、もう片方の
表にない行に空値を設定する結合方法
- 左外部結合(left outer join)
- 右外部結合(right outer join)
• 2つの表をSQL文中で左・右どちらかにおいた時、どちらの表の行を全
部残すかによって決まる
515年12月7日月曜日
左外部結合と右外部結合
右表左表
左外部結合 右外部結合
615年12月7日月曜日
ビュー表の作成
•ビュー表(View table)
- ユーザーから見たときのみに存在する仮想的な表
- 実表(Base table):実際のデータが入力される表
•ビュー表 作成の書式
- CREATE VIEW ビュー名 AS SELECT文;
•作成したビューからデータの取得
- SELECT * FROM ビュー名;
715年12月7日月曜日
ビュー表 実行例
- .tablesを実行すると実表と合わせてビューも表示される
- ビューの削除:DROP VIEW ビュー名;
815年12月7日月曜日
ビュー表の使用方法の例
•複数の表を結合した結果をビューとして定義し
ておく
- ビュー表に対して検索を行う
- ビュー表をユーザに提示する
報告書コード 日付 輸出先名 商品名 単価 個数
1101 3/5 アメリカ メロン ¥800 1,100
1101 3/5 アメリカ いちご ¥150 300
1102 3/7 中国 りんご ¥120 1,700
1103 3/8 フランス レモン ¥200 500
915年12月7日月曜日
データベースとプログラム
•プログラムとデータの独立性
- SQLでデータベース処理を行うことにより、プログラ
ムとデータを分けて考えることが可能
- 生産性の向上につながる
データ
ベース
DBMSプログラム
SQL
1015年12月7日月曜日
クライアントとサーバ
•Webの場合
- アプリケーションサーバがDBのデータを利用
データ
ベース
データベースサーバ
Webサービス Webアプリ
アプリケーション
サーバ
Webサーバ
Webサイトの見た目を作る
クライアントとの窓口
計算をする データを管理する
役割り:
ユーザ
クライアント
1115年12月7日月曜日
プログラムの例(Ruby)
require "sqlite3"
db = SQLite3::Database.new("database.db")
sql = "create table Item (商品コード integer primary key, 商品名 text, 価格 int)"
db.execute(sql)
puts "Itemテーブルを作成しました。"
db.transaction do
	 sql = "insert into Item values (?, ?, ?)"

 db.execute(sql, 101, "メロン", 800)

 db.execute(sql, 102, "いちご", 150)

 db.execute(sql, 103, "リンゴ", 120)

 db.execute(sql, 104, "レモン", 200)
end
db.execute2("select * from Item") do | row |
	 puts row.join("t")
end
db.close
SQL文を作成
SQL文を作成
SQL文を実行
具体的なデータを入力し
SQL文を実行
SQL文を実行
結果を表示
データベースに接続
1215年12月7日月曜日
プログラム内部での表の扱い
•カーソル(行の位置を表す概念)を使う
- 抽出結果として得た表に、1行ずつアクセスする
- 繰り返し文を使って1行ずつカーソルを進める
- フェッチ:カーソルで1行ずつデータを取り出すこと
db.execute2("select * from Item") do | row |
	 puts row.join("t")
end
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
カーソル
繰り返し文
1315年12月7日月曜日
プログラムを作ってみよう
•テキストエディタでソースコードを入力
•文字コード:utf-8
•ファイル名「database.rb」で保存
1415年12月7日月曜日
ソースコード
require "sqlite3"
db = SQLite3::Database.new("database.db")
sql = "create table Item (商品コード integer primary key, 商品名 text, 価格 int)"
db.execute(sql)
puts "Itemテーブルを作成しました。"
db.transaction do
	 sql = "insert into Item values (?, ?, ?)"

 db.execute(sql, 101, "メロン", 800)

 db.execute(sql, 102, "いちご", 150)

 db.execute(sql, 103, "リンゴ", 120)

 db.execute(sql, 104, "レモン", 200)
end
db.execute2("select * from Item") do | row |
	 puts row.join("t")
end
db.close
1515年12月7日月曜日
プログラムを動かす
•コマンドプロンプトを使う
- 「ruby database.rb」と入力 -> エンターキーで実行
•プログラムを動かせるWebサービスを使う
- paiza.IO
• C、C++、Java、PHP、MySQLなど様々なコードの実行が可能
• アカウントを作成するとソースコードの保存、公開などができる
1615年12月7日月曜日
paiza.IOでのプログラム実行
- 言語からRubyを選択し、ソースコードを入力、実行
Rubyを選択
ソースコード
を入力
実行
実行結果
1715年12月7日月曜日

Weitere ähnliche Inhalte

Andere mochten auch

私のSql -My Sql
私のSql -My Sql私のSql -My Sql
私のSql -My Sqlstiq 2e
 
シリコンバレー 面接体験
シリコンバレー 面接体験シリコンバレー 面接体験
シリコンバレー 面接体験paiza
 
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」Hiromu Shioya
 
データベース技術 8(Database_8)
データベース技術 8(Database_8)データベース技術 8(Database_8)
データベース技術 8(Database_8)Yuka Obu
 
データベース技術 7(Database 7)
データベース技術 7(Database 7)データベース技術 7(Database 7)
データベース技術 7(Database 7)Yuka Obu
 
データベース技術 13(Database 13)
データベース技術 13(Database 13)データベース技術 13(Database 13)
データベース技術 13(Database 13)Yuka Obu
 
Webアプリを利用した情報科の授業案の提案
Webアプリを利用した情報科の授業案の提案Webアプリを利用した情報科の授業案の提案
Webアプリを利用した情報科の授業案の提案Takuya Numazaki
 
MySQLバックアップの基本
MySQLバックアップの基本MySQLバックアップの基本
MySQLバックアップの基本yoyamasaki
 
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方Hiroyuki Sugimoto
 
データベース技術 9(Database 9)
データベース技術 9(Database 9)データベース技術 9(Database 9)
データベース技術 9(Database 9)Yuka Obu
 

Andere mochten auch (10)

私のSql -My Sql
私のSql -My Sql私のSql -My Sql
私のSql -My Sql
 
シリコンバレー 面接体験
シリコンバレー 面接体験シリコンバレー 面接体験
シリコンバレー 面接体験
 
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
 
データベース技術 8(Database_8)
データベース技術 8(Database_8)データベース技術 8(Database_8)
データベース技術 8(Database_8)
 
データベース技術 7(Database 7)
データベース技術 7(Database 7)データベース技術 7(Database 7)
データベース技術 7(Database 7)
 
データベース技術 13(Database 13)
データベース技術 13(Database 13)データベース技術 13(Database 13)
データベース技術 13(Database 13)
 
Webアプリを利用した情報科の授業案の提案
Webアプリを利用した情報科の授業案の提案Webアプリを利用した情報科の授業案の提案
Webアプリを利用した情報科の授業案の提案
 
MySQLバックアップの基本
MySQLバックアップの基本MySQLバックアップの基本
MySQLバックアップの基本
 
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
 
データベース技術 9(Database 9)
データベース技術 9(Database 9)データベース技術 9(Database 9)
データベース技術 9(Database 9)
 

Mehr von Yuka Obu

データベース技術 14(Database 14)
データベース技術 14(Database 14)データベース技術 14(Database 14)
データベース技術 14(Database 14)Yuka Obu
 
データベース技術 12(Database 12)
データベース技術 12(Database 12)データベース技術 12(Database 12)
データベース技術 12(Database 12)Yuka Obu
 
データベース技術 6(Database_6)
データベース技術 6(Database_6)データベース技術 6(Database_6)
データベース技術 6(Database_6)Yuka Obu
 
データベース技術 5(Database_5)
データベース技術 5(Database_5)データベース技術 5(Database_5)
データベース技術 5(Database_5)Yuka Obu
 
データベース技術 4(Database_4)
データベース技術 4(Database_4)データベース技術 4(Database_4)
データベース技術 4(Database_4)Yuka Obu
 
データベース技術 3(Database_3)
データベース技術 3(Database_3)データベース技術 3(Database_3)
データベース技術 3(Database_3)Yuka Obu
 
データベース技術 2(Database_2)
データベース技術 2(Database_2)データベース技術 2(Database_2)
データベース技術 2(Database_2)Yuka Obu
 
データベース技術 1(Database_1)
データベース技術 1(Database_1)データベース技術 1(Database_1)
データベース技術 1(Database_1)Yuka Obu
 
ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1Yuka Obu
 
企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のために企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のためにYuka Obu
 
Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Yuka Obu
 
Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Yuka Obu
 
Twitter in Hitachiohta 1
Twitter in Hitachiohta 1Twitter in Hitachiohta 1
Twitter in Hitachiohta 1Yuka Obu
 

Mehr von Yuka Obu (14)

データベース技術 14(Database 14)
データベース技術 14(Database 14)データベース技術 14(Database 14)
データベース技術 14(Database 14)
 
データベース技術 12(Database 12)
データベース技術 12(Database 12)データベース技術 12(Database 12)
データベース技術 12(Database 12)
 
データベース技術 6(Database_6)
データベース技術 6(Database_6)データベース技術 6(Database_6)
データベース技術 6(Database_6)
 
データベース技術 5(Database_5)
データベース技術 5(Database_5)データベース技術 5(Database_5)
データベース技術 5(Database_5)
 
データベース技術 4(Database_4)
データベース技術 4(Database_4)データベース技術 4(Database_4)
データベース技術 4(Database_4)
 
データベース技術 3(Database_3)
データベース技術 3(Database_3)データベース技術 3(Database_3)
データベース技術 3(Database_3)
 
データベース技術 2(Database_2)
データベース技術 2(Database_2)データベース技術 2(Database_2)
データベース技術 2(Database_2)
 
データベース技術 1(Database_1)
データベース技術 1(Database_1)データベース技術 1(Database_1)
データベース技術 1(Database_1)
 
ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1
 
企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のために企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のために
 
Sns 2
Sns 2Sns 2
Sns 2
 
Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Twitter in Hitachiohta 3
Twitter in Hitachiohta 3
 
Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Twitter in Hitachiohta 2
Twitter in Hitachiohta 2
 
Twitter in Hitachiohta 1
Twitter in Hitachiohta 1Twitter in Hitachiohta 1
Twitter in Hitachiohta 1
 

Kürzlich hochgeladen

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 

Kürzlich hochgeladen (6)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

データベース技術 10(Database 10)