
SQLはデータを扱うための言語です。多くの場所で使われていて、私たちの生活を支えています。
私はRubyという言語を中心にWebアプリケーションを作っている途中で、大量のデータを扱う必要がありSQLを学びました。SQLはデータを扱うのに長けていて、欲しいデータにすぐアクセスできるのが魅力でした。
また、PHP、Rubyなどでバックエンド開発(データの管理をする部分を作ること)をする際にSQLは必要になるので、学んで後悔しない言語であると感じます。現に、現在でも使う機会は多いですし、とても便利で助かっています。
それでは、SQLという言語について見ていきましょう。
SQLって?
SQLとはリレーショナルデータベース(表形式でまとめたデータの集合体)内のデータを操作したりすることのできる言語です。
SQLは単体で使われることはほとんどなく、他のプログラミング言語と組み合わされて使われます。私たちの身近なところで言うと、SQLは会員情報の管理等に使われています。
大量のデータが扱われている現代において、私たちとSQLは切っても切れない関係にあります。
SQLってどこに使われてるの?
SQLはデータを扱うのに長けていて、大量のデータを扱うのが得意です。そのため、データを扱うプログラムではほぼ確実に使われているといっても過言ではありません。
SQLが使われているところは数多くありますが、カレンダー等のスケジュール管理をするアプリケーションを例に挙げると比較的わかりやすいと思います。
アプリケーションは予定を表示したり、新たな予定を追加するような目に見える部分と、予定のデータをまとめて管理しておくといった目に見えない部分の2つからなっています。
SQLは後者の目に見えない部分を担っており、支えています。いわばプログラムの裏方のようなものです。
このように、SQLは他のプログラミング言語と組み合わされて、データを扱うプログラムにおいて使われています。
SQLの文法を学ぼう
SQLはデータを扱うのに長けていて、様々なところで活躍していることがわかりました。
それではSQLの文法について見ていきましょう。SQLの文法は大きく下の3つに分類できます。
・データ定義言語(DDL) → データを扱う表の形式を決める
・データ操作言語(DML) → データの新規登録や削除、検索をすることができる
・データ定義言語(DDL) → 誰がデータにアクセスできるか、できないかを決める
ここではSQLの基本で、よく使われるデータ定義言語(DDL)とデータ操作言語(DML)について扱っていきます。
データ定義言語(DDL)
DDLはデータを扱う表の形式を決めるために使われます。その中でも、よく使われる命令は以下の3つです。
・CREATE
・ALTER
・DROP
それでは、それぞれについて詳しく見ていきましょう。
CREATE
CREATE文は新しいデータベース(データの集まり)やテーブル(表)を作成することができます。
例として、学生が受けた試験の点数を記録するテーブルを作ってみましょう。その場合、以下のように書きます。
1 2 3 4 5 |
CREATE TABLE exam_recode( number INT(5) NOT NULL , name VARCHAR(30) NOT NULL , point INT(3) NOT NULL, ); |
実行すると以下のような表ができました。INT(5)やVARCHAR(30)というのは簡単に言ってしまえばデータの種類で、NOT NULLは何らかの値が入ることを表します。
要素名 | 内容 |
number | 学籍番号 |
name | 学生の名前 |
point | 得点 |
ALTER
ALTER文はすでにあるデータベースやテーブルに変更を加えることができます。
先ほど作ったテーブルに要素を追加してみましょう。subject(科目名)という要素を追加します。
1 |
ALTER TABLE exam_recode ADD subject VARCHAR(30) NOT NULL; |
実行すると、先ほどの表が少し変わって下の表のようになります。ADDというのが要素を追加する命令です。
要素名 | 内容 |
number | 学籍番号 |
name | 学生の名前 |
point | 得点 |
subject | 科目名 |
DROP
DROP文はすでにあるデータベースやテーブルを削除することができます。
それでは先程作ったテーブルを削除してみましょう。
1 |
DROP TABLE exam_recode; |
これでテーブルを削除することができました。
データ操作言語(DML)
DMLはデータの新規登録や削除、検索をすることができます。その中でもよく使われる命令は以下の3つです。
・INSERT
・DELETE
・SELECT
それではそれぞれについて詳しく見ていきましょう。
INSERT
INSERT文はテーブルにデータの登録をすることができます。
それではCREATE文の説明のところで作ったテーブルにデータを登録してみましょう。
1 |
INSERT INTO exam_recode (12345,'Yamada Taro',70); |
実行するとテーブルに以下のようにデータが登録されます。
要素名 | 入れた値 |
number | 12345 |
name | Yamada Taro |
point | 70 |
基本的にデータの登録はINSERT文を繰り返し使いますが、INSERT文をうまく使えばCSVファイルなどから大量のデータを一気に登録することもできます。
DELETE
DELETE文はデータの削除を行うことができます。
以下の命令を実行するとテーブル内のデータが全て削除されます。
1 |
DELETE FROM exam_recode; |
しかし、それでは特定のデータだけを消したいときに不便です。
そのため、条件を指定して命令を実行することが多いです。具体的には以下のようにします。
1 |
DELETE FROM exam_recode WHERE name = 'Yamada Taro'; |
WHEREは検索条件を指定するコマンドです。この場合、「学生名がYamada Taroのデータを削除する」という内容になります。
SELECT
SELECT文はデータの検索を行うことができます。
以下の命令を実行するとテーブル内のデータが全て表示されます。
1 |
SELECT * FROM exam_recode; |
こちらも条件を指定すれば特定のデータだけを表示させることができます。具体的には以下のようにします。
1 |
SELECT * FROM exam_recode WHERE name = 'Yamada Taro'; |
これで「学生名がYamada Taro」のデータが表示されます。
まとめ
データを扱うアプリケーションを作りたいと考えている人にとって、SQLを学ぶことは避けて通ることのできない道です。ですが、SQLは特徴や仕様を理解して、使いこなせるようになるととても強い武器になります。
SQLは本当にどのアプリケーションでも使われていますので、早い段階から学んでおいて損はしないと思います。現に私はかなり早い段階でSQLを学びましたが、SQLを使う場面はとても多く、助かっています。
この記事でSQLを学ぼうとしている皆さんの後押しができれば幸いです。
最後までお読みいただきありがとうございました。