DB 超入門

エンジニア超入門

データベース(DB)ってなに?から始めるDBの基礎知識とSQLの使い方

2020年8月31日

 

hillpoint
エンジニア半分、ブロガー半分。
複業フリーランスのhillpointです。

 

この記事では、これから、ITエンジニアになろうという人が、最低限が知っておくべき、データベース(DB)の基礎知識とDBのデータを見たり、書いたりするSQLというコマンドの使い方について、超入門編をお届けします。

 

超・超・超入門編です。

 

DBとSQLというものは、使うもの=ツールなので、勉強するもんじゃなくて、使い方を知ることが重要です。

この記事では、超入門編として、最低限の基礎だけ解説します。

この基礎は、頭の片隅においておき、実際使ってみて、この記事に書いていないこと、知りたいこと、困ったことがある場合は

 

ググってください。

 

エンジニアは、ググる力が超重要です。

キーワードだけ頭にいれ、知識は、ネット上に置く。

そんなもんです。

それでは、データベース(DB)ってなに?から始めるDBの基礎知識とSQLの使い方お届けします。

 

専門用語について

このサイトでは、ITエンジニアが使う専門用語を使用しています。

アイコンがついている専門用語は、「知らないと恥ずかしいITエンジニアの用語集」ページに説明を記載しているので、専門用語の意味が解らない場合、リンクをタップして、説明を参照してください。

 

DBの基礎知識

 

サラリーマン
デービー?
って、なに???

 

簡単に言うと
データの倉庫
自由に取り出せるよ!
hillpoint

 

DBとは、データベース(DATA BASE)の略で、コンピューターシステムで使用するデータを保存し、だれでも簡単に見たり・書いたり・分析したりできるソフトウェアのことです。

DBの代表的なものがこれです。

・Oracle
DBを作るトップメーカーのOracle社製のDBです。
高性能かつ高い信頼性を持つDBです。
お高いことで有名です。

・MySQL
オープンソースのDBです。
無料のDBです。
シンプルなDBであり、Webサービスによく使われます。

・PostgreSQL
オープンソースのDBです。
無料のDBです。
多機能なDBであり、企業のシステムによく使われます。

・SQL Server
MicroSoft社製のDBです。Windowsで動作します。Linuxでも動作はします。

他にも、DBはいろいろあります。

興味がある人はググってください。

 

DBの使い方

DBの使い方は、無料のDBであるMySQLを対象に説明します。

ですが、だいたいどれに似たり寄ったり(基礎は同じ)なので、他のDBを使う際も基礎として役にたちます。

 

MySQLインストール

通常、DBは、DBサーバと呼ばれるサーバにインストールされ、使われますが、今回は練習のため、パソコンにインストールして使用します。

どのDBも、WindowsでもMacでも、インストールして使えるので、自分のパソコンにDBをインストールしましょう。

インストール手順は、ここを参考にしましょう。

〇Windowsの人
MySQLのダウンロードとインストール - Windows環境

MySQLの初期設定と動作確認 - Windows環境

〇Macの人
Mac環境にMySQLをインストールしてみよう!初期設定までの手順を徹底解説!

 

MySQLログイン

インストールできたら、DBへログインします。

DBへアクセスする場合、以下のようなDBアクセスツールを使うのが一般的です。

・Oracle
SQL Developer

・MySQL
MySQL Workbench

・PostgrSQL
pgAdmin

・SQLServer
SQL Server Management Studio

・どのDBでも使えるDBアクセスツール
A5:SQL MK-2
TeamSQL
Navicat

などなど、いっぱります。

ですが、今回は、超入門ということで、コマンドラインを使って、ログインしましょう。

コマンドラインの使い方を知っておくと、サーバ上でも、同じ感じで利用できるので、コマンドラインでのログインを解説します。

まずは、ログインする上で、必要な情報を確認しましょう。

仕事の場合、サーバを管理しているシステム管理者やインフラエンジニアがいるので、以下を確認しましょう。

自分でインストールした場合は、自分で設定した内容、確認しましょう。

 

項目 説明
ホスト名 ホスト名やドメイン名です。
IPアドレスでも構いません。
ポート番号 接続する際に指定するポート番号です。
MySQLの場合、デフォルトは3306番です。
ログインID ログインするユーザーIDです。
自分でインストールした場合、まずはrootを使いましょう。
パスワード 自分でインストールした場合、自分で設定したパスワードです。

 

