CMP2-3SQL2b.pptx

Similar documents
Microsoft PowerPoint - db03-5.ppt

SQLite データベース IS04 組み込み 1

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索

PowerPoint Presentation

Microsoft Word - SQL.rtf

データベースS

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft PowerPoint - 講義補助資料2017.pptx

Chapter Two

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

CMP演習

標準化 補足資料

Chapter Two

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

Microsoft PowerPoint pptx

1,.,,,., RDBM, SQL. OSS,, SQL,,.

第 2 章 問合せの基本操作 この章では データベースから情報を検索する際に使用する SELECT コマンド および SELECT コマンドと 同時に使用する句について説明します 1. 問合せとは 2. 基本的な問合せ 3. 列の別名 4. 重複行を一意にする 5. 検索行の絞込み 6. 文字パター

PowerPoint プレゼンテーション

プレポスト【問題】

,, create table drop table alter table

Basic descriptive statistics

データベースアクセス

WDI-Slides-05.pptx

cmpsys13w14-15_database.ppt

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

PowerPoint プレゼンテーション

関係データベース

アジェンダ ORACLE MASTER Oracle Database 11g 概要 11g SQL 基礎 Ⅰ 試験紹介 ポイント解説 Copyright 2011 Oracle. All rights reserved. 2

7-1- 基 RDB に関する基礎知識 1 独立行政法人情報処理推進機構

iNFUSE インフューズ

3 - 正しい SQL ( 方言を排除した SQL 文の記述方法 )

iNFUSE インフューズ

Microsoft PowerPoint - KeySQL50_10g_vlo2.ppt

結合演算 ( 復習 ) データベース論 (9) R 社員番号 氏名麻生太郎安部晋三与謝野馨森喜朗 部門経理課営業課総務課営業課 S 部門経理課営業課総務課 電話 問合せ言語と SQL(2) R S 社員番号

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

Microsoft PowerPoint - system8.ppt

ICT-Literacy1

Oracle Database Connect 2017 JPOUG

情報科学概論 第6回

tkk0408nari

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

現在 数多くの DBMS が存在しますが SQL の基本的なコマンドは標準化されており どの DBMS でもある程度同じものが利用可能です ただし それぞれの DBMS の機能の違いにより存在しないコマンドがあったり オプション指定が異なる場合があるため まったく同じとは言えません なお DBMS

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

情報システム設計論II ユーザインタフェース(1)

PowerPoint プレゼンテーション

目次 1. データモデルと SQL( 復習 ) 2.SQL の特徴 3.SQL の文法 4. データ定義 ( 基本編 ) 5.DB 管理 ( 基本編 ) 6. データ操作 ( 基本編 ) 7. レポート課題 8. 参考書ほか

问题集 ITEXAMPASS 1 年で無料進級することに提供する

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

スライド タイトルなし

Access研修テキスト

データベース工学 2011年度資料

3/7 マイグレーション開発方針 顧客名 0 作成者 根岸正 < プログラム移行方針 > システム名称 A-VX システムマイグレーション作成日 2015/09/01 < COBOL 資産のプログラム移行 > COBOLソース ( メインとCOPYLIB) を入力としてSCC 言語変換ツールにてVB

基本サンプル

PowerPoint プレゼンテーション

1 ex01.sql ex01.sql ; user_id from (select user_id ;) user_id * select select (3+4)*7, SIN(PI()/2) ; (1) select < > from < > ; :, * user_id user_name

PowerPoint プレゼンテーション

WEBシステムのセキュリティ技術

: ORDER BY

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

スライド 1

10th Developer Camp - B5

基本サンプル

CONTENTS マニュアルの表記... S01-02_01 1.DataNature Smart 全体概要図... S01-02_11 2. 基本操作... S01-02_ ジョブの作成... S01-02_21 加工条件設定... S01-02_21 Step1: 処理対象データの指

変更履歴 版数変更日変更内容 /9/1 初版設定

PowerPoint Presentation

