Chapter Two

Similar documents
Chapter Two

Microsoft PowerPoint - db03-5.ppt

データベースS

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

Microsoft PowerPoint pptx

PowerPoint プレゼンテーション

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

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

PowerPoint Presentation

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

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

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行

標準化 補足資料

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

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

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

Microsoft Word - SQL.rtf

,, create table drop table alter table

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

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

基本サンプル

基本サンプル

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

Caché SQL に関するよくある質問

基本サンプル

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

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

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

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

関数サンプル1

CMP2-3SQL2b.pptx

プレポスト【問題】

Microsoft Word - sample_adv-programming.docx

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

PowerPoint プレゼンテーション

ICT-Literacy1

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7

クエリの作成が楽になるUDF

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

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

はじめに コースの概要と目的条件分岐の方法や複雑な集計の手法など SQL のコーディングの幅を広げるためのテクニックについて説明します また パフォーマンスを考慮した記述方法や正しい結果を取得するための記述方法などについても あわせて説明します 本コースでは 実践的な SQL の記述手法を広く浅く紹

Chapter Two

スライド 1

ODBC Driver for 4D Server

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

02_巻頭特集.indd

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

Sheet2 に作成する表 問題 2 前問の成績表 (Sheet2) の各教科の順位の列の次に評価の列を作って 生徒ごとに各教科の評価をし なさい なお評価は 各教科 A(100~85) B(84~70) C(69~55) D(54 以下 ) とする 1.4 集中力度チェックテスト自分の集中力がどの

XML Consortium & XML Consortium 1 XML Consortium XML Consortium 2

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

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

tkk0408nari

Copyright SATO International All rights reserved. This software is based in part on the work of the Independen

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

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

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

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

2015春夏KIJE日本語.indd

2010_summer_spring_all.indd

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

関数サンプル2

Chapter

2013秋冬日本語.indd

コンピュータリテラシ 第 6 回表計算 2 このスライド 例題 /reidai6.xlsx /reidai6a.xlsx 課題 12 /reidai6b.xlsx /table12_13.xlsx

2014春夏日本語.indd

相続支払い対策ポイント

150423HC相続資産圧縮対策のポイント

Oracle Direct Seminar <Insert Picture Here> 試験対策ポイント解説 11g SQL 基礎 Ⅰ 日本オラクル株式会社

ハピタス のコピー.pages

Copyright 2008 All Rights Reserved 2

第 5 章 結合 結合のパフォーマンスに影響を与える結合の種類と 表の結合順序について内部動作を交えて 説明します 1. 結合処理のチューニング概要 2. 結合の種類 3. 結合順序 4. 結合処理のチューニングポイント 5. 結合関連のヒント

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

スライド 0


印刷アプリケーションマニュアル

2014秋冬日本語.indd

早分かりS2Dao

関係データベース

プログラミング基礎

SQL 基礎 (6) JOIN 句 - データの結合 作成日 : 2016/02/22 作成者 : 西村 更新履歴 更新日 更新概要 作業者 2016/02/22 新規作成 西村 はじめに この資料では 下記のような JOIN によるテーブル ( データ ) の結合について簡単に説明します INNE

10th Developer Camp - B5

PowerPoint Presentation

コンピュータリテラシ

橡実践Oracle Objects for OLE

Oracle Database Connect 2017 JPOUG

Microsoft PowerPoint - system8.ppt

Webシステム授業資料

APEX Spreadsheet ATP HOL JA - Read-Only

CodeGear Developer Camp

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

データ構造

ユーザ デバイス プロファイルの ファイル形式

関数サンプル1

Wiki Wiki Wiki...

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

Microsoft PowerPoint - advanced-2-olap.ppt [互換モード]

PA4

Microsoft PowerPoint - KeySQL50_10g_vlo2.ppt

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

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP

Transcription:

