Download presentation
Presentation is loading. Please wait.
Published byこうざぶろう ふじがわ Modified 約 8 年前
1
SQLエディタによる データベースプログラミング 01
2
データベースとはデータを1つにまとめて 複数のシステムで共有できるようにしたもの 蔵書管理システム 貸出管理システム 生徒ファイル 生徒番号 学年 クラス 番号 名前 性別 住所 貸出ファイル 貸出番号 図書番号 貸出月 貸出日 蔵書ファイル 図書番号 書名 著者名 分類 データベース 情報システム 前回のおさらい
3
関係データベースではデータを行(レコード)と 列(フィールド)による2次元の表(テーブル)で あらわし複数の表を組み合わせてデータを管理する 生徒番号学年クラス番号名前性別住所 12001111 奥沢一輝男狛田村 12002112 岡田一男男佐津町 12003113 吉村一郎男坂本村 行(レコード):1件ずつのデータ 列(フィールド):データ項目 前回のおさらい
4
関係データベースの表の操作 射影 指定した列(フィールド)を取り出す 選択 指定した行(レコード)を取り出す 結合 2つ以上の表(テーブル)を結びつける サクセスでこれらの操作を体験 前回のおさらい
5
データベースをプログラムで検索しよう ・コンピュータにはプログラムで指示をする ・プログラムはコンピュータに伝わる言語 (プログラミング言語)で書く ・SQLはデータベースを操作するための言語 ・今日はSQLでデータベースからデータを検索してみよう 今回の学習内容 前回は図書館だったが、今回は一般の商品を考えてみよう!!!
6
世の中のシステムでは、SQLというデータベースを 操作するための言語が使われている 商品コー ド 商品名メーカー価格 C4009 チキンヌードル<カ レー味> みずうみ製麺 150 C6390 坦々ヌードルみずうみ製麺 150 C7320 トマトヌードルみずうみ製麺 150 C8522 シーフードヌードルみずうみ製麺 150 :::: 商品コード商品名 C4009 チキンヌードル<カレ ー味> C6390 坦々ヌードル C7320 トマトヌードル C8522 シーフードヌードル :: サクセス:「表示 商品データ」サクセス:「射影 商品コード、商品名」 商品 コード 商品名メーカー価格 C7320 トマトヌードルみずうみ製麺 150 サクセス:「選択 商品名 トマトヌードル」 一般の商品をサクセスで考えると…
7
今回は「商品表(テーブル)」を扱う ・表(テーブル)名:product ・4個の列(フィールド)がある。 ・pidは商品コード。 この番号で商品を特定できる。(同じ番号の商品はない) ・pname, pmaker, ppriceに商品名、メーカー、価格が 入っている。 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格
8
SQLエディタを起動 SQL エディタを使って データベースを操作しよう! ● SQL エディタ http://saccess.eplang.jp/try/sql/
9
クラスIDとユーザIDの入力 クラスID・ユーザID入力エリアに それぞれ指示のあったIDを入力してください。 クラスID : 指定した6桁の数字 ユーザID : 自分の番号など(例: A07)
10
・画面のSQL実行エリアにプログラムを入れて実行する。 SQL実行エリア SQLエディタの使い方(1)
11
実行したプログラムは上の履歴表示エリアに追加される 履歴表示エリアのプログラムはマウスでクリックで 再度使える。 実行した結果は下に表示される。 実行されたプログラムの履歴 SQLを実行すると 実行結果が表示される SQLエディタの使い方(2)
12
SQL文が間違っていたら、エラーメッセージが表示される。 SQLエディタの使い方(3)
13
まずはデータベースに接続しよう 今回は「shop」データベースを使用します。 SQL実行エリアに「use shop;」と入力しましょう。
14
履歴表示エリアに入力したプログラムが表示されます。 SQL実行エリアの下に接続成功のコメントが表示されます。 接続成功のメッセージ 入力したプログラムが履歴として表示 まずはデータベースに接続しよう
15
SQLの書き方 ・英語の単語で命令を書く。英語の文章と並びが似ている。 select * from product; (英文として読むと「商品表(テーブル)から * を選べ」という意味になる) ・「select」は「選択した結果を表示する」命令。 ・「*」は「すべての項目」の意味。 ・「product」は「表(テーブル)の名前」。 ・英文と同じく単語を空白で区切る。末尾は「.」ではなく「 ;」(セミコロン)を書く。
16
・「 * 」の部分に列(フィールド)名を書くと そのフィールドだけが表示される。 ・2個以上の列(フィールド)名は「, 」(カンマ)で区切る。 射影の書き方 select フィールド名 from テーブル名; (例)商品名と価格のフィールドを表示する select pname, pprice from product;
17
● 射影の書き方 ● 「product」テーブルのフィールド名 例題 1.1 「商品名」だけを表示しよう。 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名;
18
select pname from product; 例題 1.1 「商品名」だけを表示しよう。 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答
19
select pname from product; 例題 1.1 「商品名」だけを表示しよう。 解答
20
● 射影の書き方 ※ 2個以上のフィールド名は「 ,」 (カンマ)で区切る ● 「product」テーブルのフィールド名 例題 1.2 「商品名」と「メーカー」を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名, フィールド名 from テーブル名 ;
21
select pname,pmaker from product; 例題 1.2 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 「商品名」と「メーカー」を表示しよう
22
select pname,pmaker from product; 例題 1.2 解答 「商品名」と「メーカー」を表示しよう
23
・条件で選択するときは「where」に続いて条件を書く。 選択条件の書き方 ・等しい 「=」 ・大きい小さい「>」「<」 ・以上以下「>=」「 」 (例)140円の商品を表示する select * from product where pprice=140; select フィールド名 from テーブル名 where 条件式 ;
24
● 選択条件の書き方 ● 「product」テーブルのフィールド名 例題 2.1 「150円の商品」を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where 条件式 ; ・等しい 「=」 ・大きい小さい「>」「<」 ・以上以下「>=」「 」
25
select * from product where pprice=150; 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 例題 2.1 「150円の商品」を表示しよう
26
select * from product where pprice=150; 解答 例題 2.1 「150円の商品」を表示しよう
27
● 選択条件の書き方 ● 「product」テーブルのフィールド名 例題 2.2 「150円以上の商品」を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where 条件式 ; ・等しい 「=」 ・大きい小さい「>」「<」 ・以上以下「>=」「 」
28
select * from product where pprice>=150; 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 例題 2.2 「150円以上の商品」を表示しよう
29
select * from product where pprice>=150; 解答 例題 2.2 「150円以上の商品」を表示しよう
30
● 選択条件の書き方 ● 「product」テーブルのフィールド名 例題 2.3 「150円以外の商品」を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where 条件式 ; ・等しい 「=」 ・大きい小さい「>」「<」 ・以上以下「>=」「 」
31
select * from product where pprice<>150; 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 例題 2.3 「150円以外の商品」を表示しよう
32
select * from product where pprice<>150; 解答 例題 2.3 「150円以外の商品」を表示しよう
33
・文字で選択するときは、条件の文字列を「 ’ 」 (クォーテーション)で囲む。 選択条件の書き方(文字列) select フィールド名 from テーブル名 where フィールド名= ’ 文字列 ’ ; (例)メーカが「ラビット乳業」の商品を表示する select * from product where pmaker= ' ラビット乳業 ’ ;
34
● 選択条件の書き方(文字列) ● 「product」テーブルのフィールド名 例題 3.1 「メーカーがみずうみ製麺の商品」 を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where フィールド名= ’ 文字列 ’ ;
35
select * from product where pmaker= ’ みずうみ製麺 ’ ; 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 例題 3.1 「メーカーがみずうみ製麺の商品」 を表示しよう
36
select * from product where pmaker= ’ みずうみ製麺 ’ ; 解答 例題 3.1 「メーカーがみずうみ製麺の商品」 を表示しよう
37
● 選択条件の書き方(文字列) ● 「product」テーブルのフィールド名 例題 3.2 「商品名が麦茶の商品」 を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where フィールド名= ’ 文字列 ’ ;
38
select * from product where pname=’ 麦茶 ’; 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 例題 3.2 「商品名が麦茶の商品」 を表示しよう
39
select * from product where pname=’ 麦茶 ’; 解答 例題 3.2 「商品名が麦茶の商品」 を表示しよう
40
・2個以上の条件は「AND」でつなぐ。 (どちらかが成り立てばよい場合は「OR」) 選択条件の書き方(複数の条件) select フィールド名 from テーブル名 where 条件式 AND 条件式; (例)「ラビット乳業の140円」の商品を表示する select * from product where pprice=140 AND pmaker= ’ ラビット乳業 ’ ;
41
● 選択条件の書き方(複数の条件) ● 「product」テーブルのフィールド名 例題 4.1 「みずうみ製麺の150円の商品」 を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where 条件式 AND 条件式; ※2個以上の条件は「AND」、どちらかが成り立てばよい場合は「OR」
42
select * from product where pmaker=’ みずうみ製麺 ’ AND pprice=150; 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 例題 4.1 「みずうみ製麺の150円の商品」 を表示しよう
43
select * from product where pmaker=’ みずうみ製麺 ’ AND pprice=150; 解答 例題 4.1 「みずうみ製麺の150円の商品」 を表示しよう
44
● 選択条件の書き方(複数の条件) ● 「product」テーブルのフィールド名 例題 4.2 「150円以上か140未満の商品」 を表示しよう 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where 条件式 AND 条件式; ※2個以上の条件は「AND」、どちらかが成り立てばよい場合は「OR」
45
select * from product where pprice>=150 OR pprice<140; 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 例題 4.2 「150円以上か140未満の商品」 を表示しよう
46
select * from product where pprice>=150 OR pprice<140; 解答 例題 4.2 「150円以上か140未満の商品」 を表示しよう
47
まとめ ・SQLを使うと、1行で選択や射影を 行えて便利 ・来週はSQLを使った検索の続きを行う 最後の授業でオリジナルデータベースを使った演習を行うので 登録したい商品情報を考え、配布のExcelシートに記入する。 宿題
48
SQLエディタによる データベースプログラミング 02
49
SQLの振り返り ・表示の基本形 ・射影 ・選択条件 select フィールド名 from テーブル名; select フィールド名 from テーブル名 where 条件式 ; ※フィールド名の代わりに「*(アスタリスク)」を指定すると 全てのフィールドの値を返す。 select * from product;
50
前回と同様に「商品表(テーブル)」を扱う ・表(テーブル)名:product ・4個の列(フィールド)がある。 ・pidは商品コード。 この番号で商品を特定できる。(同じ番号の商品はない) ・pname, pmaker, ppriceに商品名、メーカー、価格が 入っている。 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格
51
SQLエディタを起動 SQL エディタを使って データベースを操作しよう! ● SQL エディタ http://oecu-edu.sakura.ne.jp/sql/
52
クラスIDとユーザIDの入力 クラスID・ユーザID入力エリアに それぞれ指示のあったIDを入力してください。 クラスID : 指定した6桁の数字 ユーザID : 自分の番号など(例: A07)
53
データベースに接続する 演習では「shop」データベースを使用します。 SQL実行エリアに「use shop;」と入力しましょう。
54
・「order by asc」で結果を指定したフィールドで 昇順(小さい順)に並べられる。 ※ascは省略可 ・「desc」を付けると降順(大きい順)になる。 結果の並べ方 select フィールド名 from テーブル名 (例)価格の安い順 select * from product order by pprice; (例)価格の高い順 select * from product order by pprice desc; order by フィールド名 asc ;
55
● 昇順に並べる書き方 ・価格が安い順 問 1 価格の安い順に並べた際に 最初にある商品名とメーカーは何か? 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 order by フィールド名 asc ; select * from product order by pprice;
56
解答 問 1 価格の安い順に並べた際に 最初にある商品名とメーカーは何か?
57
● 昇順に並べる書き方 ・価格が高い順 問 2 価格の高い順に並べた際に 最初にある商品名とメーカーは何か? 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 order by フィールド名 desc ; select * from product order by pprice desc;
58
解答 問 2 価格の高い順に並べた際に 最初にある商品名とメーカーは何か?
59
・指定した文字列で検索するときは「like」を使う。 ・「%」を検索条件(文字列)の前後において指定する。 文字を含む検索の書き方 select フィールド名 from テーブル名 (例)「茶」という文字を含む商品名を選択する select * from product where pname like ’% 茶 %’; where フィールド名 like ' 検索条件 '; ※「%」は「この位置にどんな文字列があってもいい(なくてもいい)」という意味 ※「%」は必ず半角で書くこと!
60
● 文字を含む検索の書き方 ・「%」を検索条件(文字列)の前後において指定する。 (例) like ‘% 茶 %’; 生姜番茶、煎茶百年 問 3 「商品名に麦を含む商品」を表示しよう。 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where フィールド名 like ' 検索条件 ';
61
問 3 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 「商品名に麦を含む商品」を表示しよう。 select * from product where pname like '% 麦 %';
62
問 3 解答 「商品名に麦を含む商品」を表示しよう。 select * from product where pname like '% 麦 %';
63
● 文字を含む検索の書き方 ・「%」を検索条件(文字列)の前後において指定する。 問 4 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select フィールド名 from テーブル名 where フィールド名 like ' 検索条件 '; 「商品名が茶で終わる商品」を表示しよう。
64
列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 select * from product where pname like '% 茶 '; 問 4 「商品名が茶で終わる商品」を表示しよう。
65
解答 select * from product where pname like '% 茶 '; 問 4 「商品名が茶で終わる商品」を表示しよう。
66
・結果の件数 ・合計 ・平均 結果の件数や合計を表示する select count( フィールド名 ) from テーブル名 ; (例)全てのレコード数 を表示する select count(*) from product; select sum( フィールド名 ) from テーブル名 ; select avg( フィールド名 ) from テーブル名 ; ※ 「*(アスタリスク)」を指定した場合はすべてのレコード数を取得
67
● 結果の件数の書き方 ● 選択条件の書き方 問 5 価格が150円の商品のレコード数は? 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select count(*) from テーブル名 ; select フィールド名 from テーブル名 where 条件式 ;
68
列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 select count(*) from product where pprice=150; 問 5 価格が150円の商品のレコード数は?
69
解答 select count(*) from product where pprice=150; 問 5 価格が150円の商品のレコード数は?
70
● 合計の書き方 問 6 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 「商品の価格の合計」を表示しよう。 select sum( フィールド名 ) from テーブル名 ;
71
列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 select sum(pprice) from product; 問 6 「商品の価格の合計」を表示しよう。
72
解答 問 6 「商品の価格の合計」を表示しよう。 select sum(pprice) from product;
73
● 結果の件数の書き方 問 7 「商品の平均価格」を表示しよう。 列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 select avg( フィールド名 ) from テーブル名 ;
74
列 ( フィールド ) 名 pidpnamepmakerpprice 意味商品コード商品名メーカー価格 解答 問 7 「商品の平均価格」を表示しよう。 select avg(pprice) from product;
75
解答 問 7 「商品の平均価格」を表示しよう。 select avg(pprice) from product;
76
まとめ 「order by」で検索結果を小さい順などに 並べ替えられる。 「%」で文字を含む検索を行える。 「count」や「sum」で件数や合計を 計算できる。 来週は登録したデータを検索するインターネットの プログラムを体験する。 宿題 HTML、CSS、PHPがどのようなものか調べておく
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.