27
第 4 第 第第第第第第 AlphabetBootCamp

第4回 データベース

Embed Size (px)

Citation preview

Page 1: 第4回 データベース

第 4 回 データベースAlphabetBootCamp

Page 2: 第4回 データベース

アジェンダ

データベースとはなにか

RDB とはなにか

SQL とは?

実際に試してみる

Page 3: 第4回 データベース

データベースとはなにか?

データベースとは、複数の主体で共有、利用したり、用途に応じて加工や再利用がしやすいように、一定の形式で作成、管理されたデータの集合のこと。 [1]

          

[1] e-word 「データベース」http://e-words.jp/w/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9.html

Page 4: 第4回 データベース

システムにおけるデータベースとは

データを貯める+データを取り出す仕組みが、備わったソフトウェアのことを指す。

→ DBMS (データベース管理システム)と呼ばれる。

Page 5: 第4回 データベース

なぜデータベース (DBMS) が必要なのか?

大量のデータを効率的に管理するため

データの一元管理・整合性を保つため

統一的な操作を行うため

複数ユーザから利用できるようにするため

Page 6: 第4回 データベース

データベースの種類

データベースの種類はおおまかに2つ

リレーショナル・データベース( RDB )

→ 多くの企業で利用されており、一般的に DB と呼ぶとだいたい    リレーショナルデータベースを指すことが多い。

NoSQL(Not Only SQL)→RDB ではない DB の総称  IoT やビッグデータの台頭に伴い、大量のデータが非定形な形で発生  するようになったため、ある部分に特化した DB が必要となったため  生まれた。

 ※ 今回はリレーショナル・データベースが対象のため、 NoSQL は割愛

Page 7: 第4回 データベース

リレーショナルデータベース( RDB) とは?

複数の表(テーブル)を関連付けることができる ( 関係モデル )

SQL ( Structured Query Language) によって操作

2次元表の形式で管理

Page 8: 第4回 データベース

テーブル(表)とは?

ユーザID

名前 職業 性別

1 ヨシヒコ 勇者 男

2 ダンジョー 戦士 男

3 ムラサキ 素人の女 女

4 メレブ 魔法使い 男

… … … …

ユーザ情報 列 ( カラム )

行 ( レコード )

属性

Page 9: 第4回 データベース

関係モデル 例

ユーザID

名前 職業 性別

1 ヨシヒコ 勇者 男

2 ダンジョー 戦士 男

3 ムラサキ 素人の女 女

4 メレブ 魔法使い 男

… … … …

ユーザID

職業

1 勇者

1 アイドル

1 勇者

1 盗賊(ルパン)

1 勇者

ユーザ情報

転職履歴

結合条件

複数の表を結合して、一つの表として扱うことができる。

Page 10: 第4回 データベース

データベース

一つの DB で複数のテーブルを扱えます。

Page 11: 第4回 データベース

Tips !代表的な RDB の製品

製品名 概要

Oracle Database Oracle 社の製品

SQL Server Microsoft 社の製品

DB2 IBM 社の製品

MySQL オープンソースの製品

PostgreSQL オープンソースの製品

Page 12: 第4回 データベース

SQL(Structured Query Language) とは

関係データベース管理システム (RDBMS) において、データ

操作や定義を行うためのデータベース言語(問い合わせ言

語) , ドメイン固有言語である。 [1]

[1] SQL – Wikipediahttps://ja.wikipedia.org/wiki/SQL

Page 13: 第4回 データベース

SQL の種類

SQL は 3 種類に分類できる。

DDL( データ定義言語 : Data Definition Language)→ データベースやテーブルを作成、更新、削除を行う。

DDM( データ操作言語 : Data Manipulation Language)→ テーブルのデータを追加、取得、更新、削除を行う。

DCL( データ制御文 : Data Control Language)→ 権限の付与・剥奪や、変更の確定、キャンセル(トランザクショション)などを行う。

Page 14: 第4回 データベース

SQL の種類

SQL は 3 種類に分類できる。

DDL( データ定義言語 : Data Definition Language)→ データベースやテーブルを作成、更新、削除を行う。

DDM( データ操作言語 : Data Manipulation Language)→ テーブルのデータを追加、取得、更新、削除を行う。

DCL( データ制御文 : Data Control Language)→ 権限の付与・剥奪や、変更の確定、キャンセル(トランザクショション)などを行う。

今回は DDM のみ対象

Page 15: 第4回 データベース

SQL で重要な4つのコマンド

SQL において、よく使うのはたった4つのコマンド!

コマンド 用途SELECT データを取得する。INSERT データを追加する。UPDATE データを更新する。DELETE データを削除する。

Page 16: 第4回 データベース

SELECT

用途

データを取得するために使う

構文

SELECT 取得する列名 (* で全ての列 ) FROM 表名

ExampleSELECT 名前 FROM ユーザ情報

⇒ ユーザ情報テーブルから、名前を取得する。

Page 17: 第4回 データベース

INSERT

用途

データを追加するために使う

構文

INSERT INTO テーブル名 ( 列名 1, 列名 2…)VALUES ( 列名 1 に追加する値 , 列名 2 に追加する値… );ExampleINSERT INTO ユーザ情報 ( 名前 ) VALUES(‘ ヨシヒコ’ );⇒ ユーザ情報テーブルに、1件追加する。

Page 18: 第4回 データベース

UPDATE

用途

データを更新するために使う

構文

UPDATE テーブル名

SET ( 列名 1 = 列名 1 に追加する値 , 列名 2 = 列名 2 に追加する値… );ExampleUPDATE ユーザ情報

SET ( 職業 = ‘ 盗賊’ );⇒ ユーザ情報テーブルの職業を盗賊に更新する

Page 19: 第4回 データベース

DELETE

用途

データを削除するために使う

構文

DELETE テーブル名 ;ExampleDELETE ユーザ情報 ;⇒ ユーザ情報テーブルのレコードを削除する

Page 20: 第4回 データベース

条件の指定

条件を指定しない限り、全てのデータに影響を与えてしまう。

データの取得も更新、削除も全件が対象になってしまう!

本当にやりたいことは、職業が勇者のみ取得だったり…

職業が魔法使いの人だけ削除だったりするはず!

Page 21: 第4回 データベース

条件の指定

ある条件を満たすデータに対して、なにかしたい場合は WHERE を使う!

たとえば

勇者のみ取得したい場合

SELECT * FROM ユーザ情報  WHERE 職業 = ‘ 勇者’ ;魔法使いだけ削除したい場合

DELETE ユーザ情報  WHERE ‘ 職業’ = ‘ 魔法使い’

Page 22: 第4回 データベース

条件の指定( WHERE)

条件の指定は複数指定することもできる!

SELECT * FROM ユーザ情報 WHERE 性別 = ‘ 男’ AND 職業 = ‘ 戦士’

Page 23: 第4回 データベース

WHERE で使える演算子(一部)

演算子 説明 例

= 等しい 職業 = ‘ 戦士’

> 大きい 年齢 > 20< 小さい 年齢 < 20>= 大きい、もしくは等しい 年齢 >= 20<= 小さい、もしくは等しい 年齢 <= 20!=, <>

等しくない 名前 <> ‘ ヨシヒコ’

LIKE パターンに一致 名前 LIKE ‘ ヨシ %’ ※ 前方一致 : ヨシで始まる名前 LIKE ‘% ヨシ %’ ※ 部分一致 : ヨシが含まれる名前 LIKE ‘% ヒコ’ ※ 後方一致 : ヨシで終わる値は’’ (シングルクォーテーション)で囲む必要があるのに注意してね!

Page 24: 第4回 データベース

実際に試してみよう!①

ダミーの個人情報を 5000 件用意しました!

この 5000 人の中から、「名前が岩田で始まり、かつ性別が男の人だけ抽出してみよう」

さて、何人いるでしょうか。

Page 25: 第4回 データベース

実際に試してみよう!②

このテーブルの中に、自分を追加してみよう。

ちなみに僕の場合

INSERT INTO `users` (`name`, `furigana`, `mail`, `sex`, `age`, `birth_day`, `blood_type`, `prefecture`, `phone`) VALUES (‘澤田 諒’ , ‘ さわだ まこと’ , ‘[email protected]’, ‘F’, 25, ‘1991-03-10’, ‘B’, ‘ 愛知県 ', ‘0120828828');

Page 26: 第4回 データベース

おすすめサイト

「ドットインストール」

URL: http://dotinstall.com/lessons/basic_mysql_v2

おすすめポイント

プログラミングが学べる学習サイト一回あたり3分の動画

※ MySQL編は全 19 回

Page 27: 第4回 データベース

おすすめ本

「 SQL 第 2版 ゼロからはじめるデータベース操作」

価格 :2,030円 (Kindle版 : 2,030円 )※ Amazon の販売価格

おすすめポイント

・お値段も比較的安い!・ベンダーに依存しない標準 SQL で書かれているのが◎・著者も DB で有名な人なので安心(「プログラマのための SQL 」の翻訳者!)