SQL J2EE I 第3回 / 2005-04-28.

Slides:



Advertisements
Similar presentations
Accessによるデータベース(1) Ver.1 /11.
Advertisements

図書系のための アプリケーション開発講習会 2008年7月31日
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
SQLite3
インターネット技術特論 H:SQLite3 山口 実靖
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
リレーショナル・データベース データベース論 第10回.
データベース工学および演習 第5章 リレーショナルデータベース言語SQL
PostGIS - 1 (入門編).
ハルビン絵葉書コレクションシステムの再構築と機能追加 -サーバ側:PHPとMySQLを用いて
バリデータ J2EE II 第11回 / 2006年1月19日.
SQL データベースアクセスのための文法と MySQL
SQLエディタによる データベースプログラミング
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
MySQLに接続するデータベースプログラム
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材
WagbyR6.5 Update 12 PPT版 更新情報
情報通信システム(12) plala. or 情報通信システム(12) 年7月19日 火曜日  午後4時10分~5時40分 NTT-IT Corp. 加藤 洋一.
3-2.データを取り出す 2004年 5月20日(木) 01T6074X 茂木啓悟.
Webコミュニケーショングループ ~CGI勉強会~ (データーベース編)
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
 データベースによる並列処理 情報論理工学研究室  三宅健太.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
パフォーマンスチューニング on Rails
情報通信システム(12) plala. or 情報通信システム(12) 年7月25日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
この資料は、テキストをもとに、講義のために作成したものです.学習用に活用してください.
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
データベースとJavaをつなげよう! ~JDBC~
2004/05/13 3-4 データ型(カラムタイプ) について 発表者:藤村元彦 自然言語処理研究室.
SQL パフォーマンス チューニング ~ カバーリングインデックス/クエリヒントの利用~
JDBC J2EE I 第4回 /
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
SQL パフォーマンス チューニング ~ プランガイドの利用~
情報通信システム(12) plala. or 情報通信システム(12) 年7月17日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
JDBC データベース論 第12回.
Javaによる Webアプリケーション入門 第7回
3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
「Webデータベースの構築技術」正誤表 ページ 項目 誤記 訂正 18 表1.4 アクセス 権限の削除 ・・・テーブル名 TO ユーザ名
コンピュータ概論B ー ソフトウェアを中心に ー #09 データベース (後編)
講義ノート共有データベース NoteTotter?
データベース設計 第8回 クライアント=サーバーモデル(2)
JDBC J2EE I (データベース論) 第5回 /
XML Schema (1) ソフトウェア特論 第3回 /
3-8・関数を使ってデータを取り出す   2004年6月3日(木) 01T6010F               大北高広.
3.リレーショナルデータベース,主キー, SQL
JDBC ソフトウェア特論 第3回.
EntityManager と EJB QL EJB 3.0 コース 第8回 2006年8月5日.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
再帰CTE を使って遊ぼう 大阪#9 2012/04/14.
関係データベースとSQL MZ Platform講習会(上級).
リレーショナル・データベース J2EE I (データベース論) 第2回 /
09 06/23 PHP と SQL (MySQL) の連携 その3
データベース第3回目 意味ごとにテーブルを分ける
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
地理情報システム論 第6回 GISによる処理技法 GIS入門(2)
SQL J2EE I (データベース論) 第3回 /
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
情報通信システム(12) plala. or 情報通信システム(12) 年7月23日 火曜日  午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一.
SQL データベース論 第11回.
Presentation transcript:

SQL J2EE I 第3回 / 2005-04-28

きょうの内容 SQLの概要を知る。

リレーショナルデータベースの 仕組み 「データベース」は、「テーブル」から構成される 「テーブル」は、「行」から構成される 「行」は、「項目」から構成される no title author publisher 42377 伽藍とバザール 山形浩生訳 光芒社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク

SQL リレーショナルデータベースを操作するための言語。 ほかには SQL89, SQL92, SQL99

テーブルの作成 (1) create table テーブル名 ( 項目名 データ型, ..... );

テーブルの作成 (2) create table books ( ndc varchar(10), tyosya_hyouji varchar(2), id int, title varchar(50), author varchar(50), publisher varchar(30), constraint pk_books primary key(id) );

データ型 データにはSQL標準の型がある。 他にも、DBMSごとに独自のデータ型がある。 char(n) 固定長の文字列 (長さ n) varchar(n) 可変長の文字列 (長さ n) int 符号付き整数 float(p) 浮動小数点 (p は精度) date 日付 time 時刻 他にも、DBMSごとに独自のデータ型がある。

制約 (1) 制約とは何か テーブルの項目に入る値の条件 制約には2通りある。 列制約  ひとつの列に制約を加える テーブル制約  複数の列に同時に制約を加える