コマンドプロンプトを起動し、以下コマンドを入力しましょう。

mysql -h (ホスト名) -P (ポート番号) -u (ログインID) -p

自分でインストールした場合は、これでオッケーです。

mysql -u (ログインID) -p

パスワードを聞かれるので、入力しましょう。

ログインできたら、こんな感じです。

 

MySQLでデータ保存する大きな箱を作る

自分でインストールした場合、データ保存する大きな箱として、データベースというものを作ります。

練習用として、mydbという名前のデータベースを作ります。

CREATE DATABASE mydb;

結果

Query OK, 1 row affected (0.02 sec)

Query OKというのが、成功したよという意味です。

コマンドの最後に、セミコロン(;)をつけていることに注目。

SQLでは、コマンドの最後に、セミコロン(;)をつけることで、コマンド終わりましたと示すことになっています。

忘れずにセミコロン(;)をつけましょう。

 

サラリーマン
DBにデータベースを作る?
って、どおいうこと。

 

データベースとは
データを入れておく
大きな箱だと憶えましょう。
hillpoint

 

この大きな箱は、Oracleなんかだと、これをスキーマと呼んだりします。

 

MySQLにユーザーを作る

自分でインストールした場合は、データベースを使う使用者ユーザーを作ります。

rootユーザーは、管理者ユーザーであり、仕事であれば、システム管理者やインフラエンジニアだけが利用するユーザーとなります。

DBを自分で作ったら、あなたが管理者ですが、データを見たり、書いたりする専用の使用者ユーザーを作ります。

rootでログインしたまま、以下コマンドでユーザーを作ります。

CREATE USER myuser IDENTIFIED BY '(パスワード)';

結果

Query OK, 0 rows affected (0.04 sec)

myuserという名前のユーザが作成されました。

パスワードも設定しますが、パスワードは、シングルクォーテーションで囲むことを忘れないでください。

つづいて、新しく作ったユーザーに、データベースをアクセスする権限を与えます。
(権限与えないと、なんも見れないので)

GRANT ALL ON mydb.* TO myuser;

このコマンドで、myuserは、mydbにアクセスする権限を与えています。

では、rootからは、一旦ログアウトして、myuserで再ログインしてみましょう。

rootからログアウト

exit;

myuserで再ログイン

mysql -u myuser -p

 

データベースを見る

ログインできたら、データベースを見てみましょう。

SHOW DATABASE;

結果

+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
+--------------------+
2 rows in set (0.01 sec)

Databaseの2個目に、mydbがあることを確認します。

1個目のinformation_schemaは、データベースのいろんな情報を格納してある箱で、もとからあるので、常に表示されます。

 

データベースを選択する

使いたい、データベースを選択します。

USE mydb;

結果

Database changed

データベースを選択できました。

 

データを保存するテーブルを作る

さきほど、作ったmydbというデータベースに、テーブルを作ります。

テーブルとは、実際にデータを入れておく、表(=テーブル)のことです。

エクセルの表をイメージすると良いでしょう。

いろんなデータを整理して保存するため、テーブルというものを作ります。

練習用として、productというテーブルを作ります。

このproductというテーブルは、こんな構成とします。

カラム名 項目名 データタイプ
id 商品番号 整数(int)
name 商品の名前 文字列(varchar)
color 商品の色 文字列(varchar)
CREATE TABLE product (id INT, name VARCHAR(10), col VARCHAR(10));

結果

Query OK, 0 rows affected (0.15 sec)

このテーブルの構成に、データタイプというものがでてきています。

データタイプには、整数タイプや文字列タイプの他、小数点を現せるものやファイルを保存できるタイプ等、いろんなタイプがあります。

詳細は、ググってください。

 

SQLの使い方

さて、MySQLの使い方として、MySQLへのログインとデータベース、テーブルを作ることができました。

ここからは、これらにデータを入れたり、見たりするSQLの使い方となります。

 

データの数を数える(COUNT)

まだ、データを入れてないので、データは空っぽですが、空っぽであることを見てみましょう。

SELECT COUNT(*) FROM product;

結果

+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.02 sec)