Microsoft Word - 09isA11_mod.doc

Microsoft認定資格問題集(70-483_demo)

SQL (2) データベース論 Ⅰ 第 7 回 URL 作成者末次文雄 C

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

基本サンプル

Excel2013 データベース1(テーブル機能と並べ替え)

FormPat インポート設定ガイド

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

データベースS 演習資料

memo

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更することがあります このドキュメントに記載された内容は情報提供のみを目的としており 明示または黙示に関わらず これらの情報についてマイクロソフトはいかなる責任も負わないもの

PowerPoint プレゼンテーション

この文章に含まれる情報は 公表の日付の時点での Microsoft Corporation の考え方を表しています 市場の変化に応える必要 があるため Microsoft は記載されている内容を約束しているわけではありません この文書の内容は印刷後も正しいとは保障で きません この文章は情報の提供の

~モバイルを知る~ 日常生活とモバイルコンピューティング

Taro php.jtdc

防災マップ作成システムの開発業務基本設計書

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

Wiki Wiki Wiki...

Oracle 入門 ~ 研修受講後のスキルアップサポート ~ 対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助とし

地理情報システム論 外部データとのやりとり レイヤのエクスポートによるシェープファイルの作成金沢区を題材とした操作練習では, すでにマップ上に表示されているレイヤを複製することで, 同一のシェープファイルを, 一方は階級区分図に用い, 他方はチャート表示に用いてオーバーレイ表現

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー

プレポスト【解説】

DumpCollection IT Exam Training online / Bootcamp PDF and Testing Engine, study and practice

はじめに 本書では GridDB Advanced Edition における SQL の記述方法および 注意事項について記載しています GridDB Advanced Edition をご使用になる前に 必ずお読みください なお 本書で説明する機能は GridDB Advanced Edition

Si 知識情報処理

Microsoft PowerPoint - R-intro-04.ppt

マニュアル訂正連絡票

PowerPoint プレゼンテーション

関数とは 関数とは 結果を得るために 処理を行う仕組み です Excel2010 には あらかじめ関数が数式として組み込まれています たとえば SUM 関数 は 指定した値をすべて合計する 仕組みです 長い計算式や複雑な計算式を作成せずに 簡単に結果を求めることができます 例合計 =A1+A2+A3

ご存知ですか? データ転送

職業訓練実践マニュアル 重度視覚障害者編Ⅰ

Transcription:

サーバサイドプログラミング 3. SQL コンテンツメディアプログラミング演習 Ⅱ 2014 年 菊池, 斉藤

SQL 概要 n SQL (Structured Language) q リレーショナルデータベースの為のプログラミング言語. q IBM が提案し,1987 に ISO 国際標準化. q データ定義, データベース操作 ( 挿入, 削除, 選択 ),( トランザクション管理機能 ) q ケースインセンシティブ ( 大文字と小文字の区別なし ) 主に, 予約語を大文字, 変数を小文字で表記する.

SQL サーバの種類 サーバ名 特徴 Oracle Oracle 商用製品. シェアが高い. Access Microsoft 社製品.Office ファミリー オープンソース RDB. Sun Micro 開発. 世界シェア 1 位. PostgreSQL オープンソース RDB. 日本は利用が多い. SQLite オープンソース RDB データベースがファイル単位で構築されている.

SQLite 概要 n 概要 q パブリックドメインの軽量なデータベースエンジン. 現在はバージョン 3 (3.8.6) n 特徴 q SQL92 仕様に準拠 q クライアントサーバ型ではない» 他の言語から追加機能呼び出し q データ型は厳密ではない.

(1) コマンドラインツールでの実行 n sqlite3 q コマンドプロンプトから起動する. X:\> sqlite3 データベース名.sqlite SQLite version 3.8.6 2014-08-15 11:46:33 Enter ".help" for usage hints. sqlite> q.help ヘルプの表示 q.quit 終了 ( 制御命令はドットから始まる SQLite 固有 ) q 日本語文字コードは shift-jis

