2.6.6 毒性試験の概要文 タグリッソ 錠...TKI Tyrosine kinase inhibitor:チロシンキナーゼ阻害剤 2.6.6 毒性試験の概要文 治験成分記号:AZD9291 6
HTML5 Professional認定試験 Level.1 試験対策 ネットワーク・ … · 2014-11-28 ·...
Transcript of HTML5 Professional認定試験 Level.1 試験対策 ネットワーク・ … · 2014-11-28 ·...
HTML5 Professional認定試験 Level.1 試験対策
ネットワーク・サーバ関連技術 第三回 データベース
株式会社クリーク・アンド・リバー社 認定講師
高井 歩
ネットワーク・サーバ関連技術 第三回 データベース
• データベースとは
• データベースの種類と特徴
• データ操作言語、SQLの基本
データベースとは
データベースとはData Base Management Systemデータの蓄積 を管理する仕組み
略してDBMS
システム構成図などでは、 筒状のアイコンで表されます
DBMSの役割• たくさんのデータを効率的に管理する
• データの整合性などを保証する
• データの処理を抽象的に扱う方法を提供する
問題1DBMSについての説明で正しくないものを選択しなさい。
A) データを効率的に管理するための仕組みである
B) 検索するためのプログラムを作成する必要がある
C) 検索するためのプログラムは作成しなくてもよい
D) データの整合性が確保される
データベースの種類
システム構成による分類• クライアント/サーバモデル
• 実際の処理を行うプログラムと操作を行うプログラムが異なっている
• 同時に複数の処理を行う事が出来る
• 処理を行うコンピュータと操作をするコンピュータを分けられる
• スタンドアロンモデル
• 一つのプログラムで操作と処理を行う
• 処理をするコンピュータと操作をするコンピュータは同じ
データの管理方法による分類• リレーショナルデータベース(RDBMS)
• 表の形で管理する
• 関係データベースとも呼ばれる。
• 現在主流の形式
• キーバリューストア(KVS)
• キーと値(バイナリデータ、XMLやJSONなど)で管理する
• 他のデータとの関係性の低い、個々が独立したデータの管理に向く
代表的なDBMS製品製品名 システム構成 管理方法
PostgreSQL クライアント/サーバ リレーショナル
Oracle MySQL クライアント/サーバ リレーショナル
Oracle Oracle クライアント/サーバ リレーショナル
Microsoft SQLServer クライアント/サーバ リレーショナル
Microsoft Access スタンドアロン リレーショナル
SQLite スタンドアロン リレーショナル
Amazon DynamoDB クライアント/サーバ キーバリュー
問題2MySQL,PostgreSQLに共通する特徴の組み合わせで正しいものを選べ
A. クライアント/サーバ、キーバリューストア
B. スタンドアロン、リレーショナル
C. クライアント/サーバ、リレーショナル
D. スタンドアロン、キーバリューストア
リレーショナルデータベース
• DBMSのうち、関係代数を元に作られたものをリレーショナルデータベース(RDBMS)と言う
• データは表の形式で扱われる
リレーショナルデータベースのデータ構造member (会員テーブル)
id name sex age type
1 Suzuki M 75 1
2 Ohnuma F 30 2
3 Nojima M 64 3
4 Shimada M 47 2
5 Komine F 63 1
カラム(列) レコード(行)
テーブル(表)カラム名 (列名)
キーmember (会員テーブル)
id name sex age type
1 Suzuki M 75 1
2 Ohnuma F 30 2
3 Nojima M 64 3
4 Shimada M 47 2
5 Komine F 63 1
候補キー
候補キー
かつ 主キー
レコード(行)を特定できるカラム(列)のことを候補キー、 候補キーの中でも特に選ばれたものを主キーと呼ぶ
問題3RDBMSについての説明で正しくないものを選択しなさい。
A) データは表の形で扱われる
B) 表の列をレコード、行をカラムともいう
C) レコードを特定できるカラムを候補キーという
D) 主キーは表ごとにひとつまでしか指定できない
SQL
SQLとは(1)• リレーショナルデータベースを操作するための「問い合わせ言語」
• 一般的なプログラム言語と違い、結果を得るための条件だけを記述する
• ISOで規格化されているため、RDBMS製品間である程度互換性がある
SQLとは(2)SQLで出来ること(コマンド)は大きく以下の三種類に分類できます。
• DDL データ定義言語 Data Definition Language テーブル等の作成、変更、削除を行なう
• DML データ操作言語 Data Manipulation Languageデータの追加、検索、変更、削除を行なう
• DCL データ制御言語 Data Control Languageデータ操作をする際に、データの整合性を保つための仕組みを操作する
SQLiteでSQLを学ぶ• この資料の最後にスタンドアロンのRDBMSであるSQLiteを使用して実際にSQLを使用するための解説を載せています。
• この後出てくる例は実際にSQLiteで試せます。
• ファイルをDLして実行するだけなので、是非実際にSQLを動かしてみて下さい。
例題用データベースmember (会員テーブル)
id name sex age type
1 Suzuki M 75 1
2 Ohnuma F 30 2
3 Nojima M 64 3
4 Shimada M 47 2
5 Komine F 63 1
member_type (会員種別テーブル)id name
1 無料会員2 有料会員3 特別会員
データベースの作成まずはデータベースを作成します。
データベースは目安として業務やシステムの大きなまとまり毎に一つ作成することになります。
CREATE DATABASE データベース名;
※SQLiteでは同時に一つしかデータベースを扱えないため、CREATE DATABASEは使用しません。
テーブルの作成(1)CREATE TABLE member ( id INTEGER PRIMARY KEY, name VARCHAR(100), sex CHAR(1), age INTEGER, type INTEGER);
member (会員テーブル)id name sex age type
CREATE TABLE member (id INTEGER PRIMARY KEY,name VARCHAR(100),sex CHAR(1),age INTEGER,type INTEGER);※SQLiteへのコピペ用
テーブルの作成(2)CREATE TABLE member ( id INTEGER PRIMARY KEY, name VARCHAR(100), sex CHAR(1), age INTEGER, type INTEGER);
member (会員テーブル)id name sex age type
CREATE TABLE member (id INTEGER PRIMARY KEY,name VARCHAR(100),sex CHAR(1),age INTEGER,type INTEGER);※SQLiteへのコピペ用
カラム名
データ型
主キーの指定
最大文字数
テーブルの作成(2)
CREATE TABLE member_type ( id INTEGER PRIMARY KEY, name VARCHAR(20) );
member_type (会員種別テーブル)id name
CREATE TABLE member_type (id INTEGER PRIMARY KEY,name VARCHAR(20));※SQLiteへのコピペ用
レコードを追加する(1)会員テーブルにレコードを追加します。
• INSERT INTO member (id,name,sex,age,type) VALUES (1,'Suzuki','M',75,1);
• INSERT INTO member VALUES (2,'Ohnuma','M',30,2);
INSERT INTO member (id,name,sex,age,type) VALUES (1,'Suzuki','M',75,1);※SQLiteへのコピペ用INSERT INTO member VALUES (2,'Ohnuma','M',30,2);
レコードを追加する(2)会員テーブルにレコードを追加します。
• INSERT INTO member VALUES (3,'Nojima','M',64,3),(4,'Shimada','F',47,2),(5,'Komine','F',63,1);
INSERT INTO member VALUES (3,'Nojima','M',64,3),(4,'Shimada','F',47,2),(5,'Komine','F',63,1);※SQLiteへのコピペ用
レコードを追加する(3)会員種別テーブルにレコードを追加します。
• INSERT INTO member_type VALUES (1,'無料会員'),(2,'有料会員'),(3,'特別会員');
INSERT INTO member_type VALUES (1,'無料会員'),(2,'有料会員'),(3,'特別会員');※SQLiteへのコピペ用
レコードを選択する(1)全てのレコード、全てのカラムを選択する
SELECT * FROM member;
SELECT * FROM member;※SQLiteへのコピペ用
レコードを選択する(2)名前と年齢だけを選択する
SELECT name,age FROM member;
SELECT name,age FROM member;※SQLiteへのコピペ用
レコードを選択する(3)63歳より年上のレコードだけを選択する
SELECT * FROM member WHERE age > 63;
SELECT * FROM member WHERE age > 63;※SQLiteへのコピペ用
レコードを選択する(4)演算子 使用例 説明> age > 40 ageが40より大きい< age < 40 ageが40未満>= age >= 40 ageが40以上<= age <= 40 ageが40以下= sex = 'F' sexが'F'に等しい<> sex <> 'F' sexが'F'で等しくない
IS NULL type IS NULL typeが空(NULL)IS NOT NULL type IS NOT NULL typeが空(NULL)ではない
LIKE name LIKE '%a' nameの末尾が'a'NOT LIKE name NOT LIKE '%a' nameの末尾が'a'ではない
※LIKE,NOT LIKEの値の%はワイルドカードとして どのような文字列でも該当するものとして扱われます。
レコードを選択する(5)63歳以上の男性のレコードだけを選択する
SELECT * FROM member WHERE age >= 63 AND sex = 'M';
SELECT * FROM member WHERE age >= 63 AND sex = 'M';※SQLiteへのコピペ用
ソート(1)年齢の昇順で並べ変える場合は次のように指定します。SELECT * FROM member ORDER BY age ASC;
SELECT * FROM member ORDER BY age ASC;※SQLiteへのコピペ用
ソート(2)年齢の降順で並べ変える場合は次のように指定します。SELECT * FROM member ORDER BY age DESC;
SELECT * FROM member ORDER BY age DESC;※SQLiteへのコピペ用
テーブルの結合(1)欲しい結果
id name sex age name
1 Suzuki M 75 無料会員
2 Ohnuma F 30 有料会員
3 Nojima M 64 特別会員
4 Shimada M 47 有料会員
5 Komine F 63 無料会員
テーブルの結合(2)直積を求める
SELECT * FROM member,member_type;
SELECT * FROM member,member_type;※SQLiteへのコピペ用
テーブルの結合(3)内部結合を求める
SELECT * FROM member JOIN member_type ON member.type = member_type.id;
SELECT * FROM member JOIN member_type ON member.type = member_type.id;※SQLiteへのコピペ用
テーブルの結合(4)カラムを指定する
SELECT member.id,member.name,sex,age,member_type.name
FROM member JOIN member_type ON member.type = member_type.id;
SELECT member.id,member.name,sex,age,member_type.name FROM member JOIN member_type ON member.type = member_type.id;
※SQLiteへのコピペ用
テーブルの結合(4)カラムを指定する
SELECT member.id,member.name,sex,age,member_type.name
FROM member JOIN member_type ON member.type = member_type.id;
SELECT member.id,member.name,sex,age,member_type.name FROM member JOIN member_type ON member.type = member_type.id;
※SQLiteへのコピペ用
問題4以下のSQLの結果は次のいずれになるかSELECT name FROM member WHERE type = 2;
member (会員テーブル)id name sex age type1 Suzuki M 75 12 Ohnuma F 30 23 Nojima M 64 34 Shimada M 47 25 Komine F 63 1
Aid name sex age type2 Ohnuma F 30 24 Shimada M 47 2
BnameOhnumaShimada
レコードの更新(1)全てのレコードを更新する
UPDATE member SET type = 1;
UPDATE member SET type = 1;
※SQLiteへのコピペ用SELECT * FROM member;
レコードの更新(2)idが3のレコードを更新する
UPDATE member SET type = 3 WHERE id = 3;
UPDATE member SET type = 3 WHERE id = 3;※SQLiteへのコピペ用SELECT * FROM member;
レコードの更新(3)idが2か4のレコードを更新する
UPDATE member SET type = 2 WHERE id = 2 OR id = 4;
※SQLiteへのコピペ用UPDATE member SET type = 2 WHERE id = 2 OR id = 4;SELECT * FROM member;
レコードの削除idが4のレコードを削除する
DELETE FROM member WHERE id = 4;
DELETE FROM member WHERE id = 4;
※SQLiteへのコピペ用SELECT * FROM member;
質疑応答
授業終了 お疲れさまでした
付録 SQLite
SQLite SQLiteは、PostgreSQLやMySQL等のクライアント/サーバ型のデータベース管理システムとは異なり、スタンドアロン型のデータベース管理システムです。 機能が限られている分、アプリケーションのサイズが小さく、手軽に使用することができます。 機能が限られているといっても、SQLの基本を学ぶには十分な機能を持っています。
SQLiteのインストールオフィシャルサイトのダウンロードページ ( http://www.sqlite.org/download.html )から、使用しているOS用のsqlite-shellをダウンロードして展開します。 展開するとsqlite3(Windows版はsqlite3.exe)というファイルが作成されます。
アンインストールする場合には、このsqlite3というファイルを削除するだけです。
SQLiteを起動するsqlite3(sqlite3.exe)をダブルクリックで起動すると、以下のようなウィンドウが開きます。 (OSや環境によって細部は異なります)
表示の設定を変更する
.header ON
.mode column
上の2行を入力し、SELECTの結果を表示する際にカラム名を表示し、見やすいように表示形式を変更します。
SQLiteを終了するSQLiteを終了する場合は、
• ウィンドウの閉じるボタンをクリックする(この場合は閉じても良いか聞かれます)
• sqlite> と表示されている状態で、”.exit”と入力します。”[プロセスが完了しました]”と表示されたらそのままウィンドウを閉じることができます。