• Skip to main content
  • Skip to primary sidebar

プログラミング入門ナビ

プログラミング学習初心者のための情報メディア by Proglus(プログラス)

You are here: Home / Archives for SQL

SQL

SQLとは?エンジニアに必須の知識を初心者にもわかりやすく説明!

2020-11-30 By プログラミング入門ナビ編集部

検索

はじめに

ラップトップを持つエンジニア

SQL(読み:エスキューエル)という言葉を聞いたことがあるでしょうか。

聞いたことはあるが何か知らない、または何となくデータベースを操作するための言語だとは知っているけれど、いまいち理解できていない…

この記事では、そんな方々へ向けてSQLとは何なのか?どういった使い方をするのか?を詳しく説明します。

SQLはエンジニアの必須知識ですので、ぜひこの記事を読んでしっかりと理解を深め、他の人にも教えてあげられるようになることを目指してください。

SQLとは?

SQLは1970年代にIBM社によって開発されたSEQUEL(読み:シークェル)という言語を原型とするデータベース操作言語です。

読み方は「エスキューエル」が一般的ですが、上記の理由から「シークェル」と読まれることもあります。

そもそもデータベースとは?

書類のファイル

ここで、データベースというのは、検索や貯蓄が簡単に高速にできるように整理されたデータの集まりのことです。

例えば、紙の名刺帳を想像してください。

面倒くさがりの人は特にルールを決めずにもらった名刺を適当にファイリングするでしょう。

かたや、まめな人ならば五十音順にインデックスをつけてファイリングしていき、後から名前で探したり新たに追加したりするのが簡単にできるようにしていますね。

広義ではこの後者の名刺帳もデータベースと呼べます。データベースと聞いてピンとこない方はこれをイメージしながら考えていくと概念を掴みやすいです。

もちろん、プログラミングの世界でのデータベースは紙ではなく電子的な情報の集まりを指します。

「名刺帳」という名の電子的なデータベースを作った時、新たにもらった名刺データを追加したり、登録済みの名刺データを検索したりするには、データベースに対して追加・検索等の操作が必要ですね。

この操作をするための言語がSQLなのです。なお、SQLはリレーショナルデータベースという種別のデータベースを管理するシステム(RDBMS)でのみ使用されます。

参考:RDBMSとNoSQLの違い

ここでまた聞き慣れない言葉(RDBMS)が出てきました。

データベース管理システムは大まかに2種類:RDBMSとNoSQLに分けられ、SQLは前者のRDBMSでのみ使用されます。

ここからはRDBMSとNoSQLの違いについて簡単に説明しますので、とりあえずSQLについて先に知りたい方はこの項を読み飛ばしていただいても問題ありません。

RDBMS(Relational DataBase Management System)は、リレーショナルデータベースを管理するためのシステムのことです。

リレーショナルデータベースとは、関連性を持った複雑なデータ群を指します。

例えば先ほどの名刺帳の例ならば、個々の名刺にはその人の氏名だけでなく、会社名・所属・連絡先等が書かれていますね。

そこに載っていない情報、例えば「この会社って資本金はいくらくらいなのかな?」と疑問が沸いたとしましょう。

この時、別の「企業情報」というファイル(リレーショナルデータベースの世界ではテーブルと呼びます)に会社名ごとに創立年・社員数・資本金等のデータが揃っていれば、名刺に書いてある「会社名」をもとに辿って資本金を確認することができますね。

このように、複数のデータ群が関連性を持った形で整理されていて膨大で複雑なデータを管理できるようになっているのがリレーショナルデータベースです。

データが複雑である分、操作も複雑になるためSQLを用いて行う必要があります。

他方のNoSQL(読み:ノーエスキューエル)は、SQLを用いずにデータベースを管理するシステムの総称です。

NoSQLはRDBMSと比較しデータ構造が単純なため、操作に特別な言語が必要ありません。

例えば先ほどの名刺帳の例のように、取引先の個々の担当者情報や企業情報等を網羅的に管理しようとすればRDBMSを使わざるを得ませんが、そうではなく取引先1社につき1人の営業担当がいて、それが誰であるかのみ管理できればいいとしましょう。

この場合は名刺帳や企業情報ではなく、「取引先会社名-営業担当者氏名」という情報が1対1で紐づくデータ群さえあればいいことになります。