Database 第 9 回 :SQL 言語 ( データベース操作 : 集合関数 抽出条件 副問い合わせ ) 上智大学理工学部情報理工学科 高岡詠子 No reproduction or republication without written permission. 許可のない転載 再発行を禁止します 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 1

今日の授業 データベース操作のおさらい データベースの参照データベースの登録 変更 削除 集合関数 抽出条件副問い合わせ 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 2

1 次の 3 つのテーブルインスタンスチャートをつくる 学生 (student) #* 学生番号 (studentid) * メールアドレス (email) * 学部コード (facid) * 学科コード (deptid) プレイスメントテストの成績 (grade) 所属サークル (club) 学部 (faculty) #* 学部コード (facid) * 学部名 (facname) 学科 (department) #* 学科コード (deptid) * 学科名 (deptname) 2Univという名前のデータベース空間をつくる 3Univという名前のデータベース空間にアクセスする 4 次の3つのテーブルをつくる 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 3

NOT NULL 制約 PRIMARY 制約 UNIQUE 制約 REFERENCE 制約 列名称 ( 属性 ) student ID email faci D deptid grade club データ型 INT VARCHAR INT CHAR INT VARCHAR 最大データ型 12 60 7 7 4 50 キー種 一意性 入力必須 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 4

学部 (faculty) #* 学部コード (facid) * 学部名 (facname) 学科 (department) #* 学科コード (deptid) * 学科名 (deptname) 列名称 facid facname データ型 int char 最大データ型 7 30 キー種 一意性 入力必須 列名称 deptid deptnam e データ型 int char 最大データ型 7 30 キー種 一意性 入力必須 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 5

faculty facid 学部名 1 理工学部 2 文学部 3 神学部 4 外国語学部 5 国際教養学部 CHECK 制約 : 10 の位は学部コードと同じにしたい department deptid 学科名 11 機能創造理工 12 物質生命理工 13 情報理工 21 哲学科 22 史学科 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 6

CREATE TABLE student ( studentid int(12) PRIMARY KEY, email varchar(60) UNIQUE NOT NULL, facid INT(7) NOT NULL, deptid INT(7) NOT NULL, grade INT(4), club varchar(50), CHECK( facid=deptid div 10) ) ; 列名称 ( 属性 ) student ID email faci D CHECK 制約 : 10 の位は学部コードと同じにしたい deptid grade club データ型 INT VARCHAR INT CHAR INT VARCHAR 最大データ型 12 60 7 7 4 50 キー種 PK FK1 FK2 一意性 1 2 入力必須 NN1 NN2 NN 3 NN4 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 7

CREATE TABLE faculty ( facid int(7) PRIMARY KEY, facname char(30) NOT NULL ) ; 列名称 facid facname データ型 int char 最大データ型 7 30 キー種 PK 一意性 1 入力必須 NN1 NN2 CREATE TABLE department ( deptid int(7) PRIMARY KEY, deptname char(30) NOT NULL ) ; 列名称 deptid deptnam e データ型 int char 最大データ型 7 30 キー種 PK 一意性 1 入力必須 NN1 NN2 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 8

データの登録 :insert 1 行追加 : insert into テーブル名 values( カラムの内容 ); insert into faculty values(1, 理工学部 ); insert into faculty values(2, 文学部 ); insert into faculty values(3, 神学部 ); insert into faculty values(4, 外国語学部 ); insert into faculty values(5, 国際教養学部 ); 8 学部分のデータベースを自分でつくりましょう. 順序は問わない faculty 学部コード 学部名 1 理工学部 2 文学部 3 神学部 4 外国語学部 5 国際教養学部 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 9

8 学部の各学部ごとにいくつの学科があるか調べて自分データベースをつくろう 10 の位は学部コードと同じ データの登録 :insert department 学科コード 1 行追加 : insert into テーブル名 values( カラムの内容 ); insert into department values(11, 機能創造理工 ); insert into department values(12, 物質生命理工 ); insert into department values(13, 情報理工 ); insert into department values(21, 哲学科 ); insert into department values(22, 史学科 ); 学科名 11 機能創造理工 12 物質生命理工 13 情報理工 21 哲学科 22 史学科 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 10

