Chapter Two

Similar documents
Chapter Two

Microsoft PowerPoint - db03-5.ppt

Microsoft PowerPoint pptx

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

PowerPoint プレゼンテーション

標準化 補足資料

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

データベースS

Chapter Two

プレポスト【問題】

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

PowerPoint Presentation

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

Microsoft Word - SQL.rtf

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

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

関係データベース

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

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

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

PowerPoint プレゼンテーション

,, create table drop table alter table

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

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

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

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

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

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

基本サンプル

基本サンプル

Microsoft PowerPoint - system8.ppt

データベース 【1:データベースシステムとは】

情報科学概論 第6回

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

基本サンプル

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

Microsoft PowerPoint - KeySQL50_10g_vlo2.ppt

cmpsys13w14-15_database.ppt

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

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

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

関数サンプル1

Microsoft Word - sample_adv-programming.docx

PowerPoint プレゼンテーション

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

CMP2-3SQL2b.pptx

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

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

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

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

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

tkk0408nari

WDI-Slides-05.pptx

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

How to Use the PowerPoint Template

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

Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい

Wiki Wiki Wiki...

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

データベースアクセス

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

はじめに コース概要と目的 Oracle を使用した開発 管理を行う上でのファースト ステップとして リレーショナル データベース管理ソフトウェアである Oracle の役割 基本機能 基本アーキテクチャを幅広く理解することを目的としています 受講対象者 これから Oracle を使用する方 データ

スライド 1

Webシステム授業資料

関数サンプル2

ICT-Literacy1

スライド 0

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

Microsoft認定資格問題集DEMO(70-459_Part2)

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

08_takata

KTest

Oracle Database Connect 2017 JPOUG

Basic descriptive statistics

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

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1

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

プログラミング基礎

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

関数サンプル1

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

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

橡実践Oracle Objects for OLE

Chapter Two

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

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

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

10th Developer Camp - B5

Taro php.jtdc

DataBase17-10.pptx

Microsoft PowerPoint - C_Programming(3).pptx

Chapter Two

スライド 1

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


Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

PowerPoint Presentation

シート一覧 タイプ 名前 その他 表紙 その他 その他 その他 変更履歴 sheet_index_template ER 図 テーブルアートプロジェクトデータテーブルアートプロジェクトに関するデータテーブルである. 内容は未定. テーブル分類名称データテーブル観光地 観光施設, イベント, パンフレ

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

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

Transcription:

Database 第 8 回 :SQL 言語 ( データベース操作 ) 上智大学理工学部情報理工学科 高岡詠子 No reproduction or republication without written permission. 許可のない転載 再発行を禁止します 1

Schedule 日程 内容 第 1 回 10 月 6 日 ガイダンス, データベースとは? 第 2 回 10 月 13 日 三層スキーマ, データモデル, データベース設計のための仕組み 第 3 回 10 月 20 日概念設計 : 概念モデルとERモデル, 論理設計へ 第 4 回 10 月 27 日論理設計と正規化 第 5 回 11 月 10 日 正規化, 物理設計 第 6 回 11 月 17 日 物理設計 第 7 回 11 月 24 日 SQL 言語 ( データベース定義 ) 第 8 回 12 月 1 日 SQL 言語 ( データベース操作 ) 第 9 回 12 月 8 日 SQL 第 10 回 12 月 15 日 SQL 言語 ( ビュー定義など ) 第 11 回 12 月 22 日データベース管理システム : トランザクション処理 第 12 回 1 月 5 日 データベース管理システム : 同時実行制御, 排他制御 第 13 回 1 月 12 日 同時実行制御, 排他制御, デッドロック 第 14 回 1 月 19 日 データベース技術動向, リレーショナル代数, まとめ 2

今日の授業 データベース定義 データベース操作 データベースの参照 データベースの登録 変更 削除 3

SQL が RDBMS に対して持つ制御機能 データベース定義 データを格納すべき表の定義, ビューの定義 複数の表を関連づけるための規約や制約 データベースのアクセス権などを定義 データベース操作 表に対するデータの登録 修正 削除 複数の表の結合, ビュー表の作成などの集合操作 表中のデータ検索 トランザクション管理 回復や同時実行のための最小単位として保証される一連の処理の操作 4

受注表 (juchu) 得意先表 (shoptable) 受注番号得意先コード商品コード受注個数納品日 得意先コード得意先名 商品表 (itemtable) 商品コード商品名商品単価 受注表 (juchutable) #* 受注番号 (orderid) * 得意先コード (shopid) * 商品コード (itemid) 受注個数 (ordernum) 納品日 (shipdate) 得意先表 (shoptable) #* 得意先コード (shopid) * 得意先名 (shopname) 商品表 (itemtable) #* 商品コード (itemid) * 商品名 (itemname) * 商品単価 (price) 5

列名称 ( 属性 ) 受注番号得意先コード商品コード受注個数納品日 CREATE TABLE juchutable ( データ型 INT CHAR INT INT DATE 最大データ長 4 5 3 5 7 キー種 PK FK1 FK2 一意性 1 1 依存先得意先表商品表 入力必須 NN1 NN2 NN3 平均データ長 4 5 3 2 7 orderid shopid itemid ordernum shipdate UNIQUE( ) ) ; 6

CREATE TABLE shoptable ( ) ; shopid shopname CREATE TABLE itemtable ( ) ; itemid itemname price 得意先表 (shoptable) 列名称 ( 属性 ) 得意先コード得意先名 データ型 CHAR CHAR 最大データ長 5 10 商品表 (itemtable) 商品コード商品名 商品単価 INT CHAR INT 3 20 8 キー種 PK PK 入力必須 NN1 NN2 NN1 NN2 NN3 7