このように単純な構造を持つのがNoSQLであり、繰り返しになりますがSQLでの操作が必要ないのがRDBMSとの大きな違いです。

SQLの基本的な使い方

検索

ここからは具体的にSQLがどう使われるのか見ていきましょう。

データベース用語

まずは覚えるべき用語を確認しておきましょう。

リレーショナルデータベースでは、データは表計算ソフト(Excel等)のように表の構造をしています。

例えば名刺帳の例なら下記の通りです。

氏名 会社名 所属 住所 電話番号 メールアドレス
山田 太郎 (株)○○商店 営業課 東京都新宿区… 033-209-XXXX yamada@XXX.com
鈴木 二郎 △△製作所(株) 調達課 大阪府東大阪市… 064-309-YYYY jiro-s@YYY.co.jp
佐藤 三郎 □□工業(株) 企画課 神奈川県川崎市… 044-200-ZZZZ info@ZZZ.co.jp

このそれぞれの項目について、データベースの世界では下記の用語で呼びます。

  • テーブル:表そのものを指す。
  • レコード:各行のこと。この例では名刺1枚のが情報が1レコードで表される。
  • カラム:各列のこと。列ごとにデータの形式が定義される。(メールアドレスは@を含む英数字の文字列、等)
  • フィールド:レコードの中の1項目のこと。(例:山田太郎のレコードの「所属」フィールドは「営業課」)
  • フィールド名:そのフィールドの先頭列の名称を指す(氏名・会社名・所属・…)

SQLの文法種別

SQLの文法は大きく下記の三種類があります。

  • データ定義言語:データベースオブジェクト(テーブルなど)の新規作成や削除を行う
  • データ操作言語:テーブルへのデータ追加・更新・削除・検索を行う
  • データ制御言語:データベースへのアクセス権限やトランザクション(※)管理

※トランザクション:データベースの整合性を保つために、ばらばらに実行すべきでない複数の処理をまとめて一括処理すること

以下、順番に具体例を見ていきましょう。

データ定義言語

データ本体であるテーブルや、データベースを利用するユーザ等のデータを定義するための文です。

CREATE(作成)やDROP(削除)、ALTER(定義変更)等があります。

下記はテーブルを新規作成する例です。

CREATE TABLE meibo {
  name varchar(20),
  tel int,
  email varchar(50)
}

データ操作言語

テーブルに対するデータ操作を行うための文です。

テーブルにデータを挿入するINSERT、更新するUPDATE、削除するDELETE、検索するSELECT等があります。

下記はテーブルから条件に合うレコードを検索する例です。

SELECT * FROM meibo WHERE name = 'Yamada';

データ制御言語

データベース全体に関わる処理を制御するための文です。

ユーザーに特定の作業権限を与えるGRANT、権限を剥奪するREVOKE、トランザクションを開始するBEGIN、トランザクションを確定するCOMMIT等があります。

下記はTABLE1というテーブルに対しINSERTとSELECTを実行する権限をUSER1に与える例です。

GRANT INSERT, SELECT ON table1 TO user1;

まとめ

データベースエンジニア

SQLについて、データベースの定義や用語を含めた解説および具体的な使用例の説明を行いました。

あいまいだった部分の理解が少しでも明確になれば幸いです。

さらに理解を深めたい方は、下記の講座も参考にしてみてください。

プログラミング初心者のみならず、データベースを活用したマーケティング等を見据えたビジネスマンの方にもご好評をいただいている講座なので、大変おすすめです!

SQL入門|データベースを操作する言語SQLを短期間で身につけビジネスの現場で活用しよう

動画で学ぶプログラミング入門

オンラインスクールProglus(プログラス)でプログラミングを学んで、創れる人になろう!

在宅学習応援!今なら複数の基礎コースが無料!!

今すぐ詳細を確認する

Filed Under: プログラミング入門 Tagged With: SQL

未経験からデータベースエンジニアになるには?必要なスキルをチェック!

2020-10-26 By プログラミング入門ナビ編集部

ITスペシャリスト

はじめに

プロのエンジニア

なんとなくエンジニアを目指してプログラミングを始めてみた・もしくは始めてみようと思っているけれど、どんな業種がいいのだろう…

そのように漠然とお悩みの方がいらっしゃるかもしれません。