student データの登録 :insert 学生番号 メールアドレス 学部コード 学科コード プレイスメントテ ストの成績 所属サークル 12345 aaa@sophia.ac.jp 1 11 89 カト学生 12346 abc@sophia.ac.jp 1 13 NULL ETL 12347 bbb@sophia.ac.jp 2 21 67 BLT 12348 ccc@sophia.ac.jp 3 31 30 AUX 12349 aaa@sophia.ac.jp 4 42 42 1 行追加 : insert into テーブル名 values( カラムの内容 ); insert into student values(12345, aaa@sophia.ac.jp,1,11,89, カト学 ); insert into student values(12346, abc@sophia.ac.jp,1,13,null, ETL ); insert into student values(12347, bbb@sophia.ac.jp,2,21,67, BLT ); insert into student values(12348, ccc@sophia.ac.jp,3,31,30, AUX ); insert into student values(12349, ddd@sophia.ac.jp,4,42,90, ); 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 11

テーブルやデータの削除 データのみの削除 from テーブル名 ; from テーブル名条件 ; from subject studentid= 12352"; データだけでなくテーブルごと削除する table テーブル名 ; 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 12

データの更新 表名カラム名 = 値, カラム名 = 値条件 ; student facid=5, deptid=51; studentid=12352; 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 13

今日の授業 データベース操作のおさらい データベースの参照データベースの登録 変更 削除 集合関数 抽出条件副問い合わせ 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 14

shopsale 先週の例 shopname sales date 紀尾井町 450,000 11/1 高輪 320,000 11/3 赤坂 876,600 11/5 品川 438,000 11/3 紀尾井町 200,000 11/10 赤坂 120,000 11/13 赤坂 40,000 11/20 高輪 450,000 11/3 品川 220,000 11/5 高輪 110,000 11/18 品川 220,000 11/15 netsale sales date 120,000 11/1 150,000 11/7 250,550 11/13 320,000 11/20 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 15

最も多く使われる SQL 問い合わせ 基本構文 select カラム名 1, カラム名 2, カラム名 3 from 表名 1, 表名 2, where 抽出条件 group by having order by 導出された表 : 導出表 グループ化を行うグループ化を行ったとの抽出条件並べ替えを指定する データベースに格納されている表 : 実表 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 16

集合関数を使った select 文 グループ化を行う shopsale 表において shopname ごとの売り上げを表示させたいとき select shopname, sum(sales) from shopsale shopname; 関数の値に条件をつける (where は使えないから ) select shopname, sum(sales) from shopsale group by shopname sum(sales) > 1000000; 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 17

抽出条件で指定する演算子 演算子 説明 比較演算子 < <= = >= > <> BETWEEN ~ 以上 ~ 以下 IN いずれかの値と等しい IS NULL NULL 判定 LIKE 部分一致検索 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 18

集合関数一覧 SUM( ) 指定条件によって得られた列の値の合計を求める関数 AVG( ) 指定条件によって得られた列の値の平均値を求める関数 MAX( ) 指定条件によって得られた列の値の中で最大値を返す関数 MIN( ) 指定条件によって得られた列の値の中で最小値を返す関数 COUNT( ) 指定条件によって得られた表の基数 すなわち行数を求める関数 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 19

集合関数を使った select 文 重複行を除外する shopsale 表から shopname に関して重複行を除外して表示させる 数える select count(shopname) from shopsale; 異なる列の値を数える select count( shopsale; shopname) from 平均値を出す select (grade) from student; 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 20

抽出条件で指定する演算子 演算子 説明 比較演算子 < <= = >= > <> BETWEEN ~ 以上 ~ 以下 IN いずれかの値と等しい IS NULL NULL 判定 LIKE 部分一致検索 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 21

