例えでデータベースには以下のデータがあるとしよう。テーブル名は公演記録。
公演記録 |
番号 | 氏名 | 公演名 | 入場料 | 劇場名 | 年齢 | 職業 |
001 | 河野太郎 | 冬の空 | 700 | 国立文楽劇場 | 25 | 大工 |
002 | 河野太郎 | 春の風 | 900 | 未知座小劇場 | 25 | 大工 |
003 | 河野次郎 | 春の風 | 900 | 未知座小劇場 | 18 | 学生 |
004 | 河野三郎 | 秋の月 | 1000 | 歌舞伎座 | 21 | プータロー |
[ SELEKT ]文
データーベース内の表から、希望したデータを抽出するのに使うのがSELEKT文。
- 全データの表示問い合わせ式 すべて同等で表示
SELEKT 番号,氏名,公演名,入場料,劇場名,年齢,職業
FROME 公演記録
- 列タイトル入れ替え問い合わせ式 並べ替えての表示される
SELEKT 番号,氏名,劇場名,年齢,職業,公演名,入場料
FROME 公演記録
- 比較演算子での条件指定問い合わせ式 番号003が選択される
SELEKT 番号,入場料
FROME 公演記録
WHERE 入場料>1000
- BETWEEN述語で条件指定問い合わせ式 番号001が表示される
SELEKT *
FROME 公演記録
WHERE 入場料>600
WHERE 入場料<800
- 重複をのぞく問い合わせ式 河野太郎、河野太郎、河野太郎の三名が表示される
SELEKT DISTINCT 氏名
FROME 公演記録
[ INSERT ]文
指定した表に新しい行を追加で使うのがINSERT文
1, 公演記録に新しい行を追加し、各列へのデータ登録
INSERT INTO 公演記録
VALUES ('005','河野四郎','夏の海',1200,'福岡ドーム',30,'俳優')
公演記録 |
番号 | 氏名 | 公演名 | 入場料 | 劇場名 | 年齢 | 職業 |
001 | 河野太郎 | 冬の空 | 700 | 国立文楽劇場 | 25 | 大工 |
002 | 河野太郎 | 春の風 | 900 | 未知座小劇場 | 25 | 大工 |
003 | 河野次郎 | 春の風 | 900 | 未知座小劇場 | 18 | 学生 |
004 | 河野三郎 | 秋の月 | 1000 | 歌舞伎座 | 21 | プータロー |
005 | 河野四郎 | 夏の海 | 1200 | 福岡ドーム | 30 | 俳優 |
【注】列名を指定しないと表の左から順に入る。なお、値が未定の場合「NULL」を使う。
2, 問い合わせ指定を使った複数行の挿入
INSERT INTO 劇場一覧
VALUES *
VALUES 公演記録
VALUES 劇場='未知座小劇場'
劇場一覧 |
番号 | 氏名 | 公演名 | 入場料 | 劇場名 | 年齢 | 職業 |
002 | 河野太郎 | 春の風 | 900 | 未知座小劇場 | 25 | 大工 |
003 | 河野次郎 | 春の風 | 900 | 未知座小劇場 | 18 | 学生 |
【注】公演記録表から「未知座小劇場」を取り出し、劇場一覧表に挿入。
[ UPDATE ]文
データの更新に使うのがUPDATE文
1, すべての情報を更新
UPDATE 公演記録
SET 入場料=入場料+10
公演記録 |
番号 | 氏名 | 公演名 | 入場料 | 劇場名 | 年齢 | 職業 |
001 | 河野太郎 | 冬の空 | 710 | 国立文楽劇場 | 25 | 大工 |
002 | 河野太郎 | 春の風 | 910 | 未知座小劇場 | 25 | 大工 |
003 | 河野次郎 | 春の風 | 910 | 未知座小劇場 | 18 | 学生 |
004 | 河野三郎 | 秋の月 | 1010 | 歌舞伎座 | 21 | プータロー |
005 | 河野四郎 | 夏の海 | 1210 | 福岡ドーム | 30 | 俳優 |
2, 特定の列の値を更新 WHERE句の利用
UPDATE 公演記録
SET 入場料=入場料+10
WHERE 公演名='秋の風'
公演記録 |
番号 | 氏名 | 公演名 | 入場料 | 劇場名 | 年齢 | 職業 |
001 | 河野太郎 | 冬の空 | 710 | 国立文楽劇場 | 25 | 大工 |
002 | 河野太郎 | 春の風 | 910 | 未知座小劇場 | 25 | 大工 |
003 | 河野次郎 | 春の風 | 910 | 未知座小劇場 | 18 | 学生 |
004 | 河野三郎 | 秋の月 | 1020 | 歌舞伎座 | 21 | プータロー |
005 | 河野四郎 | 夏の海 | 1210 | 福岡ドーム | 30 | 俳優 |
[ DELETE ]文
データの削除がDELETE文
1, すべての情報を削除
DELETE FROM 公演記録
2, 指定した条件行の削除
DELETE FROM 公演記録
WHERE 入場料=単価<=1000
公演記録 |
番号 | 氏名 | 公演名 | 入場料 | 劇場名 | 年齢 | 職業 |
004 | 河野三郎 | 秋の月 | 1020 | 歌舞伎座 | 21 | プータロー |
005 | 河野四郎 | 夏の海 | 1210 | 福岡ドーム | 30 | 俳優 |
データー管理
データの格納で、どのような表にどうまとめるか、アクセス権は?といったデータ定義機能をDDL(Data Definition Language)という。
まず以下のテーブルをつくろう。テーブル名は上演。
1, 実表をつくる 「上演」をデーター型の指定ととも定義
CREATE TABLE 上演
(番号 CHAR(3),
著者 NCHAR(10),
タイトル NCHAR(16),
上演日 CHAR(8),
公演場所 NCHAR(16),
上演団体 NCHAR(16),
開演 NCHAR(5),
入場料 CHAR(4))
上演 |
番号 | 著者 | タイトル | 上演日 | 公演場所 | 上演団体 | 開演 | 入場料 |
001 | 闇黒光 | 天の朝 | 20010910 | 未知座小劇場 | 大阪演劇情報センター | 18:30 | 1000 |
002 | 河野太郎 | 地の夜 | 20011025 | 扇町公園 | 文化庁 | 19:00 | 2500 |
【注】CHAR・文字列型の指定、NCHAR・2バイトの文字列を指定、DEC・真数型を指定
2, 実表で既定値(DEFAULT)を含む「上演」の定義
CREATE TABLE 戯曲
(番号 CHAR(3),
著者 NCHAR(10),
タイトル NCHAR(16),
上演日 CHAR(8) DEFAULT NULL,
公演場所 NCHAR(16) DEFAULT 'A1',
上演団体 NCHAR(16),
開演 NCHAR(5),
入場料 CHAR(4))
上演 |
番号 | 著者 | タイトル | 上演日 | 公演場所 | 上演団体 | 開演 | 入場料 |
001 | 闇黒光 | 天の朝 | | A1 | 大阪演劇情報センター | 18:30 | 1000 |
002 | 河野太郎 | 地の夜 | | A1 | 文化庁 | 19:00 | 2500 |
【注】上演日が未定なのでMULLで空白、公演場所指定なしはA1
3, ビュー表をつくる
CREATE VIEW 著者
As SELECT * FROM 上演
WHERE 著者=闇黒光
著者 |
番号 | 著者 | タイトル | 上演日 | 公演場所 | 上演団体 | 開演 | 入場料 |
001 | 闇黒光 | 天の朝 | 20010910 | 未知座小劇場 | 大阪演劇情報センター | 18:30 | 1000 |
【注】確かビュー表のことを、MS Accessではクエリだったと思う?
4, 条件を指定したビュー表
CREATE VIEW 会場
(公演場所、入場料)
As SELECT 公演場所,入場料 FROM 上演
WHERE 公演場所='扇町公園'
AND 入場料=>2000
5, DROP 実表の削除
DROP TABLE 上演
6, DROP ビュー表の削除
DROP VIEW 会場
7, データベースへの権限 GRANT ALL 特定ユーザ
GRANT ALL PRIVILEGES ON 上演 TO akira
【注】表・上演へユーザakiraは、すべての権限を持った。
8, データベースへの権限 GRANT ALL すべてのユーザ
GRANT ALL PRIVILEGES ON 上演 TO PUBLIC
【注】表・上演へすべてのユーザは、すべての権限を持った。
9, データベースへの権限の条件付与 GRANT INSERT 特定ユーザ
GRANT INSERT ON 上演 TO akira
【注】表・上演へユーザakiraは、行の追加ができる。
10, データベースへの権限の条件付与 GRANT UPDATE 特定ユーザ
GRANT UPDATE ON 上演 TO akira
【注】表・上演へユーザakiraは、更新ができる。
11, データベースへの権限の条件付与 GRANT UPDATE 特定ユーザ
GRANT UPDATE(??1,列2) ON 上演 TO akira
【注】表・上演へユーザakiraは、列1と列2の更新ができる。
12, データベースへの権限の条件付与 GRANT 特定ユーザ
GRANT ALL PRIVILEGES ON 上演 TO akira WITH GRANT OPTION
【注】表・上演へのユーザakiraの権限は、他のユーザに与えることができる。
13, データベースへの権限の削除 REVOKE
REBOKE INSERT ON 上演 FROM akira
【注】表・上演へのユーザakiraに与えられた更新権限を削除。
topへ home:topへ server
library:topへ
PHP PostgreSQL MySQL サンプルスクリプト