(2) Nitrous.io での実行 1. Mts0.sqlite を upload 2. sqlite3 Mts0.sqlite UTF-8 であるのに注意

データベース n データベース q 一つのファイルで一つのデータベース q データベースに複数のテーブルが格納,( スキーマ, オート番号の最終値や統計情報 ) q 拡張子.sqlite ( 他も許されている ) q 例 )Mts (Mountains) データベース Mts.sqlite (sjis): Mts0.sqlite (Utf-8) 行 ( レコード ) 列 ( カラム ) NO name day hour height 1 谷川岳 0 5 1227 2 丹沢 0 6 1201 3 天城山 0 7 756 4 八ヶ岳 3 12 1409 5 那須岳 2 9 527 6 駒ヶ岳 0 4 316 7 燕岳 2 8 1313 8 奥穂岳 3 18 1685

2. データベースの検索 n SELECT 文 SELECT 列名 FROM テーブル名 ; q 例 1) テーブルの全行を出力 z:\> sqlite3 mts.sqlite sqlite> select * from mts; 1 谷川岳 0 5 1227 2 丹沢 0 6 1201 3 天城山 0 7 756 4 八ヶ岳 3 12 1409 5 那須岳 2 9 527 6 駒ヶ岳 0 4 316 7 燕岳 2 8 1313 8 奥穂岳 3 18 1685

条件を付けた検索 n WHERE 句 SELECT 列名 FROM テーブル名 WHERE 条件 q 条件 : 比較演算子 (=, <, >, <>, >=), 論理式 (AND, OR NOT) q 例 2) ID が 6 以降を検索 SELECT * FROM mts WHERE id >= 6; q 例 3) ID が 6 以上で, 日帰りが出来る (day が 0) SELECT * FROM mts WHERE id >= 6 AND day = 0;

あいまい検索 n LIKE 条件 SELECT 列名 FROM テーブル名 WHERE 列名 LIKE パターン q パターン : % = 任意の長さの文字列, _ = 任意の 1 文字 q 例 4) 岳 で終わる山を検索 SELECT * FROM mts where name like '% 岳 '; q 例 5) 2 文字の山を検索 SELECT * FROM mts where name like ' '; ( 注 : 間に空白が挿入 )

列を選択して検索 n 射影 ( 指定された列のみのテーブル ) SELECT 列 1, 列 2,.. FROM テーブル名 WHERE 条件 q ( 数学的には, 次元を下げる操作を指す ) q 例 6) 標高 1300m 以上の山名を検索せよ. SELECT name,height FROM mts WHERE height > 1300; 八ヶ岳 1409 燕岳 1313 奥穂岳 1685

結果を加工 n 集合関数» SUM 総和» AVG 平均» COUNT 総数» MAX,MIN 最大値, 最小値 q 例 7) 標高の平均値を求めよ. SELECT AVG(height) FROM mts; q 例 8) 日帰りできる山の数を求めよ. SELECT COUNT(*) FROM mts WHERE day=0;

ソート n ORDER SELECT 列 FROM テーブル名 ORDER by 列検索順 ; q 列でソートする. 検索順 ASC = 昇順 ( 小さな値から ) = 降順 ( 大きな値から ) q 例 ) ID で降順に並べる. SELECT * FROM mts ORDER by ID DESC;

グループ化 n GROUP SELECT 列 FROM テーブル名 GROUP by 列 ; q 列で指定された行を束ねる. q 例 ) 日数ごとに山の数を数える. select day,count(*) from mts group by day; q 例 ) 日数ごとに該当する山名を列挙する. select day,group_concat(name, ',') from mts group by day;

演習 1 n mts.sqlite データベースを用いて, 次を求めよ. (1) 日帰りできる山名と標高 (2) 日帰りで,6 時間以内で登山できる山の数 (3) 標高が最も高い山の名前 (4) 山名と標高のみの射影 (5) 日数ごとの山の標高平均値

