【Ruby入門】データベース
  • facebookページ
  • twitterページ
  • 2018.01.09

    【Ruby入門】データベース

    本記事では、データベースをあつかいます。

    ある程度データの数が多くなると、そのあつかいに注意しないと、メンテナンス性も悪いし速度の向上も期待できません。

    テキストファイルで管理すると、誰かが不用意に手作業で書き換えてしまうことも考えられます。

    データの変更も容易ではありません。

    そこでデータベースが必要になるのです。

    本記事では数あるデータベースの中で、SQLiteを取り上げて解説を進めます。

    データベースとは何か

    冒頭で述べたように、データベースとはデータを管理してくれる便利なソフトウェアです。

    もう少し詳細に解説しましょう。

    値の読み書きをSQLで簡単にする

    住所録をテキストファイルでCSV形式で保存するとしましょう。

    欲しい住所を検索して、ヒットした行を取り出して、カンマごとに分割して・・・と毎回やっていては手間がかかって仕方ありません。

    そこでデータベースの出番となります。

    データベースは内部でデータ管理し、操作するときはSQLという言語でできるようにしています。

    つまり本来は複雑な処理を経て初めて得られるデータを、SQlという簡易な開発言語で操作できるのです。

    たとえばテーブルからすべてのデータを取るSQLは以下のとおりです。

    SQLはまるで文章のようで、直感的でわかりやすいですね。

    速度向上

    単純にテーブルにデータを格納するだけでなく、効率的に目的のデータにたどり着けるように「キー」というものを付加します。

    これにより、テキスト検索よりも高速に欲しいデータに飛ぶことができます。

    セキュリティ

    アクセスできるユーザーごとに、何をどこまで許すのかを設定できます。

    つまりデータの更新や削除だけは高権限者のみ許す、といった設定が可能です。

    データベースの種類

    データベースは、有償無償や製造元を含めて、さまざまな種類が存在します。

    有名なものは以下です。

    かっこの中は製造元です。

     

    • Oracle(Oracle)
    • SQLServer(Microsoft)
    • MySQL(Oracle)
    • DB2(IBM)

     

    今回は、OSSでかつ軽量であつかいの容易な「SQLite」を使用します。

    SQLiteのセットアップ

    前置きはこれくらいにして、SQLiteのセットアップにいきましょう。

    以下を実行してください。

    エラーメッセージが何も表示されなければOKです。

    データベースとテーブルを作る

    データを格納するためには、データベースとテーブルが必要になります。

    1つのデータ種ごとに「テーブル」と呼ばれる、いわゆる器にデータを格納します。

    テーブルの中身は二次元のデータ、つまりExcelのシートのような形式と思ってください。

    データベースとテーブルの関係は、図にすると以下のようになります。

    データベースという器の中に、多数のテーブルを格納できます。

    今回はこれを一度に両方作ります。

    ※SQLite以外は、最初にデータベースを作っておく必要があります。

    テーブルができたかどうか、件数を取得してみましょう。

    テーブルを作っただけでデータがないので、0件となるはずです。

    [実行結果]

    テーブルができていない場合は、以下のエラーが返ってきます。

    エラーメッセージをまるごとググって対処してください。

    データ操作とSQLiteの専用GUIツール

    データの操作を、順を追って解説します。

    データがないと操作も何もできないので、まずはデータを入れましょう。

    データの確認は、SQLiteの専用GUIツール「DB Browser for SQLite」を使ってビジュアル的に確認できます。

    このツールはデータを分かりやすく見せるのと同時に、編集や削除といった操作が可能です。

    データの挿入 INSERT

    データをテーブルに挿入するには、SQLのINSERT文を使います。

    これでもよいのですが、もう少しスマートにいきましょう。

    配列に入れたい値が入っているとして、それをeachで回します。

    この結果を確認しましょう。

    データが挿入されたのがお分かりでしょうか。

    また二次元の表のように見えることも注目しましょう。

    データの抽出 SELECT

    データを抽出するのはSELECTを使います。

    [実行結果]

    配列として取得できました。

    先ほどのDB Browserで出てきた内容と同じ内容が取得できたのがわかりますね。

    まとめ

    本記事ではデータベース、特にSQLiteのあつかいを解説しました。

    削除と更新は割愛しましたが、本記事の内容を理解できればインターネットで情報を検索して対応できます。

    またSQLite以外のDBにもぜひチャレンジしてみてくださいね!


    他のRuby入門記事はこちら

    【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!

    【Ruby入門】Ruby on Railsをやってみよう!

    【Ruby入門】環境構築(Mac/Win)

    【Ruby入門】nokogiriでスクレイピング

    【Ruby入門】データベース

    【Ruby入門】gemとライブラリ

    【Ruby入門】エラーと例外処理

    【Ruby入門】モジュール(module)とMix-in

    【Ruby入門】Procクラスとラムダ(lambda)

    【Ruby入門】ブロック

    【Ruby入門】メソッド

    【Ruby入門】クラスをコーディング(2) オブジェクト指向

    【Ruby入門】クラスをコーディング(1) classを作る

    【Ruby入門】クラスの継承、オーバーライド

    【Ruby入門】クラスとオブジェクト

    【Ruby入門】ディレクトリ(フォルダ)の作成、削除

    【Ruby入門】ファイルの移動、コピー、削除

    【Ruby入門】入力と出力

    【Ruby入門】Rubyの正規表現

    【Ruby入門】正規表現で置換する

    【Ruby入門】正規表現とは何か?

    【Ruby入門】文字列の結合などの操作

    【Ruby入門】CSVの基本と操作

    【Ruby入門】JSONの基本と操作

    【Ruby入門】乱数(Random)などの数値計算用クラスや端数処理

    【Ruby入門】日付の基本と操作(Time, Date)

    【Ruby入門】数値の数え上げ「upto」と四捨五入

    【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント

    【Ruby入門】数値の基本とメソッド (timesメソッド他)

    【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用に

    【Ruby入門】ハッシュ(hash)とシンボルの基本

    【Ruby入門】文字列の基本と表示メソッド

    【Ruby入門】Rubyの繰り返しを極める!様々な繰り返しのバリエーション

    【Ruby入門】最初はこれだけ!まずは手を動かしたい人のRuby入門

    【Ruby入門】ifとelseについて

    【Ruby入門】配列と操作(基本編)

    【Ruby入門】eachメソッドの使い方と応用例


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE