はじめに
SQLの理解が薄いと、アプリが意図する挙動になってるか確認するためにログを見ても実際にどんな処理が行われているかわかりませんよね?
ほとんどの人がSQLはエンジニアになる時の登竜門として学習すると思います。
ですが私はアプリ開発を始めると生のSQLを書くことはあまりなくなり、恥ずかしながら内部でどのようなSQLが発行されているか正確に理解できていないまま実装を進めている状態です。。。
なので今更ながらSQLの学習を備忘録として書いていきます!
まずは、SQLがどんなものなのかサラッとおさらいします!
SQLとは...
概要
- SQL は「Structured Query Language(構造化問い合わせ言語)」の略で、リレーショナルデータベース(関係データベース)に対してデータの検索・挿入・更新・削除・管理を行うための 標準言語
- リレーショナルモデルに基づき、データをテーブル(行・列)として構造化して扱うデータベースで使わる
- SQL は「何をしたいか(データを取り出したい、更新したい等)」を記述する 宣言的(declarative)言語 であり、どのように処理を行うか(手続き)を詳しく記述するわけではない点が特徴
SQLが使われる理由
- 多くのデータベース管理システム(例:MySQL、PostgreSQL、Oracle Database、Microsoft SQL Server)が SQL をサポートしている
- 構文が比較的シンプルで、データの抽出や集計、フィルター処理などが直感的に書けるため、データ分析やWebアプリケーションのバックエンド等で広く活用されています。
- データの整合性・トランザクション管理を備えた堅牢な基盤を提供し、ビジネス用途で信頼されている
主な用途・機能
- データ定義 (DDL:Data Definition Language)
テーブルやスキーマを定義・変更・削除する命令(例:CREATE TABLE、ALTER TABLE、DROP TABLE) - データ操作 (DML:Data Manipulation Language)
実際のデータを追加・修正・削除する命令(例:INSERT INTO、UPDATE、DELETE) - データ問い合わせ (DQL:Data Query Language)
データを取得する「問い合わせ(クエリ)」を実行する命令(例:SELECT … FROM … WHERE …) - 権限・アクセス制御 (DCL:Data Control Language)/トランザクション制御 (TCL:Transaction Control Language)
ユーザーのアクセス制御や、複数処理を1つのトランザクションとして扱うための命令もある
おわりに
今回はSQLとは何かについて整理しました。
つまり開発中にデータ操作を行ったり、ログを見る上でSQLの知識は最低限必要なのです!
次回からは実際にSQL文を書きながら理解を深めていきます!