Summer/2008-02
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
* 第1日 データベースとSQL実習 [#fb92a6a9]
** 目次 [#k7667d79]
#contents
** データベースの準備 [#fb676334]
*** 「SQLの窓」のインストール [#d26eab9f]
+ 「SQLの窓」をダウンロードする。
-- http://vilab.org/summer/winofsql15.lzh
+ 東京の郵便番号データをダウンロードし、Excelで内容を確認...
-- http://vilab.org/summer/ziptokyo.xls
+ 「SQLの窓」展開したフォルダの中の db.html をダブルクリ...
-- winofsql15 の下の db.html
+ 「参照...」ボタンを押して、データベースとして ziptokyo....
+ 「select *」ボタンを押して、データベースの内容を確認す...
*** Accessでの方法 [#j2df84a3]
- AccessでSQLを使う方法
-- http://www.pursue.ne.jp/jouhousyo/SQLDoc/try.htm
-- Excelのファイルを読み込むには、「インポート」する。
*** テーブルの設計 [#q1084134]
関係データベースは、「テーブル」(表)から構成されている...
今回は以下のようなテーブルを作る。「旧番号」「新番号」「...
|旧番号|新番号 |都道府県名|市区郡町村名 |町村字名|h
|060 |0600041|北海道 |札幌市中央区 |大通東 |
|154 |1540002|東京都 |世田谷区 |下馬 |
|468 |4680039|愛知県 |名古屋市天白区 |西入町 |
|90718 |9071801|沖縄県 |八重山郡与那国町|与那国 |
テーブルの設計ではカラム(各欄)の型を定義する。「型」と...
|zipcode|>|>||h
|名称 |内容 |型 |属性|h
|oldzip|旧番号 |text||
|newzip|新番号 |text|空欄不可|
|pref |都道府県名 |text||
|city |市区郡町村名|text||
|addr |町字名 |text|空欄不可|
** SQLによるテーブル操作 [#w2572425]
「SQLの窓」では、Excelのワークシート名をworksheetとすると...
*** テーブルの作成(省略) [#mf8a134a]
>''【基本構文】 create table テーブル名 (カラム名1 カラム...
<
*** テーブルの削除(省略) [#if319704]
>''【基本構文】 drop table テーブル名; ''
<
*** データを表示する(射影演算) - SELECT文 [#d7374145]
>''【基本構文】 select フィールド名 from テーブル名 ; ''
<
+ 前項で登録したデータを表示してみる。テーブルからレコー...
+ 郵便番号と都道府県のみ選択して表示する。
select newzip,pref from zipcode;
-- 「SQLの窓」では
select newzip,pref from [zipcode$];
とすること。
+ すべてのフィールドを表示する場合は、*記号で代用できる。
select * from zipcode;
** データの検索 [#n67ab6f2]
テーブル操作のSQL文を使ってみる。データベースの肝の部分。
*** データを検索する(選択演算) - WHERE句 [#ha95a36d]
テーブルからデータ(レコード)を検索するには 「セレクト(...
>''【基本構文】 select フィールド名 from テーブル名 where...
<
複数の行に分けて書くこともできる。
select フィールド名
from テーブル名
where 条件式 ;
+ 古い郵便番号が「113」の、すべてのフィールドを表示する。...
select * from zipcode where oldzip='113' ;
+ 市区名が「世田谷区」の、新番号と町村名を表示する。
select newzip,addr
from zipcode
where city='世田谷区' ;
+ 以下のようにすると、条件にマッチするレコードの件数が分...
select count(*)
from zipcode
where city='国分寺市' ;
+ 以下のように「リミット(LIMIT)句」を使うと、表示する件...
select *
from zipcode
where city='新宿区'
limit 50;
*** ちょっと高度な検索 [#nc9a293c]
以下のSQLを理解し、結果を記録してください。
+ 市区郡町村名が「渋谷区」 または 「文京区」
select *
from zipcode
where city='渋谷区' or city='新宿区' ;
+ 市区郡町村名に「島」が含まれる(likeは文字列比較、%はワ...
select *
from zipcode
where city like '%島%';
+ 市区郡町村名が「中央区」 かつ 市区郡町村名が「日本橋」...
select *
from zipcode
where city='中央区' and addr like '日本橋%' ;
*** 課題1 [#ebc256e8]
以下の検索をするSQL文と、検索結果(長い場合は抜粋)を求め...
+ 「東京都町田市」の郵便番号の一覧を検索しなさい。
+ 「東京都町田市玉川学園」の郵便番号を検索しなさい。
+ 旧郵便番号が「132」だった地区の住所を検索しなさい。
+ 町字名(addr)に、自分の好きな文字列が入っている地名の...
+ 住所のどこかに「城」の入っている地名の一覧を検索しなさ...
**データの挿入・削除・更新 [#z8906ac9]
*** データの挿入 - INSERT文 [#f3fa6961]
テーブルにデータ(レコード)を作成するには 「インサート(...
>''【基本構文】 insert into テーブル名 (カラム名1, カラム...
<
insert into zipcode
(oldzip,newzip,pref,city,addr)
values('060','0600041','北海道','札幌市中央区','大通東');
*** データの削除 - DELETE文 [#q3239d37]
テーブルにデータ(レコード)を削除するには 「デリート(DE...
>''【基本構文】 delete from テーブル名 where 条件式; ''
<
*** データの更新 - UPDATE文 [#e6ec8966]
データ(レコード)を一括更新するには 「アップデート(UPDA...
>''【基本構文】 update テーブル名 set フィールド名=値 whe...
<
*** 課題2 [#fe4e92fa]
- 教科書問7の表をダウンロードし、Excelで内容を確認する。
-- http://vilab.org/summer/bookq7.xls
+ INSERT文でデータを挿入して「商品」表を完成させる。下記...
insert into [商品$]
(商品コード,商品名,単価)
values('A5023','シャンプー',500);
+ INSERT文でデータを挿入して「販売」表を完成させる。全部...
** テーブルの結合(結合演算) [#yd6a2a91]
データベースを結合するJOIN演算は、where句で複数のテーブル...
>''【基本構文】 select フィールド名 from テーブル名1,テー...
<
select 商品名,販売数量 from [商品$],[販売$]
where [商品$].商品コード=[販売$].商品コード
selectのフィールド名の指定が、どのテーブルのものか紛らわ...
select [商品$].商品名コード,単価 from [商品$],[販売$]
where [商品$].商品コード=[販売$].商品コード
*** 課題3 [#eb38dc17]
+ 下記のSQL文を実行して、結合演算について理解しなさい。
select [商品$].商品コード,商品名,販売数量 from [商品$],[...
where [商品$].商品コード=[販売$].商品コード
+ 教科書問7のSQLを「SQLの窓」のために書き直すと以下のよう...
select [商品$].商品コード,SUM(単価*販売数量)
from [商品$],[販売$]
where [商品$].商品コード=[販売$].商品コード
group by [商品$].商品コード
order by SUM(単価*販売数量)
+ 上記を応用して、売上を得意先別にまとめるSQLを作成して検...
** 課題の提出について [#ncb396f7]
- 課題1〜課題3を解いたら、解答のSQLと出力結果を、私にメー...
- 長い出力結果は、最初の1行、最後の1行、行数でいいです。
hi-shiozawa(at)engs.tamagawa.ac.jp
-- ↑ (at)を半角文字(@)にしないと送れません。
終了行:
* 第1日 データベースとSQL実習 [#fb92a6a9]
** 目次 [#k7667d79]
#contents
** データベースの準備 [#fb676334]
*** 「SQLの窓」のインストール [#d26eab9f]
+ 「SQLの窓」をダウンロードする。
-- http://vilab.org/summer/winofsql15.lzh
+ 東京の郵便番号データをダウンロードし、Excelで内容を確認...
-- http://vilab.org/summer/ziptokyo.xls
+ 「SQLの窓」展開したフォルダの中の db.html をダブルクリ...
-- winofsql15 の下の db.html
+ 「参照...」ボタンを押して、データベースとして ziptokyo....
+ 「select *」ボタンを押して、データベースの内容を確認す...
*** Accessでの方法 [#j2df84a3]
- AccessでSQLを使う方法
-- http://www.pursue.ne.jp/jouhousyo/SQLDoc/try.htm
-- Excelのファイルを読み込むには、「インポート」する。
*** テーブルの設計 [#q1084134]
関係データベースは、「テーブル」(表)から構成されている...
今回は以下のようなテーブルを作る。「旧番号」「新番号」「...
|旧番号|新番号 |都道府県名|市区郡町村名 |町村字名|h
|060 |0600041|北海道 |札幌市中央区 |大通東 |
|154 |1540002|東京都 |世田谷区 |下馬 |
|468 |4680039|愛知県 |名古屋市天白区 |西入町 |
|90718 |9071801|沖縄県 |八重山郡与那国町|与那国 |
テーブルの設計ではカラム(各欄)の型を定義する。「型」と...
|zipcode|>|>||h
|名称 |内容 |型 |属性|h
|oldzip|旧番号 |text||
|newzip|新番号 |text|空欄不可|
|pref |都道府県名 |text||
|city |市区郡町村名|text||
|addr |町字名 |text|空欄不可|
** SQLによるテーブル操作 [#w2572425]
「SQLの窓」では、Excelのワークシート名をworksheetとすると...
*** テーブルの作成(省略) [#mf8a134a]
>''【基本構文】 create table テーブル名 (カラム名1 カラム...
<
*** テーブルの削除(省略) [#if319704]
>''【基本構文】 drop table テーブル名; ''
<
*** データを表示する(射影演算) - SELECT文 [#d7374145]
>''【基本構文】 select フィールド名 from テーブル名 ; ''
<
+ 前項で登録したデータを表示してみる。テーブルからレコー...
+ 郵便番号と都道府県のみ選択して表示する。
select newzip,pref from zipcode;
-- 「SQLの窓」では
select newzip,pref from [zipcode$];
とすること。
+ すべてのフィールドを表示する場合は、*記号で代用できる。
select * from zipcode;
** データの検索 [#n67ab6f2]
テーブル操作のSQL文を使ってみる。データベースの肝の部分。
*** データを検索する(選択演算) - WHERE句 [#ha95a36d]
テーブルからデータ(レコード)を検索するには 「セレクト(...
>''【基本構文】 select フィールド名 from テーブル名 where...
<
複数の行に分けて書くこともできる。
select フィールド名
from テーブル名
where 条件式 ;
+ 古い郵便番号が「113」の、すべてのフィールドを表示する。...
select * from zipcode where oldzip='113' ;
+ 市区名が「世田谷区」の、新番号と町村名を表示する。
select newzip,addr
from zipcode
where city='世田谷区' ;
+ 以下のようにすると、条件にマッチするレコードの件数が分...
select count(*)
from zipcode
where city='国分寺市' ;
+ 以下のように「リミット(LIMIT)句」を使うと、表示する件...
select *
from zipcode
where city='新宿区'
limit 50;
*** ちょっと高度な検索 [#nc9a293c]
以下のSQLを理解し、結果を記録してください。
+ 市区郡町村名が「渋谷区」 または 「文京区」
select *
from zipcode
where city='渋谷区' or city='新宿区' ;
+ 市区郡町村名に「島」が含まれる(likeは文字列比較、%はワ...
select *
from zipcode
where city like '%島%';
+ 市区郡町村名が「中央区」 かつ 市区郡町村名が「日本橋」...
select *
from zipcode
where city='中央区' and addr like '日本橋%' ;
*** 課題1 [#ebc256e8]
以下の検索をするSQL文と、検索結果(長い場合は抜粋)を求め...
+ 「東京都町田市」の郵便番号の一覧を検索しなさい。
+ 「東京都町田市玉川学園」の郵便番号を検索しなさい。
+ 旧郵便番号が「132」だった地区の住所を検索しなさい。
+ 町字名(addr)に、自分の好きな文字列が入っている地名の...
+ 住所のどこかに「城」の入っている地名の一覧を検索しなさ...
**データの挿入・削除・更新 [#z8906ac9]
*** データの挿入 - INSERT文 [#f3fa6961]
テーブルにデータ(レコード)を作成するには 「インサート(...
>''【基本構文】 insert into テーブル名 (カラム名1, カラム...
<
insert into zipcode
(oldzip,newzip,pref,city,addr)
values('060','0600041','北海道','札幌市中央区','大通東');
*** データの削除 - DELETE文 [#q3239d37]
テーブルにデータ(レコード)を削除するには 「デリート(DE...
>''【基本構文】 delete from テーブル名 where 条件式; ''
<
*** データの更新 - UPDATE文 [#e6ec8966]
データ(レコード)を一括更新するには 「アップデート(UPDA...
>''【基本構文】 update テーブル名 set フィールド名=値 whe...
<
*** 課題2 [#fe4e92fa]
- 教科書問7の表をダウンロードし、Excelで内容を確認する。
-- http://vilab.org/summer/bookq7.xls
+ INSERT文でデータを挿入して「商品」表を完成させる。下記...
insert into [商品$]
(商品コード,商品名,単価)
values('A5023','シャンプー',500);
+ INSERT文でデータを挿入して「販売」表を完成させる。全部...
** テーブルの結合(結合演算) [#yd6a2a91]
データベースを結合するJOIN演算は、where句で複数のテーブル...
>''【基本構文】 select フィールド名 from テーブル名1,テー...
<
select 商品名,販売数量 from [商品$],[販売$]
where [商品$].商品コード=[販売$].商品コード
selectのフィールド名の指定が、どのテーブルのものか紛らわ...
select [商品$].商品名コード,単価 from [商品$],[販売$]
where [商品$].商品コード=[販売$].商品コード
*** 課題3 [#eb38dc17]
+ 下記のSQL文を実行して、結合演算について理解しなさい。
select [商品$].商品コード,商品名,販売数量 from [商品$],[...
where [商品$].商品コード=[販売$].商品コード
+ 教科書問7のSQLを「SQLの窓」のために書き直すと以下のよう...
select [商品$].商品コード,SUM(単価*販売数量)
from [商品$],[販売$]
where [商品$].商品コード=[販売$].商品コード
group by [商品$].商品コード
order by SUM(単価*販売数量)
+ 上記を応用して、売上を得意先別にまとめるSQLを作成して検...
** 課題の提出について [#ncb396f7]
- 課題1〜課題3を解いたら、解答のSQLと出力結果を、私にメー...
- 長い出力結果は、最初の1行、最後の1行、行数でいいです。
hi-shiozawa(at)engs.tamagawa.ac.jp
-- ↑ (at)を半角文字(@)にしないと送れません。
ページ名: