第4回 データベース

Post on 15-Apr-2017

284 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

第 4 回 データベースAlphabetBootCamp

アジェンダ

データベースとはなにか

RDB とはなにか

SQL とは?

実際に試してみる

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

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

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

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

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

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

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

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

統一的な操作を行うため

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

データベースの種類

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

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

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

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

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

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

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

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

2次元表の形式で管理

テーブル(表)とは?

ユーザID

名前 職業 性別

1 ヨシヒコ 勇者 男

2 ダンジョー 戦士 男

3 ムラサキ 素人の女 女

4 メレブ 魔法使い 男

… … … …

ユーザ情報 列 ( カラム )

行 ( レコード )

属性

関係モデル 例

ユーザID

名前 職業 性別

1 ヨシヒコ 勇者 男

2 ダンジョー 戦士 男

3 ムラサキ 素人の女 女

4 メレブ 魔法使い 男

… … … …

ユーザID

職業

1 勇者

1 アイドル

1 勇者

1 盗賊(ルパン)

1 勇者

ユーザ情報

転職履歴

結合条件

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

データベース

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

Tips !代表的な RDB の製品

製品名 概要

Oracle Database Oracle 社の製品

SQL Server Microsoft 社の製品

DB2 IBM 社の製品

MySQL オープンソースの製品

PostgreSQL オープンソースの製品

SQL(Structured Query Language) とは

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

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

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

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

SQL の種類

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

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

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

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

SQL の種類

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

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

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

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

今回は DDM のみ対象

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

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

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

SELECT

用途

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

構文

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

ExampleSELECT 名前 FROM ユーザ情報

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

INSERT

用途

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

構文

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

UPDATE

用途

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

構文

UPDATE テーブル名

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

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

DELETE

用途

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

構文

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

条件の指定

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

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

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

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

条件の指定

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

たとえば

勇者のみ取得したい場合

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

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

条件の指定( WHERE)

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

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

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

演算子 説明 例

= 等しい 職業 = ‘ 戦士’

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

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

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

実際に試してみよう!①

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

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

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

実際に試してみよう!②

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

ちなみに僕の場合

INSERT INTO `users` (`name`, `furigana`, `mail`, `sex`, `age`, `birth_day`, `blood_type`, `prefecture`, `phone`) VALUES (‘澤田 諒’ , ‘ さわだ まこと’ , ‘makoto.sawada@el-ltd.co.jp’, ‘F’, 25, ‘1991-03-10’, ‘B’, ‘ 愛知県 ', ‘0120828828');

おすすめサイト

「ドットインストール」

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

おすすめポイント

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

※ MySQL編は全 19 回

おすすめ本

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

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

おすすめポイント

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

top related