複業フリーランスのhillpointです。
この記事では、これから、ITエンジニアになろうという人が、最低限が知っておくべき、データベース(DB)の基礎知識とDBのデータを見たり、書いたりするSQLというコマンドの使い方について、超入門編をお届けします。
超・超・超入門編です。
DBとSQLというものは、使うもの=ツールなので、勉強するもんじゃなくて、使い方を知ることが重要です。
この記事では、超入門編として、最低限の基礎だけ解説します。
この基礎は、頭の片隅においておき、実際使ってみて、この記事に書いていないこと、知りたいこと、困ったことがある場合は
ググってください。
エンジニアは、ググる力が超重要です。
キーワードだけ頭にいれ、知識は、ネット上に置く。
そんなもんです。
それでは、データベース(DB)ってなに?から始めるDBの基礎知識とSQLの使い方お届けします。
専門用語について
アイコンがついている専門用語は、「知らないと恥ずかしいITエンジニアの用語集」ページに説明を記載しているので、専門用語の意味が解らない場合、リンクをタップして、説明を参照してください。
DBの基礎知識
って、なに???
データの倉庫
自由に取り出せるよ!
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環境
〇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でデータ保存する大きな箱を作る
自分でインストールした場合、データ保存する大きな箱として、データベースというものを作ります。
練習用として、mydbという名前のデータベースを作ります。
結果
Query OKというのが、成功したよという意味です。
コマンドの最後に、セミコロン(;)をつけていることに注目。
SQLでは、コマンドの最後に、セミコロン(;)をつけることで、コマンド終わりましたと示すことになっています。
忘れずにセミコロン(;)をつけましょう。
って、どおいうこと。
データを入れておく
大きな箱だと憶えましょう。
この大きな箱は、Oracleなんかだと、これをスキーマと呼んだりします。
MySQLにユーザーを作る
自分でインストールした場合は、データベースを使う使用者ユーザーを作ります。
rootユーザーは、管理者ユーザーであり、仕事であれば、システム管理者やインフラエンジニアだけが利用するユーザーとなります。
DBを自分で作ったら、あなたが管理者ですが、データを見たり、書いたりする専用の使用者ユーザーを作ります。
rootでログインしたまま、以下コマンドでユーザーを作ります。
結果
myuserという名前のユーザが作成されました。
パスワードも設定しますが、パスワードは、シングルクォーテーションで囲むことを忘れないでください。
つづいて、新しく作ったユーザーに、データベースをアクセスする権限を与えます。
(権限与えないと、なんも見れないので)
このコマンドで、myuserは、mydbにアクセスする権限を与えています。
では、rootからは、一旦ログアウトして、myuserで再ログインしてみましょう。
rootからログアウト
myuserで再ログイン
データベースを見る
ログインできたら、データベースを見てみましょう。
結果
| Database |
+--------------------+
| information_schema |
| mydb |
+--------------------+
2 rows in set (0.01 sec)
Databaseの2個目に、mydbがあることを確認します。
1個目のinformation_schemaは、データベースのいろんな情報を格納してある箱で、もとからあるので、常に表示されます。
データベースを選択する
使いたい、データベースを選択します。
結果
データベースを選択できました。
データを保存するテーブルを作る
さきほど、作ったmydbというデータベースに、テーブルを作ります。
テーブルとは、実際にデータを入れておく、表(=テーブル)のことです。
エクセルの表をイメージすると良いでしょう。
いろんなデータを整理して保存するため、テーブルというものを作ります。
練習用として、productというテーブルを作ります。
このproductというテーブルは、こんな構成とします。
カラム名 | 項目名 | データタイプ |
---|---|---|
id | 商品番号 | 整数(int) |
name | 商品の名前 | 文字列(varchar) |
color | 商品の色 | 文字列(varchar) |
結果
このテーブルの構成に、データタイプというものがでてきています。
データタイプには、整数タイプや文字列タイプの他、小数点を現せるものやファイルを保存できるタイプ等、いろんなタイプがあります。
詳細は、ググってください。
SQLの使い方
さて、MySQLの使い方として、MySQLへのログインとデータベース、テーブルを作ることができました。
ここからは、これらにデータを入れたり、見たりするSQLの使い方となります。
データの数を数える(COUNT)
まだ、データを入れてないので、データは空っぽですが、空っぽであることを見てみましょう。
結果
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.02 sec)
0件と表示されました。
実際のDBを見る際、テーブルにどれだけのデータが入っているか?解りません。
もしかしたら、大量のデータが入ってかもしれません。
テーブルのデータを見る際は、必ず最初に数を確認し、大量な場合は、データを絞り込んで見るようにしましょう。
データを絞り込んで見る方法は、後で説明します。
データを入れる(INSERT)
このようなデータを入れてみます。
商品番号 | 商品の名前 | 商品の色 |
---|---|---|
1 | キャップ | 黒 |
2 | Tシャツ | 白 |
3 | Tシャツ | グレー |
1個目キャップ。
結果
2個目Tシャツ
結果
3個目Tシャツ
結果
データを見る(SELECT)
結果
| 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シャツだけに絞り込んでみます。
結果
| id | name | color |
+------+---------+--------+
| 2 | Tシャツ | 白 |
| 3 | Tシャツ | グレー |
+------+---------+--------+
2 rows in set (0.01 sec)
Tシャツだけ、表示されました。
このように、SQLは、条件を追加することで、いろんな絞り込みや組み合わせができます。
詳細は、ググってください。
データを変える(UPDATE)
3番目に入れたTシャツの色をグレーから紫に変更します。
結果
Rows matched: 1 Changed: 1 Warnings: 0
データを削除する(DELETE)
1番目のキャップを削除します。
結果
MySQLの使い方がよくわかるサイト
最低限のSQLの使い方は以上です。
ほんとにこれ、最低限です。
DB・SQLには、非常に多くのコマンド・使い方があります。
MySQLの使い方がよくわかるサイトだけ、紹介します。
DBを使う上での注意点
DBには、だいたい、大量のデータが入っています。
また、SQLの使い方によっては、大量のデータが入っているテーブル同士を組み合わせて見ることもできます。
仕事で使いだすと、テーブル同士を組み合わせて見る方法が多いです。
大量のデータが入っているテーブル同士を組み合わせる場合、組み合わせ方によっては、膨大なデータ量となってしまうので、特に注意が必要です。
初心者が必ず一度はやってしまうミスが、この大量のデータが入っているテーブル同士を間違った方法で組み合わせしてしまい、膨大な量のデータが処理対象になってしまうことです。
例えば、1万レコードと1万レコードのテーブルを間違って、掛けあわせてしまった。
1万 ✖ 1万 で、 1億個のデータが処理対象になっています・・・・
全然、終わりません・・・
SQLの使い方が悪い!
テストならいいんですが、いざ本番という時に、これが起こると目もあてられません。
せっかく、プログラム作ったのに、待てど暮らせど、終わらない・・・
これ、よくあります。
DBを使う際は、データ量の確認と、データ量の多いもの同士を組み合わせる場合は、適切な絞り込みを行って見ることを注意しましょう。