SQLとは
まず初めに、SQLとはどのようなものかについてご紹介します。
SQLはデータベースを操作する際に用いる言語のことで、プログラミング言語とは異なります。
データベースの中には、数千〜数百万件もの膨大なデータが格納されていますが、SQLを使用する
ことにより新たにデータを挿入したり、既存のデータを検索したりといった作業を効率よく行う
ことができます。
以上のことを踏まえて、更にSQLについて深く掘り下げていきたいと思います。
SQLの種類
こちらでは、実際にSQLを使用するにあたって覚えておきたい3種類の言語についてご紹介します。
データベースやテーブルに対して、作成や削除・設定の変更をしたりする場合に使用されるSQL命令文。
CREATE / DROP / ALTER / TRUNCATE が該当する。
データベースに対して、データを追加・更新・削除などを行うために使用されるSQL命令文。
SELECT / INSERT / UPDATE / DELETE が該当する。
上記で挙げたDDLやDMLの利用を制御するためのSQL命令文。
GRANT / REVOGE が該当する。
これら3種類の言語は、SQLを用いてデータベースを操作する際に必須となる知識なので、
理解を深めておく必要があります。
また上記の中で紹介したSQL文に関しては、順を追ってご紹介します。
データ定義言語(DDL)について
2.SQLの種類で紹介した、CREATE・DROP・ALTER・TRUNCATEについて説明します。
既存のデータベースやテーブルの削除を行う際に使用する。
◯データベースの削除
DROP DATABASE <<データベース名>>;
◯テーブルの削除
DROP TABLE <<テーブル名>>;
既存のデータベースやテーブルに対して、変更を行う際に使用する。
◯データベースの変更
ALTER DATABASE <<データベース名>>;
◯テーブルに新たなカラムを追加する
ALTER TABLE <<テーブル名>> ADD
[カラム名1] [データ型] [NOT NULL or NULL],
[カラム名2] [データ型] [NOT NULL or NULL];
◯テーブル名とカラム名の定義を変更する
ALTER TABLE <<テーブル名>>
ALTER COLUMN [変更するカラム名] [データ型];
◯テーブル内のカラムを削除する
ALTER TABLE <<テーブル名>>
DROP COLUMN [カラム名];
テーブル内のデータを全て削除する際に使用する。(但し、テーブルの設定などは残る。)
TRUNCATE TABLE <<テーブル名>>;
似た役割を持つDROPとDELETEとの違いに関しては、こちらへ。
データ操作言語(DML)について
2.SQLの種類で紹介した、SELECT・INSERT・UPDATE・DELETEについて説明します。
テーブル内のデータを抽出・検索する際に使用する。
その際、FROM句を使用して、データを取り出したいテーブルを指定する。
◯基本となる形
SELECT *
FROM <<テーブル名>>;
※ *(アスタリスク)・・・テーブル内の全項目を指定する
※指定した項目のみ抽出する場合には、*の代わりにカラム名を指定する
◯複数項目を抽出する
SELECT [カラム名1], [カラム名2], ...
FROM <<テーブル名>>;
また上記の構文に加え、より詳細な条件を追加してデータを抽出する方法もあります。
それを紹介しているページは、こちらへ。
テーブル内にデータを挿入する際に使用する。
INSERT INTO <<テーブル名>>
(カラム名1, カラム名2, ...) VALUES (データ1, データ2, ...);
テーブルに登録されている値を更新する際に使用する。
データを更新する際には、WHERE句を使用しなければ全ての行のデータが更新されてしまうので、
絶対に忘れてはならない。
UPDATE <<テーブル名>>
SET [更新するカラム名] = [更新するデータ]
WHERE [更新する条件];
また、一度に複数列のデータを更新する場合には、更新内容を「,(カンマ)」で区切って列挙する。
UPDATE <<テーブル名>>
SET [更新するカラム名1] = [更新するデータ1], [更新するカラム名2] = [更新するデータ2]
WHERE [更新する条件];
テーブルに登録されているデータを削除する際に使用する。
DELETE文を使用する際には、WHERE句を使用しなければ全ての行が削除されてしまうため、
絶対に忘れてはならない。
また、ここでいう「データ」とは1行全てを指します。
DELETE
FROM <<テーブル名>>
WHERE [条件];
データ制御言語(DCL)について
2.SQLの種類で紹介した、GRANT・REVOGEについて説明します。
1人または複数のユーザーに対して、オブジェクト(テーブルやビューなど)に関する権限を
付与する。
GRANT [権限名] ON <<オブジェクト名>>
TO [ユーザー名]
[WITH GRANT OPTION];
権限名は以下を使用して指定する。(カンマ区切りで複数選択が可能)
・SELECT : 参照
・INSERT : 行の追加
・DELETE : 行の削除
・UPDATE : データの更新(※UPDATE [カラム名] : 特定列のデータ更新)
・ALL PRIVILEGES : 上記全て
オブジェクト名は、テーブル名またはビュー名を指定する。
ユーザー名は、該当権限を与えるユーザーを指し、ユーザー名・ロール名・PUBLIC
(全てのユーザー)を指定する。
※省略可能ではあるが、該当権限自体を他のユーザーに権限ごと付与する場合は
WITH GRANT OPTIONを指定する。
1人または複数のユーザーに対して、オブジェクトに関するアクセス権限を取り消す。
REVOGE [権限名] ON <<オブジェクト名>>
FROM [ユーザー名];