4月、新年度。気持ちも新たに何か学びたい、そんな時期です。SQLを学んでみるというのは如何でしょうか。新社会人になられた方の中には、研修でSQLを学ぶという方もおられることでしょう。この記事では、SQLを学ぶことの意義と学習方法についてご紹介します。
—この記事で分かること–
SQLとは
システムでは、大量のデータを管理するためにデータベースを使用します。データベースに対して、データの検索や操作の指示するときに使用するのがSQL(Structured Query Language)、そして、受け取ったSQLを処理し、大量のデータを管理しているのがリレーショナル・データベース管理システム(RDBMS)です。RDBMSには、Oracle Database、MySQL、Microsoft SQL Server、各社のCloudサービス上で提供されるRDBMSもあります。
さて、データベースに格納されているデータを検索したり操作したりデータを定義したりするに使う言語がSQLですが、検索するときはSELECT文、データを挿入するときはINSERT文を使います。たとえば、何かのお店のWebシステムで、店舗を検索したり、新規会員登録したりする場面をイメージしてみましょう。都道府県などの条件を入力して店舗情報を検索するのはSELECT文、氏名やメールアドレスを入力し新規会員登録するのはINSERT文です。検索画面や会員登録画面で「確定」ボタンを押すと、裏ではデータベースに対してこれらのコマンドが発行されているわけです。
SQLの学習では、どのようなデータを抽出したいときにどんなSELECT文を発行するか、データにどのような変更を行いたい時にどんなUPDATE文を発行するか、また「表」というデータの入れ物をどのように作成するか、こういったことを学習していきます。
SQLは何をするために必要なスキルなのか
1)開発
あらゆるシステムでデータを扱うわけですが、データを検索するにせよ、データを更新するにせよ、使用されるのがSQLです。どのプログラミング言語で開発するとしても、データベースとのやりとりの部分はSQLです。先ほど、リレーショナル・データベース管理システム(RDBMS)にはOracle Database以外にもいろいろあるとお話ししました。細かい文法には違いがありますが、どのRDBMSもANSI規格のSQLをベースにしています。なので、SQLの基本については、どのRDBMSで勉強しても大丈夫です。
2) データベース管理
データベースと対話するための言語がSQLですから、データベースを管理する上でSQLが必須なのは当然といえば当然です。GUIの管理ツールを使えばSQLを打つ場面は少ないかも知れません。しかし、スクリプトを作る時には必要ですし、現在の状況をサクッと確認したい時にもSQLは便利です。何らかの障害で管理ツールが使えない場合は、SQLが使えなかったら何もできません。
3)データ分析
SQLを学んで意味があるのは、開発者やデータベース管理者だけというわけではありません。SELECT文では検索だけでなく、集計関数などを用いることで、大量のデータを効率的に分析できます。例えば、売れ筋の商品を分析するときに、SQLの知識と表構造の知識があると、時間軸、顧客属性、商品属性、どういうカットで分析が行えるのかが分かります。BIツールなどで分析する場合も、SQLの知識があると分析用のダッシュボード作成などが行えます。これらのダッシュボードの作成はエンジニアが行うケースもありますが、SQLの知識があれば、エンジニアへの依頼も円滑になります。SQLは、エンジニア、非エンジニアに拘らず役立つスキルです。
4)AI基盤作り
Oracle Database 23ai で注目を集める新機能AI Vector Searchを使用すると、従来の完全に一致するものという検索ではなく、近いもの、似通ったもの、というデータ検索が可能になります。AI Vector Searchを行うには、データにベクトル値という、データを数値化したものを格納する必要がありますが、そのデータの準備もSQLで行います。AIでは大量のデータを扱いますので、AI基盤となるデータを用意するためにSQLの知識は必要です。AIという新しい分野に挑戦する場合もSQLは押さえておきたい知識です。
このようにSQLのスキルはいろいろな場面で必要になってきます。SQLを学んでおくと今後のキャリアの幅が広がります。
SQLの学習は難しい?
さて、いろいろな場面で必要になるSQLですが、SQLを学習するのは難しいのでしょうか。
まず前提として、SQLは所謂プログラミング言語ではありません。プログラミングが苦手、という方でも、SQLは入門しやすいと思います。SQLは、あくまでもRDBMSと対話するための言語なので、どういうデータを検索したいのか、どういう操作をしたいのかを書いていくだけです。文系、理系を問わず、学習しやすい分野だと思います。
また、SQLの学習を始める時点では、コンピュータに関する前提知識は必要ありません。SQLを極めていってパフォーマンスを考慮したりするようになると、周辺知識も必要になりますが、普通にSQL学習していく上では、周辺知識は持っていなくても大丈夫です。
SQLの学習はAIで不要になるか
Oracle Database 23aiのSelect AIという機能を使うと、自然言語(私たちが使う普通の言葉)でOracle Databaseにデータ検索の命令を出せます。つまり、AIでSELECT文は生成できます。でも、SELECT文の基礎や表構造について何も知らなかったら、自然言語で効率的に指示を出すことは難しいでしょう。加えて、自動生成されたSELECT文をそのまま実務で使えるケースは限定されます。AIで生成したものを参考として活用しつつ、意図した通りになっているか、最後は人の目で確認します。AIに取って代わられるからSQLについて学習しても無意味、なんてことはありません。
参考:Select AIでSQL研修の演習問題は解けたのか?
SQLの学習方法
SQLについては、初心者向けの書籍がたくさん市販されているので、それらを使って学習されると良いでしょう。ただ、RDBMSによって多少の違いがありますので、Oracle Databaseで勉強していく場合は、Oracle Databaseで説明している書籍を使うと良いでしょう。
[Oracle DatabaseでSQLの学習をお勧めする理由]
市場のシェアが高いこと、エンジニアが大勢いること、情報が多いこと、ANSI SQLに準拠していること、これらの理由で、Oracle DatabaseでSQLの学習を開始されることをお勧めします。また、Oracle Live SQLという動作確認環境があり、ブラウザさえあれば、Oracle Database 19cやOracle Database 23ai 上での動作を確認することができます。Oracle Live SQLでは、動作確認用のHR.EMPLOYEES表なども予め用意されているので、作ったSELECT文が自分の思った通りの結果を返すか簡単に確認できます。
参考:Oracle Live SQLで実機確認!ORACLE MASTER Silver SQL 2019
[Oracle DatabaseでSQLを学習する場合の学習のゴール]
ただ闇雲にSQLを学習するよりは、何か目標があった方がモチベーションも保ちやすいですよね。Oracle Universityでは、ORACLE MASTER Silver SQL 2019という、まさに開発者やデータアナリストに必要となるSQLスキルを証明する資格を提供しています。資格取得を目標に学習することで、学習する範囲も明確になりますし、学習の成果を可視化できます。
参考: 【Oracle University 講師による ORACLE MASTER Silver SQL 2019 試験トピック解説講座】
5月31日まで期間限定で、SQLの研修の講義動画の一部を無償公開しています(「Oracle Database: SQL 基礎 I」コースの1章から8章)。リレーショナル・データベースの概念やデータを格納している表のイメージから丁寧に解説していますので、初めて学習される方におすすめです。ぜひこの機会にご視聴ください。
| タイトル |
概要 |
| Oracle Database: SQL 基礎 I |
有償の研修コースの一部を無償公開します。基礎からじっくり学ぶのに最適です。 |
| 有償のコンテンツを無償公開します。サンプル問題とその解説で理解を深めることができます。 |
動画の視聴方法はこちら
関連リンク