0件と表示されました。

実際のDBを見る際、テーブルにどれだけのデータが入っているか?解りません。

もしかしたら、大量のデータが入ってかもしれません。

テーブルのデータを見る際は、必ず最初に数を確認し、大量な場合は、データを絞り込んで見るようにしましょう。

データを絞り込んで見る方法は、後で説明します。

 

データを入れる(INSERT)

このようなデータを入れてみます。

商品番号 商品の名前 商品の色
1 キャップ
2 Tシャツ
3 Tシャツ グレー

1個目キャップ。

INSERT INTO product VALUES (1, 'キャップ', '黒');

結果

Query OK, 1 row affected (0.02 sec)

2個目Tシャツ

INSERT INTO product VALUES (2, 'Tシャツ', '白');

結果

Query OK, 1 row affected (0.02 sec)

3個目Tシャツ

INSERT INTO product VALUES (3, 'Tシャツ', 'グレー');

結果

Query OK, 1 row affected (0.02 sec)

 

データを見る(SELECT)

SELECT * FROM product LIMIT 10;

結果

+------+----------+--------+
| id | name | color |
+------+----------+--------+
| 1 | キャップ | 黒 |
| 2 | Tシャツ | 白 |
| 3 | Tシャツ | グレー |
+------+----------+--------+
3 rows in set (0.01 sec)

3つ入っていることが確認できました。

なお、LIMIT 10というところの意味は、10行だけ見るという意味です。

今回、データは3行しかなかったので、3行全てでましたが、10行以上のデータがある場合は、10行だけしか表示されません。

大量のデータがあるテーブルを見る場合に有効です。

 

データを絞り込んで見る(WHERE)

さきほどのデータを全て見るに、WHERE(条件)を追記すると、データを絞り込んで見ることができます。

Tシャツだけに絞り込んでみます。

SELECT * FROM product WHERE name = 'Tシャツ';

結果

+------+---------+--------+
| id | name | color |
+------+---------+--------+
| 2 | Tシャツ | 白 |
| 3 | Tシャツ | グレー |
+------+---------+--------+
2 rows in set (0.01 sec)

Tシャツだけ、表示されました。

このように、SQLは、条件を追加することで、いろんな絞り込みや組み合わせができます。

詳細は、ググってください。

 

データを変える(UPDATE)

3番目に入れたTシャツの色をグレーから紫に変更します。

UPDATE product SET color='紫' WHERE id=3;

結果

Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

 

データを削除する(DELETE)

1番目のキャップを削除します。

DELETE FROM product WHERE id = 1;

結果

Query OK, 1 row affected (0.01 sec)

 

MySQLの使い方がよくわかるサイト

最低限のSQLの使い方は以上です。

ほんとにこれ、最低限です。

DB・SQLには、非常に多くのコマンド・使い方があります。

MySQLの使い方がよくわかるサイトだけ、紹介します。

 

DBを使う上での注意点

DBには、だいたい、大量のデータが入っています。

また、SQLの使い方によっては、大量のデータが入っているテーブル同士を組み合わせて見ることもできます。

仕事で使いだすと、テーブル同士を組み合わせて見る方法が多いです。

大量のデータが入っているテーブル同士を組み合わせる場合、組み合わせ方によっては、膨大なデータ量となってしまうので、特に注意が必要です。

初心者が必ず一度はやってしまうミスが、この大量のデータが入っているテーブル同士を間違った方法で組み合わせしてしまい、膨大な量のデータが処理対象になってしまうことです。

例えば、1万レコードと1万レコードのテーブルを間違って、掛けあわせてしまった。

1万 ✖ 1万 で、 1億個のデータが処理対象になっています・・・・

 

ああああ・・・・
全然、終わりません・・・

 

ありゃ〜
SQLの使い方が悪い!
hillpoint

 

テストならいいんですが、いざ本番という時に、これが起こると目もあてられません。

せっかく、プログラム作ったのに、待てど暮らせど、終わらない・・・

これ、よくあります。

DBを使う際は、データ量の確認と、データ量の多いもの同士を組み合わせる場合は、適切な絞り込みを行って見ることを注意しましょう。

-エンジニア超入門

Copyright© Career Up Forum , 2020 All Rights Reserved Powered by AFFINGER5.