今日の授業 データベース定義データベース操作 データベースの参照データベースの登録 変更 削除 8

SQL が RDBMS に対して持つ制御機能 データベース定義 データを格納すべき表の定義, ビューの定義 複数の表を関連づけるための規約や制約 データベースのアクセス権などを定義 データベース操作 表に対するデータの 複数の表の結合, ビュー表の作成などの集合操作 表中のデータ トランザクション管理 回復や同時実行のための最小単位として保証される一連の処理の操作 9

テーブルの中身を確認 :select * from juchutable; そのテーブルに登録されているすべての情報を見ることができる便利なコマンド juchutable; そのテーブルの属性を知るためのコマンド 10

データの登録 :insert 列名称 ( 属性 ) 受注番号 得意先コード 商品コード 受注個数 納品日 101 a102 35 3 091111 1 行追加 : juchutable (101,"a11",35,3,091111); テーブル名 ( カラムの内容 ); このエラーはなぜ出るのでしょうか? 11

テーブルの名前の変更など テーブルの名前の変更 mysql> テーブル名 新しいテーブル名 ; カラムの型を変える mysql> テーブル名 カラム名型 ~~~ mysql> ALTER TABLE jyuchu orderid char(3); カラムの名前変更 mysql> ALTER TABLE テーブル名 CHANGE 古いカラム名新しいカラム名型 ; mysql> ALTER TABLE jyuchu orderid oid char(3); カラムを削除する mysql> ALTER TABLE テーブル名 削除するカラム名 ; 12

データの登録 データの登録テーブル名 ( カラムの内容 ); insert into juchutable values(102,"a10",5,3,091112); insert into juchutable values(103,"a10",50,1,091113); insert into juchutable values(104,"a11",543,2,091112); insert into juchutable values(105,"a11",115,7,091113); insert into juchutable values(106,"a12",45,10,091112); insert into juchutable values(107,"a13",34,2,091112); insert into juchutable values(108,"a13",60,1,091113); 13

履修 (rishu) 履修年度学生番号科目コード 学生 (student) #* 学生番号 * 氏名住所 実習 1 科目 (subject) #* 科目コード * 科目名 * 単位数 右のような表をつくりましょう 14

CREATE ( TABLE rishu 実習 1 ) ; データ登録 select * from rishu; 中身確認 15

CREATE ( TABLE student ) ; CREATE ( TABLE subject ) ; insert into student values("a0812343", " 上智太郎 ", " 千代田区紀尾井町 7-1 "); 16

subjectid subjectname credit lct90274 データベース 4 lct90250 情報リテラシー 2 lct90009 科学技術英語 4 lct90113 人間学 4 lct90320 社会と情報 4 lct90100 体育 4 lct90110 英語 2 lct90987 コンピュータプログラミング 2 insert into subject values("lct90274", " データベース ",4); 17

データの更新 表名カラム名 = 値, カラム名 = 値条件 ; update subject set credit=credit+2; update subject set credit=credit-2 where credit=2; 18

テーブルやデータの削除 データのみの削除 delete from テーブル名 where 条件 ; テーブル名 ; delete from subject where subjectid="lct90987"; データだけでなくテーブルごと削除する テーブル名 ; 19

今日の授業 データベース定義データベース操作 データベースの参照データベースの登録 変更 削除 20

最も多く使われる select 文 カラム名 1, カラム名 2, 抽出条件グループ化を行うグループ化を行ったときの抽出条件並べ替えを指定する 21

select 文 すべての列を抽出する ( ) subject 表からすべての列を表示 特定列の抽出 ( ) select 列名 (, で区切る ) from テーブル名 ; subject 表から 2 つの列を選択して表示 subjectid, subjectname ; 算術表示もできる select credit * 4 from subject; 22

select 文 条件付き参照 select カラム名 (, で区切る ) from テーブル名 where 条件 juchutable 表から shopid が a10 である行を抽出する subject 表から credit が 2 を超える科目名 subjectname を抽出する juchutable 表から shopid が a10 である行の商品コードと受注個数を抽出する 23

実習 : 以下のような出力をする表をつくる mysql> desc shopsale; +-------------+----------+------+-----+---------+-------+ Field Type Null Key Default Extra +-------------+----------+------+-----+---------+-------+ shopname char(20) NO NULL sales int(10) YES NULL date date NO NULL +-------------+----------+------+-----+---------+-------+ mysql> desc netsale; +-------+---------+------+-----+---------+-------+ Field Type Null Key Default Extra +-------+---------+------+-----+---------+-------+ sales int(10) YES NO NULL date date YES NO NULL +-------+---------+------+-----+---------+-------+ 24

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 25

insert into shopsale values(" 紀尾井町, 450000, 20091101); 26

create table shopsale( ); create table netsale( ); 27

重複行を除外する select 文 shopsale 表から shopname に関して重複行を除外して表示させる 28

select 文 テーブルをソートして表示 shopsale 表を日付順に並べ替えする select * from テーブル名 カラム名 (, で区切る ); カラム名を変えて表示 select shopname as 店舗名 from shopsale; 29

関係演算子と論理演算子 select * from rishu where rishunendo>=2009 and subjectid= lct90274 ; 関係演算子 論理演算子 = 左辺が右辺と等しい < 左辺が右辺より小さい <= 左辺が右辺以下 > 左辺が右辺より大きい >= 左辺が右辺以上 <> 左辺と右辺が等しくない AND OR NOT かつ または 否定 30

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

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

集合関数を使った select 文 重複行を除外する shopsale 表から shopname に関して重複行を除外して表示させる 数える select count(shopname) from shopsale; 異なる列の値を数える select count(distinct shopname) from shopsale; 33