アプリケーションでレポートや帳票を作成する場合、必要になるのがデータベースです。
データを抽出・加工・登録するような動作をする際にプログラミング言語と合わせてSQLを利用します。
本記事ではプログラミング初心者向けにSQLの基礎知識を簡単に解説しています。
こんな方におすすめ
- プログラミング初心者
- SQLの基礎を知りたい
- データベースを連携したプログラミングをしたい
SQLとは
SQL(エスキューエル)とはデータベースを操作するための言語です。
データベースとは検索や蓄積をしやすく整理した特定のデータの集合体です。データベースにはいくつか種類がありますが、リレーショナルデータベース(RDB)やNoSQLが主流となっています。本記事では詳しく解説しませんがNoSQLではその名の通りSQLを利用しません。
リレーショナルデータベースを管理するソフトウェアをRDBMS(Relational DataBase Management System)と呼びます。
SQLを使うと数百万、数千万件に蓄積されたデータから効率良く操作することが可能です。
SQLで出来る主な操作はこちら
- レコードの検索(SELECT)
- レコードの登録(INSERT)
- レコードの編集(UPDATE)
- レコードの削除(DELETE)
- テーブルの作成(CREATE TABLE)
- テーブルの削除(DROP TABLE)
「会員のログイン情報」「購入情報」「商品情報」「掲示板の投稿」「ToDoリスト」などデータを取り扱う際に、SQLを利用して操作することができます。
RDBMSの種類
RDBMS製品はさまざまな種類があり、用途に応じてどの製品を選ぶかが重要 となります。
以下では主なRDBMSを紹介します。
SQLの種類
SQLは3種類の言語に分類されています。用途に応じて使い分けます。
DML(データ操作言語)
DML(Data Manipulation Language)はデータの追加・更新・削除といった操作を行う際の構文です。
DMLの種類
- SELECT文・・・・データの検索
- INSERT文・・・・データの追加
- UPDATE文・・・・データの更新
- DELETE文・・・・データの削除
命令文に条件文加えることが可能で「以上」「以下」「等しい」「等しくない」などがあります。
SQL文の中では最も利用頻度が高いのでこれからSQLを使用したい方はしっかり覚えておきましょう。
DDL(データ定義言語)
DDL(Data Definition Language)はテーブルやデータベースの追加・更新・削除といった操作を行う際の構文です。
DDLの種類
- CREATE文・・・・データベース・テーブルの作成
- ALTER文・・・・データベース・テーブルの定義内容変更
- DROP文・・・・データベース・テーブルの削除
- TRANCATE文・・・・テーブル・データの削除
データベース・テーブルの操作は最初に定義すると操作をする頻度は少ないでしょう。仕様変更や追加・編集が多いシステムの場合はテーブル操作で使うことが多くなるでしょう。
DCL(データ制御言語)
DCL(Data Control Language)はDMLやDDLの利用を制御する操作を行う際の構文です。
DCLの種類
- GRANT文・・・・ユーザー権限の付与
- REVOKE文・・・・ユーザー権限の削除
- BEGIN文・・・・トランザクションを開始
- COMMIT文・・・・トランザクションを確定
- ROLLBACK文・・・・トランザクションを取り消し
DCLはデータベースの管理者は覚える必要があります。GRANT、REVOKEはデータベースを操作できるユーザーを追加(変更)した際にどこまで操作可能にするか決めることができます。
トランザクションは複数のSQL文を処理する際にまとめて反映させたいときに利用します。そのためデータの新規追加、更新、削除などを行うときに使うので覚えておきましょう。
SQLを実行しよう
この記事を読んでいる方は初心者だと思われますので、SQL実行環境を用意する時点で難しさを感じるでしょう。
そんな方の為にある便利なサービスが「SQL Fiddle」
ウェブブラウザ経由でデータベース自体を作成、SQLの実行まで試すことが可能。
操作がよくわからない場合は上部にある「View Sample Fiddle」をクリックするとサンプルが表示されますのでいろいろ実行してみましょう。利用は無料です。
また、PC,モバイル端末でSQLを利用可能な「Dokoql」も覚えたSQLを試してみるには最適ですので是非使ってみてください。こちらも無料です。
RDBMSのメリット・デメリット
便利で広く利用されているリレーショナルデータベースですが良いところばかりではありません。
RDBMSのメリット・デメリットは以下の通り。
メリット
- SQLにより複雑な操作が可能
- データ処理の一貫性が保証されている
デメリット
- データが大規模になると処理速度が低下する
- 拡張(スケールアウト)コストが高い
RDBMSはACID 特性により設計されているため、トランザクションは必ず「完全な実行」もしくは「実行されない」のいづれかとなり、データの一貫性が保証されています。
大規模なデータになると処理速度が遅くなることや、拡張できるように設計されていないところがデメリットとなります。とはいえ通常のシステムでは充分利用できますので安心してください。
まとめ
本記事ではSQLの基礎知識ということでデータベース関連について解説しました。
SQLを利用したプログラミング学習を手軽に学ぶのであれば、Saumurai ENGINEER Plusがオススメです。