第4回 データベース
Post on 15-Apr-2017
284 Views
Preview:
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