プログラミング言語

SQL

データベース(特にRDBMS)を操作するために使われる言語。
標準規格はあるものの、各RDMBSの独自仕様も多い。

RDBMSって?

関係データベース管理システム(Relational Database Management System)。関係モデルに基づいてデータを持つ。
超簡単に言うと、excelで作るような表形式(テーブルと呼ばれる)でデータを持つということ。

表形式なので、データを取得する場合は行と列を選択する。
RDBMSでは列を列名、行を主キー(Primary Key、よくPKと略される)の値で選択する。

主キーとは、データが絶対に重複しない列のこと。
出席番号、社員番号、ログインIDなんかをイメージすると良いかも。

なんでRDMBSが使われてるの?

主な理由は大量のデータを取り扱えて性能がいいから。
プログラム中で処理とデータを分けることはよくあるのだけど、大量にデータがあるとCSVみたいなテキストファイルでデータを管理するのは無理。

主なRDBMS

RDMBSは各ソフトウェアによって微妙な差異が結構ある。
性能を気にする場合などは各RDBMSの仕様を確認しよう。

SQLの使い方

SQLを使うためには、まずDBをインストール。
各SQL文はOracleを使う前提で書いてるので、他のDBを使う場合は型を適当に読み替えてください(><)

テーブルの作成

まずvipperidとvippernameを持つvipperというテーブルを作ってみる。

CREATE TABLE vipper(
 vipperid INT(9, 0) PRIMARY KEY,
 vippername VARCHAR(20)
);

CREATE Table [テーブル名](列名 型, 列名 型, ・・・)でテーブルを作ることができる。
vipperidはINT型で最大9桁、vippernameは文字列型で最大20文字。
「PRIMARY KEY」と後ろに書かれているvipperidが主キー。

データの追加

データはINSERT文を使って挿入する。

INSERT INTO vipper(vipperid, vippername) VALUES(1, 'ブーン');
INSERT INTO vipper(vipperid, vippername) VALUES(2, 'vipper');
INSERT INTO vipper(vipperid, vippername) VALUES(3, '(^ω^)')

INSERT INTO [テーブル名](列名1, 列名2, ・・・) VALUES(列名1の値, 列名2の値, ・・・);
文字列は「'」で囲む必要あり。他のデータを入れる場合は主キーのvipperidがかぶらないようにね。主キーがかぶったデータを入れようとすると・・・?
データ挿入後はこんな感じ。

vipperidvippername
1ブーン
2vipper
3(^ω^)

データの参照

SELECT文を使ってデータを参照

テーブルの全てのデータを参照

SELECT * FROM vipper;

取得データ

vipperidvippername
1ブーン
2vipper
3(^ω^)

指定した列だけ参照(この場合はvippernameだけ)

SELECT vippername FROM vipper;

取得データ

vippername
ブーン
vipper
(^ω^)

特定の行だけを参照

SELECT vipperid, vippername FROM vipper WHERE vipperid = 1;

取得データ

vipperidvippername
1ブーン

データの更新

UPDATE文を使って更新

UPDATE vipper SET vippername = 'vippest' where vipperid = 2;

データ更新後

vipperidvippername
1ブーン
2vippest
3(^ω^)

※注意 whereで更新する行を絞らないとvipperテーブルの全データが更新される!

データの削除

DELETE文を使って削除

DELETE FROM vipper WHERE vipperid = 3;

データ削除後

vipperidvippername
1ブーン
2vippest

※注意 DELETE文もWHEREで行を絞らないと、全データ削除される!