SQLは、データベースを管理するための言語です。
システム開発だけでなく、私たちの生活とデータベースは引き離せないものとなっており、様々な分野でデータベースが運用されています。
この記事では、SQLとは何か、データベースとは何かに加え、基本的な構文やサンプルコードを紹介しながら、SQLについて解説します。
SQLはデータベース言語のひとつ
SQLとは、「Structured Query Language」の略で、直訳すると「構造化問い合わせ言語」という意味です。コンピュータ言語のひとつですが、プログラミング言語ではありません。リレーショナルデータベース(RDB)のデータを操作するための言語です。
データベースへ指示を出す言語は「SQL文」と呼び、命令文を組み合わせて処理を実施します。またSQL文はANSIやISOが規格化しているため、「Oracle Database」「Microsoft SQL Server」「My SQL」などでもほぼ同じように利用できます。
対話型の操作でコンパイル不要なため、大量のデータを効率よく操作でき、使い勝手の良い言語です。
なお、誰でも無料で使えるミドルウェア「MySQL」については、MySQLインストール方法の記事で紹介しています。併せてご覧ください。
そもそもデータベースとは?
データベースとは、管理しやすいように整理されたデータ群です。
検索や蓄積が出来るように設計されており、データの配置を規定する考え方をデータモデルといいます。
データモデルにはいくつかあり、主要なデータモデルの一つに「関係モデル(リレーショナルデータモデル)」があります。
「関係モデル」により設計されたデータベースを、関係データベース(リレーショナルデータベース)といい、これの頭文字を略して「RDB」といいます。
データベースにはそれを管理する「管理システム」があり、RDBの管理システムを「関係データベース管理システム(RDBMS)」と呼びます。
データベースは現在、商品情報の管理や、サービス利用者の情報管理など、様々な分野や状況で利用されています。
データベースのシェアを集計している「DB-ENGINES」によれば、2022年3月時点で、「Oracle」「MySQL」「Microsoft SQL Server」「PostureSQL」のシェアが高く、これらは全てRDBMSです。
2016年に登場した「Snowflake」は近年急激にシェアを伸ばしており、今後の動向が気になるデータベースです。
\21万以上のオンラインコースから選べる!/
Udemyで講座を探すSQLでできること
SQLでは次のような処理ができます。
- データの条件検索
検索の際に詳細な条件を指定できます。効率よくデータを検索できるため便利です。
- データの取得・登録・更新・削除
データの条件検索と組み合わせると、特定の行や列を指定してデータの取得が容易に実施できます。また登録や更新、削除も同様に指定の行にのみ実施できます。
- テーブルの作成・削除・変更
テーブルとはデータを格納する表のこと。必要に応じてテーブルの作成・変更・削除ができるので、思い通りにテーブルを構成できます。
膨大な量のデータがRDBによって整理されているため、これらの処理も効率よく実施可能です。
命令のためのSQL文を頭に入れておく必要はありますが、一度、方法を覚えてしまえば、以降は容易に処理を実施していけます。
SQLを構成する3つの言語の機能を解説
ここからはSQL文の代表的な命令文をみていきましょう。SQLの命令文はDDL・DML・DCLの3種類で構成されています。
DDL(データ定義言語)
DDLは、主にデータベースの定義や作成に関わる命令文です。
以下のような命令が代表的です。
- CREATE :データベースやテーブルの作成
- DROP :データベースやテーブルの削除
- ALTER :データベースやテーブルの変更
- JOIN :テーブルの結合
- TRUNCATE :テーブルのデータを削除
DML(データ操作言語)
データの取得・登録・更新・削除などのデータ操作に関わる言語をDMLと呼びます。
よく使われる命令は以下の通りです。
- SELECT :データ取得
- UPDATE :データ更新
- DELETE :データ削除
- INSERT :データ挿入
DCL(データ制御言語)
DCLは、主にトランザクションの制御やデータベースへのアクセスを制御するためのコマンドです。
代表的な命令は以下の通りです。
- BEGIN :トランザクション開始
- COMMIT :実行した処理の確定
- ROLLBACK :データの戻し
- GRANT :ユーザ権限付与
- REVOKE :ユーザ権限剥奪
どれもRDBの操作には不可欠な言語です。
【SQL入門】MySQL環境でデータベースの基本操作を学ぼう!
ここからは代表的なSQLである「MySQL」を例に、データベースの操作方法について解説します。
MySQLのインストールについては「MySQL入門者でもわかる!3ステップのインストール方法を解説」をあわせてご覧ください。
CREATEはオブジェクトを作成する命令です。
テーブルを作成する場合は、
1 2 3 4 5 6 |
create table [テーブル名]( [列名1] [列名1のデータ型], [列名2] [列名2のデータ型], [列名3] [列名3のデータ型], …… ); |
以上のように記述します。
SQLは「;」までを1文と定義しますので、途中で改行しても問題ありません。
例えば、商品管理用のテーブル「商品管理」を作成したい場合は、次のように記述します。
ID | 商品名 | 値段 | |
商品A | |||
商品B | |||
…… |
1 2 3 4 5 |
create table 商品管理( ID int 商品名 char, 値段 int ) |
データの検索
テーブルからデータを取得する際に使用するのが「SELECT」です。
SELECTは以下のように使用します。
1 |
SELECT [列名1], [列名2], … FROM [テーブル名] [WHERE抽出条件]; |
列の全てのデータを表示したい場合は、先の「商品管理」であれば、以下のように記述します。
1 |
SELECT 商品名, 値段 FROM 商品管理 |
また、列名に「*」を記述することで、全ての列を取得することができます。
条件式を利用して、条件に合ったデータを取得することができます。
1 |
SELECT 商品名 FROM 商品管理 WHERE 値段 >= 5000; |
このように記述することで、5000円以上の商品名を抽出することができます。
条件式は「AND」や「OR」演算子で複数記述することも可能です。
データの追加
テーブルにデータを追加する場合は、「INSERT」を使用します。
1 |
INSERT INTO [テーブル名]( [列名1], [列名2], ……) VALUES( [値1], [値2], ……); |
サンプルコードは以下の通りです。
1 |
INSERT INTO 商品管理( ID, 商品名, 値段 ) VALUES( 001, ‘商品A’, 1500 ); |
データの更新
データの更新には「UPDATE」を使用します。
1 |
UPDATE [テーブル名] SET [更新処理] [WHERE条件式] |
サンプルコードは以下の通りです。
1 |
UPDATE 商品管理 SET 値段 = 1000 WHERE 商品名 = ‘商品A’; |
データの削除
データの削除には「DELETE」を使用します。
1 |
DELETE FROM [テーブル名] [WHERE条件式] |
サンプルコードは以下の通りです。
1 |
DELETE FROM 商品管理 WHERE ID = 001; |
今回は、SQLについて解説しました。
SQLはデータベースを管理するための言語であり、大量のデータを扱うためには、SQLの習得が必須です。本記事を参考に、SQLへの第一歩を踏み出してみませんか?
最新情報・キャンペーン情報発信中