SQLはデータベース言語の一つで、データベースの定義や操作を行うことができます。
この記事ではSQLの基本的な使い方をまとめました。
SQL、データベースとは
大量のデータを保存し、コンピューターからアクセスできるようにしたデータの集まりをデータベースと言い、DBと略します。
このデータベースを管理するシステムをデータベースマネジメントシステムといい、DBMSと略されます。
大量のデータを扱うためや多人数での共有、万が一の事故のためにもこのシステムが必要となります。
DBMSで採用されているのはおおむね次の5種類です。
- 階層型データベース
- リレーショナルデータベース
- オブジェクト指向データベース
- XMLデータベース
- キー・バリュー型データベース
この記事で紹介するのはリレーショナルデータベースを操作するための専門用語SQLになります。
エクセルの表のようにデータの管理をするため、理解しやすいです。
SQLはデータの操作や定義を行うためのデータベース言語で、「Structured Query Language」の略です。
SQLそのものはプログラミング言語ではなく、プログラミング言語と合わせて使われます。
リレーショナル型データベースに対応したデータベース言語として ISO 及び JIS において規格化されており、現在ではリレーショナル型データベースの事実上の標準として位置づけられています。
SQLは主に3種類の命令文で構成されています。
データベース言語SQLの文法の種別は、以下の3つに大別される。
- データ定義言語 (DDL: data definition language)
- データ操作言語 (DML: data manipulation language)
- データ制御言語 (DCL: data control language)
その他に、これらの命令の適用範囲を補完するための機能として、SQL文を実行時に解釈する「動的SQL」や、埋め込みSQLのための命令などが用意されている
Wikipediaより引用
SQLでは大文字と小文字は区別されません。
また文の終わりにセミコロン ; を付けます。(画像では;が抜けてしまっているところがあります。すみません。)
テーブルの作成
まずテーブルを作る前にテーブルを格納するデータベースを作成する必要があります。
CREATE DATA BASE データベース名
そのあと、CREATE TABLEを使いテーブルを作成します。
テーブルを作成するのは
CR EATE TABLE テーブル名 (列の名前 データの型 制約, 列の名前 データの型 制約, ・・・)
のようにして作れます。
データの型には数値型や文字列型
SELECT文
SELECT文はデータベースからデータを取り出し、表示するために使われる構文です。
いろいろ条件付けをして、あてはまるものだけを取ってくることもできます

SELECT文
基本的にはこのように書きます
例えばuserテーブルの名前の項目を取り出したいときは、
のようにします。
項目のところに「*」を使うとすべてのデータを表示することができます。
WHERE
WHEREを使うとSELECT文などで取ってくるデータの絞り込みができます。
書き方は先ほどのSELECT文の後に「WHERE 条件」を加えた形です。
WHEREは後から紹介する UPDATEやDELETEなどにも使われます。
INSERT
後からデータに新しいデータを追加する必要が出てくることもあります。
その時に使われるのがINSERTです。
このような文で行を追加することができます。
こうするとuserテーブルのidの列に05,nameの列にルフィを追加することができます。
UPDATE
INSERTは追加でしたが、UPDATEではデータの更新が行えます。
数値や文字列などを変更したり、修正したいときに使えます。
このように書きます。
複数のデータが一気に書き換わってしまうので、更新したいデータだけを選ぶためにWHEREも合わせて使います。
SELECT文の時と同じように「WHERE 条件」最後に加えます。
こうすると20歳の人のデータが更新されます。
DELETE
DELETEではデータの削除ができます。
このような形で使います。しかしこの場合はテーブルのデータがすべて消えてしまうので、WHEREを加えて条件を付けます。
ageが20のデータのみが削除されます。
ORDER BY と GROUP BY
ORDER BYはデータの並び替えで使われます。
昇順や降順で並び替えたいときに使われます
昇順にしたいときは列名の後に、ASCを、降順にしたいときは、DESCを書きます。
GROUP BYではデータを同じ種類ごとに分けることができます。
男女で分けたいとか、野菜とフルーツで分けたいときなどに使われます。
このような形式で使います。
制約
制約はデータベースにルールを決めて、データの形式を制限することです。
ここには数字しか入れてはいけないとか、ここは空白にしてはいけないとかです。
制約はCREATEでテーブルを作成するときに指定できます。
テーブル作成後に制約を付けたい場合は
のようにして制約を付けることができます。
大きく5種類の制約があります。
- Not NULL
- チェック制約 (CHECK)
- 一意性制約 (UNIQUE KEY)
- 主キー制約 (PRIMARY KEY)
- 参照整合性制約、外部キー制約 (FOREIGN KEY)
・Not NULL制約
Not NULL制約はNULLを許可しないというものです。これがあると空白にはできず、何かを必ず入れなければなりません。
・チェック制約
チェック制約は、「ある値以上」などの条件を設定し、その条件を満たすデータのみを許可するものです。
・一意性制約 (UNIQUE KEY)
これは単一の値のみを許可するもので、他のところに同じデータが入ることを許可しません。
・主キー制約 (PRIMARY KEY)
データベースには、主キーと呼ばれるレコードを一意に識別できる列をしていできますが、主キー制約はこのときに使う制約です。
・参照整合性制約、外部キー制約 (FOREIGN KEY)
他のテーブルのデータを参照するように設定するものです。参照する側を「子テーブル」、参照される側を「親テーブル」と呼びます。
勉強するには
ここまで紹介したのはほんとに基本的なことです。
手を動かしながら使いこなせるようにいろいろ作ってみましょう!
SQLを勉強する方法をいくつか紹介します。
プログラミング学習の定番にもなっている progate や ドットインストール でもデータベース言語の学習ができます。
月1000円程度なので勉強を始めやすいと思います。
参考書を使って学習したい方には「スッキリわかるSQL入門」がおすすめです!
1人で学習を進めていくのが難しい方には TECHACADEMYがおすすめです。