データベースに触ってみよう!MySQLでデータベースを作る方法
Webやネイティブアプリなど世の中にあるサービスでは多くの場合、データベースと呼ばれるデータを保存するためのシステムが使われています。
ITにあまり詳しくない方でも言葉は聞いたことがあるのではないでしょうか。
僕は刑事もののドラマとかで「この容疑者をデータベースと照合して…」みたいなセリフをよく聞く気がします。
データベースにはOracle、PostgreSQL、MySQL、MongoDBなどの有名なソフトがあるのですが、今回はMySQLをお題としてデータベースの使い方を紹介したいと思います。
データベースで何ができる?
データベース(以下、DB)を使うとどんな良いことがあるのでしょうか。
例えばAmazonのようなネットショッピングができるECサイトを作るとしましょう。
まずは商品の登録が必要ですね。Webページに表示する商品はHTMLに商品の情報を書けば表示されるのですが、いちいちHTMLを書き換えるのはとても手間ですよね。在庫数も管理しないといけないですし、商品数が多ければ検索機能も必要になってきます。
こういった場合はHTMLだけで対応するのは難しく、DBで情報を管理するほうが都合がいいのです。
Webで商品登録ボタンを押してDBに商品情報を登録する。
DBから商品情報を取得してWebに表示する。
商品が売れた時はDBにある在庫数を更新する。
といった具合です。
商品の他にもユーザーの情報をDBに持っておく必要があります。
ECサイトでは通常、利用開始する際にアカウントを作りますよね。
自分の名前、連絡先、住所、メールアドレス、クレジットカード情報などを入力してアカウントが作られて初めて商品を注文できるようになると思います。
他にもカートに追加された商品や注文履歴などの情報も管理する必要があります。
HTMLだけだといつも同じ内容でしか表示できませんが、DBを使うことでその場面に応じて表示する内容を変えることができます。
ブログなんかも直接HTMLに記事を書き込んでいるわけではなく、書いた内容はDBに登録されていて、そこから取得してWebに表示されています。
MySQLをインストールしてみよう
DBがどんなものかを知るには実際に触ってみるのが一番です。
自分のパソコンにDBをインストールしてみましょう。
今回はMySQLというDBを使います。
公式サイトからインストーラーをダウンロードしましょう。
ダウンロード画面を開いたら下のほうに「MySQL Community (GPL) Downloads」というリンクがあるのでこちらをクリックします。
次に「MySQL Community Server」リンクをクリックします。
次にセレクトボックスがお使いのパソコンのOSになっていることを確認して、MacであればDMG、WindowsであればMSI InstallerのDownloadボタンをクリックします。(下図はMacの場合です。)
ユーザー登録を求められるので、今回はお断りして「No thanks,just start my download.」リンクをクリックします。
インストーラーがダウンロードできたらクリックしてインストールを始めましょう。インストーラーが開いて以下の画面が出たら「続ける」ボタンをクリックしてください。
「続ける」ボタンをクリックしてください。
「同意する」ボタンをクリックしてください。
「インストール」ボタンをクリックしてください。
インストールが始まります。
パスワードの暗号化を強力な設定にするか今までどおりにするかを聞かれます。
とりあえず強力なほうの「Use Strong Password Encryption」を選択して「Next」ボタンをクリックしてください。
rootユーザーのパスワードを設定します。rootユーザーとは初めにMySQLにログインする時に使うユーザーになり、全ての権限を持っています。パスワードは8文字以上でお好きにつけてください。今回は「password」と入力します。
「Finish」ボタンをクリックしてください。(8文字以上入力しないとボタンが押せません。)
完了しました。「閉じる」ボタンをクリックしてください。
これでインストールは完了しましたが、まだmysqlコマンドが使える状態になっていないのでパスを通す作業をします。
パスを通すとは特定のコマンドをコマンドラインのどこにいても呼び出せるようにすることです。
以下はMacでの手順になりますが、標準で搭載されているアプリ「ターミナル」を開きます。
開いた時はログインユーザーのフォルダにいると思うので、そこで「ls -al」とコマンドを入力してください。今いるフォルダの中身を調べるコマンドになります。
.zshrcファイルがあることを確認します。なければ以下のコマンドを実行して作ってください。
コマンドライン
touch .zshrc
次に以下を入力してmysqlインストールフォルダ(mysql-8.0.22-macos10.15-x86_64
)にあるbinフォルダにパスを通す旨を.zshrcファイルに書きます。(インストールフォルダ名はインストールしたMySQLのバージョンによって変わりますので事前に確認して、適宜変更してください。)
コマンドライン
echo 'export PATH="/usr/local/mysql-8.0.22-macos10.15-x86_64/bin:$PATH"' >> ~/.zshrc
以下のコマンドを入力して設定を反映します。
コマンドライン
source .zshrc
これでパスが通りました。確認のため、mysqlのバージョンを確認するコマンドを打ってみましょう。「mysql –version」と入力して以下のようにバージョンが表示されればOKです。
以下のコマンドを入力してMySQLにログインしてみましょう。
コマンドライン
mysql -u root -p
入力後、パスワードを聞かれるので上記で設定したパスワードを入力しましょう。この記事では「password」と決めたのでその通り入力します。入力された文字は表示されません。入力後、エンターキーを押してください。
以下のように表示されればログイン成功です。
DBツールをインストールしよう
DBツールとはその名のとおり、DBを操作できるツールのことです。ツールにもよりますが、DBにアクセスしてデータを見たり、登録・更新・削除、あるいはテーブルの作成・削除、バックアップや復元などいろいろなことができます。
これは必ず必要というわけではないのですが、DBに入っているデータを見る時など、コマンドラインで見るよりツールを使ったほうが見やすいなどの事情もあって、何かしらのツールを使ってDBを操作することが一般的です。
今回はMySQL WorkbenchというDBツールをインストールして作ったDBにアクセスしてみようと思います。
こちらからインストーラーをダウンロードしてください。
こちらでもユーザー登録を求められるのでお断りしておきます。
ダウンロードできたらインストーラーを開きます。
以下はMacの場合ですが、アプリのアイコンを右側のApplicationsフォルダにドラッグ&ドロップします。
すると、アプリケーションフォルダにMySQL Workbench.appというアプリのファイルが入っているので、ダブルクリックで開きます。
以下がMySQL Workbenchの画面です。赤枠の部分をクリックすると上記で作ったMySQLに接続しようとします。パスワードを聞かれたら上記で設定したrootユーザーのパスワードを入力してください。(本記事では「password」になります。)
接続できたら以下のような画面になります。
これでDBツールからMySQLを操作することができるようになりました。
スキーマを作ってみよう
ここまででMySQLを使う準備が整いました。
次はMySQLの中にスキーマと呼ばれる領域を作ります。
スキーマとはテーブルを格納する領域のことです。
テーブルとは実際にデータが格納される領域で表形式になっています。
以下に図で説明します。
MySQLの中にスキーマ「testapp」とスキーマ「testapp_mail」という領域があり、それぞれにテーブルが登録されています。
スキーマは複数登録できますが特に必要なければ一つあれば十分です。
Webアプリケーションにおいてはアプリケーションサーバーで使用する用とメールサーバーで使用する用とでスキーマを分けたりすることもあります。
そしてスキーマの中にテーブルがあります。データはテーブルの中に登録されます。
この関係は例えるならExcelファイルに似ています。
Excelファイルの中には表形式のシートが複数登録できますが、このシートがテーブル、Excelファイルがスキーマ、そしてMySQLの中には複数のExcelファイルを登録できるというイメージです。
では上記でインストールしたMySQL Workbenchからスキーマを作ってみましょう。
DBを操作するにはSQLというプログラミング言語を書く必要があります。
スキーマを作るSQLは以下のとおりです。
SQL
Create Database myschema;
これでmyschemaという名前のスキーマが作られます。(スキーマ名はなんでもかまいません。)
真ん中あたりにSQLを入力できるエリアがあるのでそこに上記を入力後、稲妻ボタンをクリックしてください。
すると書いたSQLが実行されます。
下のほうに実行結果が表示されるので画像のように緑のマークがついていたら成功です。
左側にSCHEMASと書いてあるエリアにMySQLに登録されているスキーマの一覧が表示されます。今は「sys」スキーマしかありません。このエリアで右クリックした後、「Refresh All」を選択してください。
以下のように追加したスキーマが表示されれば、スキーマが追加されたことが確認できます。
テーブルを作ろう
今度はスキーマの中にテーブルを作りましょう。
テーブルとはデータを格納する表のことで、Excelみたいに行と列があります。
試しにユーザー情報を格納するUserテーブルを作ってみましょう。
以下のSQLをスキーマを作った時と同じ要領で実行してみてください。
SQL
Create Table myschema.User(
id Int Comment 'ユーザーID'
, name Text Comment 'ユーザー名'
) Comment 'ユーザー情報';
括弧の中に書かれているのはテーブル定義といって、どんなデータを持つテーブルなのかが書かれるところです。
上記の場合、idとnameという2つの情報を持つこととしています。
この情報のことをカラムといいます。日本語で「列」という意味になります。これらがテーブルの列になります。
idの右にIntと書いていますがこれはidというカラムには数値が格納されますよという意味になります。
同じようにnameの右にTextと書かれているのはnameには文字列が格納されますよという意味になります。
これらは型と言われてデータの種類を識別するためのものです。
他にも日付を表すDate型、日時を表すDatetime型などいろいろあるのですが、ここでは割愛します。
型の右側にComment ‘○○’と書いていますが、これはコメントといって、プログラムの動作には直接影響しないのですが、何かしらの説明を書くことができます。プログラムに影響しないので日本語で書いても大丈夫です。
書かなくてもいいのですが、書いておいたほうがわかりやすいかもしれません。
MySQL Workbenchで上記のSQLを実行したら、myschemaスキーマにTablesというフォルダがあり、そこを開くとUserテーブルが存在することが確認できます。
Userテーブルを右クリックしてSelect Rowsを選択してください。
真ん中に表が表示されました。これがテーブルの中身です。idとnameという列がありますね。でもデータは何も登録していないので空っぽです。
データを登録してみよう
では空っぽのUserテーブルにデータを登録してみましょう。
SQL
Insert Into myschema.User Values (100, 'テスト太郎');
これはInsert文といってデータを登録する時に使うSQLになります。
このSQLをUserタブの「SELECT * FROM〜」の行の上に追加して実行してください。
すると以下のように表にデータが追加されたことがわかります。
まとめ
いかがでしたでしょうか。
今回はデータベースの使われ方から構築、データの登録まで解説しました。
プログラミングに関わったことの無い方であれば、もしかしたら難しかったかもしれません。(特にインストールのあたりは)
Googleで検索したら他のサイトでもたくさん解説されているので、もしこの記事で不十分なことがあれば検索してみてください。(スミマセン)
また、DBの操作にはSQLの知識が必要になりますが、今回紹介したInsert文の他にもデータを取得するSelect文、データを更新するUpdate文、データを削除するDelete文などがあります。
こちらについてはまた別途解説したいと思います。
したっけ!
- データベースとはデータを溜めておき、照会することができるシステム
- ITサービスにおいてデータベースはほぼ必須のシステムである
- 代表的なデータベースにOracle、MySQLなどがある
- データベースの中にはテーブルがあり、テーブルの中にデータが登録される
- データベースを操作するにはSQLというプログラミング言語を使うことになる
本格的にプログラミングを学びたいですか?ITのエンジニアになりたいですか?
IT業界は万年人手不足であり、ニーズがあります。
パソコンとインターネットがあれば場所を問わず仕事ができるので、リモートワークが普及しつつある現代にマッチした職種と言えると思いますし、
物理的に必要なものはパソコンぐらいなので初期投資にかかる費用も少なく、人並みに仕事ができればフリーランスになって会社依存を脱却することもできます。
身につけた技術は一生モノです。
もし本腰を入れて勉強したいという方はスクールに入るのも一つの手です。
いくつか紹介しますので、興味があればサイトを覗いてみてください。
TechAcademy
最短4週間で未経験からプロを育てるオンライン完結のスクールです。 どこかに通う必要なく、自宅でもプログラミングやアプリ開発を学ぶことができます。
TechAcademyのサイトへWant to learn programming in earnest? Want to be an IT engineer?
The IT industry is understaffed for many years and has needs.
If you have a computer and the Internet, you can work anywhere,
so I think it can be said that it is a job type that matches the present age when remote work is becoming widespread.
The initial investment cost is low, and if you can work like a normal person, you can become freelance and get rid of your dependence on the company.
The skills that you have acquired is something that will last a lifetime.
If you want to study in earnest, you can go to school.
I will introduce some of them, so if you are interested, please take a look at the site.
DMM WEBCAMP
This is a programming school for those who are serious about changing jobs. guarantee a job change, so it is recommended for those who are inexperienced and are looking for a job change in the IT industry!
move to DMM WEBCAMPTechAcademy
It is an online school that trains professionals from inexperienced in a minimum of 4 weeks. You can learn programming and app development at home without having to go anywhere.
move to TechAcademy