制約 (2) 主キー制約  主キーを指定する 列制約 テーブル制約 create table books ( 制約 (2) 主キー制約  主キーを指定する 列制約 create table books ( ndc varchar(10), tyosya_hyouji varchar(2), id int primary key, title varchar(50), author varchar(50), publisher varchar(30) ); テーブル制約 create table books ( ndc varchar(10), tyosya_hyouji varchar(2), id int, title varchar(50), author varchar(50), publisher varchar(30), primary key (id) );

制約 (3) not null 制約  列に null を許さない create table books ( ..... title varchar(50) not null, );

制約 (4) unique 制約  データの重複を許さない create table students ( ..... email varchar(50) unique, );

制約 (5) check 制約  指定した論理式をチェック create table books ( ..... id int check (0 <= id and id < 100000), );

制約 (6) 制約名 (列制約) constraint 制約名 制約 制約にひっかかると制約名でエラーが表示 制約 (6) 制約名 (列制約) create table books ( ndc varchar(10), tyosya_hyouji varchar(2), id int constraint pk_books primary key, title varchar(50), author varchar(50), publisher varchar(30) ); constraint 制約名 制約 制約にひっかかると制約名でエラーが表示

制約 (7) 制約名 (テーブル制約) create table books ( ndc varchar(10), 制約 (7) 制約名 (テーブル制約) create table books ( ndc varchar(10), tyosya_hyouji varchar(2), id int, title varchar(50), author varchar(50), publisher varchar(30), constraint pk_books primary key (id), constraint check_id check (0 <= id and id<100000) );

制約 (8) 外部キーの設定 (1) no タイトル 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 結城浩 著 ソフトバンク no keyword 42872 Java デザインパターン それぞれのテーブルには「no」という項目がある。この項目を通じて2つのテーブルを結合できる。   ↑ この「no」が外部キー。元のテーブルを参照できる。

制約 (9) 外部キーの設定 (2) create table テーブル名 ( 項目名 データ型 ..... 項目名 データ型 ..... constraint 制約名 foreign key(項目名) references 参照テーブル名(項目名) );

制約 (10) 外部キーの設定 (3) create table books ( id int constraint pk_books primary key, ..... ); create table keywords ( id int, keyword varchar(30), constraint fk_id foreign key(id) references books(id)

テーブルの削除 drop table テーブル名 例) drop table books;

データの検索 (1) 基本パターン select 項目のリスト from テーブルのリスト where 検索条件

データの検索 (2) 検索条件が無い場合 select title from books; テーブル books 中のすべてのデータから、title という項目を取り出す select id, title from books; テーブル books 中のすべてのデータから、id と title という2つの項目を取り出す select * from books; テーブル books 中のすべてのデータから、すべての項目を取り出す

データの検索 (3) 単純な検索条件 select id, title from books where id < 30000; select title, publisher from books where publisher = ‘八千代出版’; 出版社が「八千代出版」のものを検索 「八千代出版会」はヒットしない。同一でなければダメ

データの検索 (4) 論理演算 (and) select id, title from books where 42000 <= id and id < 43000; Id が 42000 以上かつ 43000 未満のものを検索 where between 42000 and 43000; こう書くこともできる

データの検索 (5) 論理演算 (or) select title, author, publisher from books where publisher = ‘群像社’ or publisher = '八千代出版'; 出版社が「群像社」か「八千代出版」のものを検索

データの検索 (6) like とワイルドカード select title from books where title like 'Java%'; 「Java」からはじまるタイトルの本を検索 where title like '%Java%'; タイトルに「Java」を含む本を検索

データの検索 (7) like とワイルドカード select title from books where title like '%Java%' or title like '%Perl%'; タイトルに「Java」か「Perl」を含む本を検索

データの検索 (8) テーブルの結合 (1) あるタイトルの本のキーワードを知りたい。 テーブルは正規化によって分割されている。 no 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク あるタイトルの本のキーワードを知りたい。 テーブルは正規化によって分割されている。 no Keyword 42872 Java デザインパターン

データの検索 (9) テーブルの結合 (2) 複数のテーブルを使う場合、項目名の指定は次の形になる。 テーブル名.項目名 検索条件として、それぞれのテーブルの id が一致している必要がある。 select books.title, keywords.keyword from books, keywords where books.id = keywords.id;

データの検索 (10) テーブルの結合 (3) SQL92 以降では次のように書ける select books.title, keywords.keyword from books join keywords on books.id = keywords.id;

データの検索 (11) テーブルの結合 (4) books.id = keywords.id のように、id という項目名が共通の場合、次のようにも書ける。(HSQLDBでは動かない) select books.title, keywords.keyword from books join keywords using(id);

データの登録 insert into テーブル名 values (値1, 値2, ...) 例) insert into books values ( '361', 'M', '41439', '情報メディア論', '丸山不二夫 編著', '八千代出版' ); create table での項目の順番通りに指定する

データの更新 update テーブル名 set 項目名 = 式 where 更新条件 例) update books set author = '丸山不二夫 編著 / 植田龍男 ほか著' where id = '41439'; where句がないとすべての行が更新されてしまう!

データの削除 delete from テーブル名 where 削除条件 例) delete from books where id = '41439'; where句がないとすべての行が削除されてしまう!

参考文献・URL UNIXデータベース入門 はじめてでもわかるSQLとデータ設計 http://www.wakhok.ac.jp/DB/DB.html 丸山学長によるデータベース入門。SQL89をベースにしていますが、よくまとまっている有益なテキストです。 はじめてでもわかるSQLとデータ設計 西村めぐみ著 ディー・アート ISBN 4-88648-647-9 きわめてわかりやすく解説されています。