3. 複数のテーブルの結合 n データベースとテーブル q SQLite 固有の管理コマンド q.databases データベース一覧 q.tables 格納されるテーブル一覧 q.schema スキーマ ( 列名と属性 ) 表示 テーブル 2 テーブル1 NO hour height 1 5 1227 NO name day 2 6 1201 1 谷川岳 0 3 7 756 2 丹沢 0 4 12 1409 3 天城山 0 4 八ヶ岳 3 データベース

集合演算 n UNION, INTERSECT SELECT 列 FROM テーブル名 1 演算 SELECT 列 FROM テーブル名 2 q 演算 : UNION テーブル 1 テーブル 2 INTERSECT テーブル 1 テーブル 2 q 例 ) fms1 と fms2 の和 select * from fms1 UNION select * form fms2; q 例 ) fms1 と fms2 の積 select * from fms1 INTERSECT select * form fms2;

差集合 ( 否定 ) n EXCEPT SELECT 列 FROM テーブル名 1 EXCEPT SELECT 列 FROM テーブル名 2 q テーブル 1 の要素でテーブル 2 の要素でないもの ( テーブル 1 テーブル 2) q 例 ) fms1 - fms2 select * from fms1 EXCEPT select * form fms2; q 全体集合 U A = A の補集合 (A 以外 )

結合 JOIN n 結合 q 複数の列を結合する操作. リレーショナルデータベースの基本機能.

直積 n (Product) SELECT 列 FROM テーブル名 1, テーブル名 2 q テーブル 1x テーブル 2 = 直積 ( テーブル 1 の各行にテーブル 2 の全行が結合 ) q 例 ) 受注顧客表 customers と受注表 orders の直積 sqlite> select * from customers, orders; 1 11/10 100 斉藤裕樹 中野区 1 S20 消しゴム 50 130 1 11/10 100 斉藤裕樹 中野区 1 T10 コピー用紙 450 50 1 11/10 100 斉藤裕樹 中野区 2 S20 消しゴム 50 80...

内部結合 (inner join) n 列で行を対応させた新しい表を作る SELECT 列 FROM テーブル名 1, テーブル名 2 WHERE テーブル 1. 列 = テーブル 2. 列 q WHERE をとしても同じ. q 直積と異なり, 列 (ID) が同じ値の行同士のみを結合する. q 例 ) 受注 ID で顧客と受注を結合する. sqlite> select * from customers, orders where customers.oid = orders.oid; 1 11/10 100 斉藤裕樹 中野区 1 S20 消しゴム 50 130 1 11/10 100 斉藤裕樹 中野区 1 T10 コピー用紙 450 50 2 11/15 100 斉藤裕樹 中野区 2 S20 消しゴム 50 80 3 11/20 200 小林稔 国立市 3 S10 えんぴつ 100 240

演習 2 n stationary.sqlite データベースを用いて次を求めよ. (1) 全体の合計発注数 (2) 発注者ごとの単価の合計 (3) 商品ごとの発注者数の合計 q 対応する列を自動的に決定する National Join を用いてもよい. sqlite> select * from customers NATURAL JOIN orders;

4. テーブルの作成 n CREATE 文 CREATE TABLE テーブル名 ( 列名 1 データ型 1, 列名 2 データ型 2, ) q データ型 : INTEGER 整数 可変長文字列 (VARCHAR(n)) CHARACTER(n) n 文字固定長文字列 (Date, time, float, decimal(m,n) など ) q 例 ) ID, 氏名, 住所からなる表 fms1 を定義する. CREATE TABLE fms1 ( id integer, name varchar(20), addr varchar(20) );

行の挿入 n INSERT 文 INSERT INTO テーブル名 VALUES( 値 1, 値 2,..); q 値はテーブルの列の順番に指定する. 文字列は ' 文字列 ' とする. 欠損するところは,. q 例 ) 行を追加する. INSERT INTO fms1 VALUES(100, ' 荒川薫 ', ' 川崎市 '); q 挿入を確認するには,select 文で検索する. q 例 ) 名前だけを指定して行を追加する. INSERT INTO fms1(name) VALUES(' 斉藤裕樹 ');

