SQL#
データベース(特にRDBMS)を操作するために使われる言語。
標準規格はあるものの、各RDMBSの独自仕様も多い。
RDBMSって?#
関係データベース管理システム(Relational Database Management System)。関係モデルに基づいてデータを持つ。
超簡単に言うと、excelで作るような表形式(テーブルと呼ばれる)でデータを持つということ。
表形式なので、データを取得する場合は行と列を選択する。
RDBMSでは列を列名、行を主キー(Primary Key、よくPKと略される)の値で選択する。
主キーとは、データが絶対に重複しない列のこと。
出席番号、社員番号、ログインIDなんかをイメージすると良いかも。
なんでRDMBSが使われてるの?#
主な理由は大量のデータを取り扱えて性能がいいから。
プログラム中で処理とデータを分けることはよくあるのだけど、大量にデータがあるとCSVみたいなテキストファイルでデータを管理するのは無理。
主なRDBMS#
RDMBSは各ソフトウェアによって微妙な差異が結構ある。
性能を気にする場合などは各RDBMSの仕様を確認しよう。
- Oracle
有料(高い)。資格試験もある。非商用利用に限り無料版が提供されている。商用で使う場合はデファクトスタンダード。~
Oracle10g Express(Free Version)
http://www.oracle.com/technetwork/database/express-edition/downloads/index.html - MySQL
オープンソースのRDBMS。Javaを開発したSun Microsystemsが提供していたが、Oracleに買収された。無料で使えるDBとしてはデファクトスタンダード。~
http://www.mysql.gr.jp/
http://dev.mysql.com/downloads/ - PostgreSQL
オープンソースのRDBMS。日本でよく使われている。~
http://www.postgresql.jp/ - Microsoft SQL Server
Microsoftが提供しているRDBMS。無料版もある。VisualStudioをインストールすると一緒に入ってくる場合がある。エディタもあるので使いやすい。
MS-SQLServer 2008Express
http://www.microsoft.com/downloads/details.aspx?familyid=58CE885D-508B-45C8-9FD3-118EDD8E6FFF&displaylang=ja
MSDE2000
http://www.microsoft.com/japan/sqlserver/2005/msde/default.mspx - DB2
IBMが提供しているRDBMS。 - SQLite
アプリ組み込み用。単体版もある。EXEファイル1個だけなので気軽に使える。~
http://www.sqlite.org/
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がかぶらないようにね。主キーがかぶったデータを入れようとすると・・・?
データ挿入後はこんな感じ。
| vipperid | vippername |
|---|---|
| 1 | ブーン |
| 2 | vipper |
| 3 | (^ω^) |
データの参照#
SELECT文を使ってデータを参照
テーブルの全てのデータを参照
SELECT * FROM vipper;取得データ
| vipperid | vippername |
|---|---|
| 1 | ブーン |
| 2 | vipper |
| 3 | (^ω^) |
指定した列だけ参照(この場合はvippernameだけ)
SELECT vippername FROM vipper;取得データ
| vippername |
|---|
| ブーン |
| vipper |
| (^ω^) |
特定の行だけを参照
SELECT vipperid, vippername FROM vipper WHERE vipperid = 1;取得データ
| vipperid | vippername |
|---|---|
| 1 | ブーン |
データの更新#
UPDATE文を使って更新
UPDATE vipper SET vippername = 'vippest' where vipperid = 2;データ更新後
| vipperid | vippername |
|---|---|
| 1 | ブーン |
| 2 | vippest |
| 3 | (^ω^) |
※注意 whereで更新する行を絞らないとvipperテーブルの全データが更新される!
データの削除#
DELETE文を使って削除
DELETE FROM vipper WHERE vipperid = 3;データ削除後
| vipperid | vippername |
|---|---|
| 1 | ブーン |
| 2 | vippest |
※注意 DELETE文もWHEREで行を絞らないと、全データ削除される!