BETWEEN 演算子 期間指定 select * from shopsale where date 20091101 and 20091109; 期間指定とソート select * from shopsale where date 20091101 and 20091109 date; 2009 年 11 月 1 日から 11 月 9 日の間の shopsale の情報を日付順に表示する 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 22

抽出条件で指定する演算子 演算子 説明 比較演算子 < <= = >= > <> BETWEEN ~ 以上 ~ 以下 IN いずれかの値と等しい IS NULL NULL 判定 LIKE 部分一致検索 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 23

IN 演算子 普通の問い合わせ select * from shopsale shopname = 紀尾井町 ; IN 演算 select * from shopsale where shopname ( 紀尾井町, 赤坂 ); 紀尾井町または赤坂の情報を含んだ行が出力される select * from shopsale where shopname ( 紀尾井町, 赤坂 ); 紀尾井町または赤坂以外の情報を含んだ行が出力される 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 24

抽出条件で指定する演算子 演算子 説明 比較演算子 < <= = >= > <> BETWEEN ~ 以上 ~ 以下 IN いずれかの値と等しい IS NULL NULL 判定 LIKE 部分一致検索 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 25

IS NULL 演算子 select * from student where club ; 所属サークルの名前がわからない人の情報を表示したい NULL と空白の違い どのサークルにも所属していない場合は空白所属しているサークル名が丌明の場合は NULL NULL の扱い 値がない場合の入力値として使う. 丌明 ( 記録時にわからない ), 未定 ( これから決まる ), 無意味など値がない = 他と比較できない, 平均値を求める演算の対象からはずさなくてはならないなど 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 26

抽出条件で指定する演算子 演算子 説明 比較演算子 < <= = >= > <> BETWEEN ~ 以上 ~ 以下 IN いずれかの値と等しい IS NULL NULL 判定 LIKE 部分一致検索 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 27

パターンマッチ select * from shopsale where date like ; 11 月の 10 日から 19 日までの売上情報を表示したい A_Z A から始まり一文字をいれて Z で終わる ABZ, A2Z など.ADDZ は NG ABC% ABC から始まる文字列 ABC, ABCD, ABCCCC など.ABBC は NG %AN% AN を含む文字列 LOS ANGELS, SAN FRANCISCO など. select * from shopsale where date like ; 11 月の 10 日から 19 日までを除く期間売上情報を表示したい 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 28

今日の授業 データベース操作のおさらい データベースの参照データベースの登録 変更 削除 集合関数 抽出条件副問い合わせ 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 29

副問い合わせに指定する演算子 副問い合わせ : 探索条件の中に指定する問い合わせ ( 問い合わせの入れ子 ) 演算子 説明 比較演算子 < <= = >= > <> IN EXISTS いずれかの値と等しい 出力があるかどうかの判定 右側の式に副問い合わせを指定 副問い合わせのみで使用 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 30

比較演算子 副問い合わせの結果は 1 列かつ 1 行 ( 一つの値 ) でなければならない 比較するため select * from student where grade >= (select avg(grade) from student) プレイスメントテストが平均点以上の学生情報 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 31

IN 演算子 副問い合わせの結果は 1 列の場合は複数行でもよい. 比較するため select deptname from department where deptid in( (select deptid from student where grade>=70) プレイスメントテストが 70 点以上の学生が所属する学科名を知る 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 32

問題 プレイスメントテストが平均点以上の学生が所属する学科名を知る select deptname from department where deptid in (select deptid from student where grade>=(select avg(grade) from student)); 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 33

EXISTS 演算子 select date from netsale where (select * from shopsale where shopsale.date = netsale.date); select date from netsale where date (select date from shopsale); 店舗でもネットでも売り上げがあった日を知りたい 2011/12/8 2011 Eiko Takaoka All Rights Reserved. 34