行の削除 n DELETE 文 DELETE FROM テーブル名 WHERE 条件 ; q 条件にマッチした行をテーブルから削除する. q 例 ) ID=100 の行を削除する DELETE FROM fms1 WHERE id=100;

Primary Key 主キー n 主キー q 一つの表に一つだけ指定される列. 行を一意に ( 同じキーの行が 2 個以上ない ) 決める. NULL は認められない. q 例 )id を主キーに宣言する. CREATE TABLE fms1 ( ); id integer PRIMARY KEY, name varchar(20)

自動インクリメント n AUTOINCREMENT q 主キーの を保障するために,ID を重複しないように自動生成する. q 例 ) 名前だけで ID を自動生成. sqlite> CREATE TABLE fms3 ( id integer PRIMARY KEY AUTOINCREMENT, name text ); sqlite> insert into fms3(name) values(' 菊池 '); sqlite> insert into fms3(name) values(' 斉藤 '); sqlite> select * from fms3; 1 菊池 2 斉藤

演習 3 n 右の表をテーブル prof に格納したデータベース prof.sqlite を作れ. (1) 斉藤の点数を 90 点に変更せよ ( 削除して挿入 ) (2) 点数の高い順にソートせよ. (3) 平均点を求めよ. (4) 平均以下の学生名求めよ. sid 学生名 点数 1 荒川 78 2 菊池 90 3 小林 95 4 小松 88 5 斉藤 80 6 鈴木 75 7 中村 85 8 宮下 92

演習 4 n 次の Excel ファイルを SQL データベース pokemon.sqlite に登録せよ. q テーブル名 monsters q 主キー : No q name, type は Text, 他は integer なまえポイントこうげきぼうぎょはやさタイプ No name HP offense defense speed type 1 フシギダネ 45 49 49 45 L/P 2 ゼニガメ 44 48 65 43 W 3 ピカチュウ 35 55 30 90 E 4 ライチュウ 60 90 55 100 E 5 ピッピ 70 45 48 35 N 6 ニャース 40 45 35 90 N

課題 5 n 次のデータベースから適当な表を選び, データベースに登録せよ. q 日本政府データカタログ Data.go.jp q 政府統計局 ( 県別面積 気象など ) http://www.stat.go.jp/ q 気象庁 ( 平均気温 桜開花など ) http://www.jma.go.jp/ q 少なくとも, 列数 5, 行数 10 の大きさのテーブルとする. q データベース名 mytable.sqlite

課題の提出 n 提出用フォルダー q CMP2\3SQL\2- 組 - 番号 q 課題 3. prof.sqlite と実行結果 ex3.txt q 課題 4. pokemon.sqlite q 課題 5. mydata.sqlite と説明書 mydata.doc

まとめ n SQLは ( ) の為の標準化プログラミング言語.MySQLやSQLiteなどの各種サーバがある. n データベースは複数の ( ) から成る. テーブルは行と列から成る. 条件にあった行を取り出すには ( ) 文を用いる. 一部の列を取り出すことを ( ) という. n 複数のテーブルを連結することを ( ) と呼ぶ. Primary Keyは主キーと呼ばれ, 行を ( ) に決める列を指定する. n テーブルの列を定義するには ( ) 文を用いる. テーブルに行を追加するには ( ) 文を用いる.

( 参考 )CSV ファイルの入出力 n CSV ファイルのインポート q CREATE 文でテーブルを宣言. Create table mts(id int, name text, ); q 区切りをカンマにする. sqlite>.separator, q CSV ファイルの読み込み sqlite>.import 'Mts.csv' mts n CSV ファイルへの書出し q 出力モードを CSV に変更し, ファイル mts2.csv に出力する. sqlite>.mode csv sqlite>.output mts2.csv q 元に戻す sqlite>.output stdout q (UTF-8 になっているのでそのままでは Excel で読めない )