エンジニアの業種にもいろいろあり、Web開発・システム開発・コンサルティングなど多岐に渡ります。

データベースエンジニアはそのうちの一つで、ビッグデータ需要の高まりに合わせ近年人気のある業種です。

この記事ではデータベースエンジニアとは何なのか?未経験でもなれるのか?について紹介します。

データベースエンジニアとは

データベースエンジニアとはどんな職業なのでしょうか。

その前にデータベースって?

データベースのイメージ

先にデータベースとは何なのか?簡単に説明しましょう。

データベースとは、特定の項目についてデータを集めて、使いやすい形に整理したものをいいます。

例えば学校のクラス名簿などもデータベースの一つといえます。

出席番号・氏名・性別・緊急連絡先・最寄駅…といった項目について数十名からなるクラス全員分のデータを集めたものですね。

急にクラスの生徒何名かに荷物の運搬を手伝ってもらうことになり、出席番号が早い順に男子5名を選ぶとしましょう。

この名簿が紙媒体だと目で1行ずつ追うしかありませんが、コンピューターの中にデータベースとして存在していれば、後述する「SQL」という専用の言語を用いて条件づけし一瞬で選出することができます。

このように、データの検索や追加・削除・更新などが素早くできるようになっているデータのかたまりがデータベースです。

データベースエンジニアの業務内容

ITスペシャリスト

データをうまく使いこなすには、データベースを作る段階から後々使いやすいように作り込んでおくことが重要です。

例えばクラス名簿なら、「氏名」の項目が抜けていたら使い物になりません。

逆に、血液型・誕生日・ペットの有無…などと不要な項目が多すぎるとデータベースが重たくなり処理に時間がかかります。それに、最初のデータ入力のために生徒へ様々な質問をせねばならず、作り込みも大変です。

用途に合わせてどのような項目でどんな順番でデータを作るべきかといった、データベースの設計を行うのはデータベースエンジニアの重要な業務の一つです。

設計が出来上がったら、それに合わせて実際にサーバー上にデータベースを作ってデータを入れ込んでいく開発のフェーズも担当します。

また、完成したデータベースについて誰がアクセスできるようにするか?の管理やサーバーが壊れてもいいようにバックアップを用意したり、データの容量が増えてきたらサーバーを増設するなど、管理・運用の仕事も重要な担当業務です。

データベースエンジニアの年収

給料を受け取るエンジニア

では、データベースエンジニアはどのくらい稼げるのでしょうか。

求人ボックス給料ナビの調査によれば、データベースエンジニアの平均年収は594万円とのことです。

これは日本の平均年収と比較しても高い傾向にあり、データベースエンジニアの業務に対し高い市場価値が見出されていることが伺えます。

実際の年収ボリュームレンジとしては400万円〜800万円ともいわれており、経験を積めばさらなる年収アップを見込めそうですね。

未経験からデータベースエンジニアを目指せる?

データベースエンジニアは専門性の高い職種であり、従来ならば未経験から目指すのは難しかったのですが、ビッグデータやAI活用といった技術の発展・広まりに伴い、データ運用のニーズがますます高まっています。

そこでやる気とスキルさえあれば未経験からでも採用する案件が増えているようです。

次項で必要なスキルを紹介しますので、興味のある方は自分にもできそうかどうかチェックしてみてください。

データベースエンジニアになるために必要なスキル

ここからは、特に未経験からデータベースエンジニアを目指すために必要とされるスキルについて紹介していきます。

SQL

まずなんといっても必要なのがSQLです。

SQLはデータベースを操作するための言語で、シンプルながらも多様な処理ができます。

Amazon等の大企業ではエンジニアのみならず、マーケティング等のビジネスサイドに関わる人材までもが全員SQLを使いこなして日々膨大なデータを分析しているそうです。

詳しく学びたい方には下記の講座をおすすめしています。

データベースを操作する言語SQLを短期間で身につけビジネスの現場で活用しよう(Proglus)

データベース製品の知識

データベースを構築するためのソフトウェアは様々なベンダーから販売されています。

Oracle、Microsoft SQL Server、DB2、PostgreSQL等がその一例です。

使用方法等が製品ごとに異なるため、これらの製品知識を身につけることが重要です。

ベンダー資格

各ベンダーは製品への習熟度合をチェックするために資格試験を実施しています。

Oracleなら「OracleMaster」、Microsoft SQL Sererならば「MCP」といった具合です。

スキルの証明として、先述の製品知識を身につける過程でチャレンジするといいでしょう。

まとめ

ハイタッチする仲間たち

エンジニアの職種の一つであるデータベースエンジニアについて、詳しい業務内容と未経験から目指す場合に必要なスキルセットを紹介しました。

これからどんどん市場ニーズが高まると見られている職種ですので、興味を持った方は挑戦してみてはいかがでしょうか。

未経験の方にもわかりやすいと好評のSQL講座も開講していますのでこちらもぜひチェックしてみてくださいね。

SQL入門(Proglus)

動画で学ぶプログラミング入門

オンラインスクールProglus(プログラス)でプログラミングを学んで、創れる人になろう!

在宅学習応援!今なら複数の基礎コースが無料!!

今すぐ詳細を確認する

Filed Under: エンジニアのしごと Tagged With: SQL, データベースエンジニア, 未経験

GCP CloudSQLにMySQL Workbenchから接続する方法について解説!

2020-10-13 By プログラミング入門ナビ編集部

この記事では、GCP CloudSQLにMySQL Workbenchから接続する方法について説明します。

この記事は、オンライン講座「はじめてのSQL ・データ分析入門 -データベースのデータをビジネスパーソンが現場で活用するためのSQL初心者向コース」のサポート記事です。

なお、アクセス時期によっては実際のサイトと記事中の画像で表示が異なる場合があります。

GCPとは

・GCPはGoogle Cloud Platformの略で、Googleが提供するクラウドコンピューティングサービスのことを指します。

・Cloud SQLはGCPのサービスの一つで、クラウド上にMySQLサーバーを構築することができます。

・Cloud SQLの利用には課金が発生しますが、Googleから付与される無料クジレットの適用対象です。

CloudSQLのセットアップ

GCPプロジェクトの設定

Google Cloud Platformのコンソールを開いて、Googleアカウントでログインします。

ログインできたら、画面左上のロゴの右隣のボタンをクリックします。

すると、自分が管理しているプロジェクトを参照できます。

右上の「新しいプロジェクト」を押して、新規プロジェクトを作成します。

適当なプロジェクト名を記入して「作成」ボタンを押します。プロジェクト名は、ここでは「cloudsql-demo」とします。

プロジェクトを作成すると、以下のようなコンソール画面が表示されます。

GCPを初めて利用する場合は、機能制限を解錠するために請求情報の登録を行います。

「お支払い」を押してクレジットカードの登録を行ってください。

Cloud SQLインスタンスの作成

GCPプロジェクトのセットアップが完了したら、次はSQLインスタンスの作成を行います。

左上のメニューを押して、「SQL」をクリックします。

「インスタンスを作成」をクリックします。

「MySQL」を選択します。

適当な「インスタンスID」を入力します。ここでは「cloudsql-demo」とします。

そしてパスワードを指定します。「生成」ボタンで生成した場合は、パスワードを忘れずにメモするようにしてください。

「データベースのバージョン」は、ここではMySQL8.0とします。

最後に「作成」ボタンを押します。

このような画面が表示され、インスタンスの作成が開始されます。

インスタンスIDの左に緑色のマークが出現したら、インスタンスが作成完了した合図です。

インスタンス接続の設定

次は、インスタンスに外部から接続するための設定を行います。

画面上部の「編集」ボタンをクリックします。

「接続」をクリックします。

 

「パブリックIP」がチェックされていることを確認します。そして「ネットワークを追加」ボタンをクリックします。

ここでは全てのIPアドレスからの接続を許可するため、「新しいネットワーク」の「ネットワーク」欄に「0.0.0.0/0」と記入します。

記入できたら「完了」を押してください。

補足としては、ここで固定IPアドレスを個別に指定すれば、全てのIPアドレスではなく特定のIPアドレスにのみ接続を許可することもできます。すなわち不正なIPアドレスからの接続を遮断して、よりデータベースのセキュリティを高めることができます。

固定IPアドレスをお持ちで、よりセキュアなデータベース運用を考えている方は参考にしてみてください。

最後に「保存」をクリックして、設定を保存します。

WorkbenchからCloud SQLに接続する

それでは、クラウド上のCloud SQLにMySQL Workbenchから接続してみましょう。

MySQL Workbenchは手元のPCにインストール済みであるものとします。

サーバーのパブリックIPの確認

まず、MySQLサーバーのパブリックIPを確認します。

この場合は「34.83.193.169」がMySQLサーバーのパブリックIPとなります。

パブリックIPを固定していない場合は、インスタンスを再起動するたびにIPアドレスが変わるので、その都度新しいIPアドレスを確認するようにしてください。

MySQL Workbenchの接続設定

MySQL Workbenchを起動します。

プラスアイコンをクリックします。

このようなウィンドウが表示されるので、「Connection Name」に適当な接続名を記入します。ここでは「cloudsql-demo」とします。

そして「Parameters」の「Hostname」に先ほど確認したCloudSQLのサーバーのパブリックIPを入力します。

入力できたら、「Test Connection」ボタンを押して接続を確認しましょう。

パスワードの入力が求められるので、自分で設定したパスワードを入力してください。「Save password in valut」のチェックボックスをチェックして、「OK」を押します。

このような表示が出てきたらテスト接続成功です。

コネクションが追加されるので、クリックします。

このような画面が表示されたら接続成功です。

MySQL WorkbenchからCloudSQLのサーバーに接続することができました!

クリーンアップ

SQLのサーバーが起動している場合は、起動時間に応じて課金が発生します。無料クレジットの範囲内であれば請求は発生しませんが、無料クレジットの消費を抑えるためにも、作業が終わったらインスタンスを停止しておきましょう。

またサーバーを停止していてもストレージ代などで課金は発生するので、作業が完全に終了しインスタンスが不要になったら、忘れずに削除するようにしてください。

動画で学ぶプログラミング入門

オンラインスクールProglus(プログラス)でプログラミングを学んで、創れる人になろう!

在宅学習応援!今なら複数の基礎コースが無料!!

今すぐ詳細を確認する

Filed Under: ツールの使い方 Tagged With: Cloud SQL, GCP, SQL

  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Interim pages omitted …
  • Go to page 7
  • Go to Next Page »

Primary Sidebar

Proglus

Twitter

Follow @programmingnavi Tweets by programmingnavi

人気の記事

  • MySQLをXAMPPを使ってWindows環境にインストールする方法
  • 無料のSSL証明書Let’s Encryptを設定・更新・自動更新する方法(CentOS7, Apache2.4対応)
  • 初心者のプログラミング学習には13インチのMacBook Proがおすすめ!その理由も解説!
  • Visual Studio CodeでHTMLを書くときの便利な設定方法!ミスの防止や開発効率UPに役立てよう
  • よくあるSQLのエラーの種類と自力でエラーを取り除く方法について説明します
  • macOSで2つのファイルの差分を確認するには?便利なdiffツールを紹介
  • AWS Cloud9のプレビューが上手く表示されない時の対処法
  • WindowsからSSHでサーバに接続する方法(RLogin利用)
  • MySQL 5.7 for Windowsのアンインストール方法
  • Apacheインストール時にエラー Cannot find a valid baseurl repo: base/7/x86_64

最近の投稿

  • ウェブアプリケーションエンジニアになりたい!何を学習するべきか?
  • VSCodeで画像が表示されない場合の対処法
  • プログラミング学習での「質問のお作法」を理解しよう!最小限のやりとりで効率的に解決!
  • VirtualBoxでNATとホストオンリーアダプターによる安全なネットワーク環境構築方法
  • TypeScriptとは?JavaScriptとの違いは?人気の理由を徹底解説!

カテゴリー

  • エンジニアのしごと
  • エンジニアへの道
  • ツールの使い方
  • ニュース
  • プログラミング入門

タグクラウド

AI AWS AWS Cloud9 Bootstrap Cloud9 CodeWing CSS Git GitHub Heroku HTML JavaScript li Linux macOS MySQL MySQL Workbench Nuxt.js ol Proglus Python Ruby Ruby on Rails SQL Udemy vscode Vue.js Web開発 Windows インストール エラー エンジニア オンライン学習 サーバー スクリーンショット セール プログラミング プログラミング入門 プログラミング学習 ユーデミー 初心者 改行 未経験 機械学習 開発環境構築

アーカイブ

  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年11月
  • 2019年9月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月

検索

Copyright © 2021 · programmingnavi.com ・About・プライバシーポリシー