LotosLabo

プログラミング技術とか気になった情報を載せていきます

PosgreSQLについて1

SQLPostgreSQLについて紹介していきます。

DB(データベース)とは何か?

コンピュータから効率よくアクセスできるように加工したデータの集まりのことです。
また、データベースを管理するコンピュータシステムのことを、
DBMS(データベース管理システム)といいます。

データベースには「階層型」、「ネットワーク型」、「リレーショナル型」というのがあり、
一般的に使用されているのが、リレーショナル型であり、
RDBMS(リレーショナルデータベース)といいます。

RDBMSの種類

その他にもOODBオブジェクト指向データベース)、XMLDBXMLデータベース)などもあります。

SQLとは?

リレーショナルデータベースを操作するための言語です。

SQLの種類

DDL(Data Definition Language)


データを格納する入れ物であるデータベースやテーブルなどを作成したり削除する。

CREATE:データベースやテーブルを作成
DROP :データベースやテーブルなどを削除
ALTER :データベースやテーブルなどの構成を変更



DML(Data Manipulation Language)

テーブルの行を検索したり変更したりする。

SELECT:テーブルから行を検索
INSERT :テーブルに新規行を登録
UPDATE :テーブルの行を更新
DELETE :テーブルの行を削除



DCL(Data Control Language)

データベースに対して行った変更を確定したり消したりする。また、操作の権限の操作も行う。

COMMIT :データベースに対して変更を確定
ROLLBACK :データベースに対して変更を取り消す
GRANT :ユーザに操作の権限を与える
REVOKE :ユーザから操作の権限を奪う


SQLの記述ルール


■大文字・小文字は区別されない
SQL文の最後に「;」セミコロンをつける
■文字列や日付には「’」シングルクォーテーションを使う
■単語は半角スペースか改行で区切る

以上の4つを踏まえて記述していきます。
今回はSQLの中でも扱いやすい、PostgreSQLを使っていきます。

PostgreSQLのインストール

インストール方法は、DBOnline様のサイトや初心者用PHP入門様のサイトを参考にインストールするとわかりやすいです。

以下参考URL
DBOnline
初心者用PHP入門


全てのインストールが終わりましたら、SQL Shellというコンソール
画面を開いて作成していきます。

f:id:lo25131:20140127142450j:plain


f:id:lo25131:20140127142452j:plain

これに[]の中に書いてある文字を打ち込んでいきます。


すべて打ち込み、パスワードが認証されたら
postgres=#というようになり、これでデータベースを作成する事ができます。

f:id:lo25131:20140127142455j:plain


データの作成

データベースの作成

Create Database <データベース名>;

例:Create Database database1;

テーブルの作成

Create Table <テーブル名>;

例:Create Table table1;

テーブル列の作成

テーブル作成の際には列も一緒に入れていきます。

Create Table <テーブル名>
(<列名1> <データ型> <列の制約>,

<列名2> <データ型> <列の制約>,

<列名3> <データ型> <列の制約>,

<列名4> <データ型> <列の制約>,

<列名5> <データ型> <列の制約>,

<テーブルの制約1>, <テーブルの制約2>);


(例)

Create Table table1
(shohin_id Char(4) Not Null,
shohin_mei Varchar(50) Not Null,
shohin_bunrui Varchar(30) Not Null.
hanbai_tanka Integer ,
torokubi Date ,
Primary Key (shohin_id));


①テーブル作成コマンド
②データを格納
商品ID  最大4文字まで  無記入は駄目
商品名  最大50文字まで 無記入は駄目
商品分類 最大30文字まで 無記入は駄目
販売単価 数値のみ     制約なし
登録日  日付のみ     制約なし
主キーを商品IDに指定

テーブル・データベースの削除

Drop Table <テーブル名>;

例:Drop Table table1;

同じようにデータベースも削除可能です。
※一度消してしまうと元に戻せないのでご注意を。

テーブルの定義変更

Alter Table <既存テーブル名> Add Column <新しい列の定義>;

例:Alter Table table1 Add Column shohin_mei Varchar(100);

テーブルへのデータ格納

データに格納する順番をご説明します。
①商品ID②商品名③商品分類④販売単価⑤登録日 この順番でそれぞれ入れていきます。

Start Transaction;
Insert Into <テーブル名> Values ('商品ID',
'商品名','商品分類',販売単価,登録日);
.
.
.
Commit;


このようにして入れていきます。
Start Transactionとはデータを連続で入力するための命令文です。
CommitとはTransactionを停止するコマンドです。

(例)

Start Transaction;

Insert Into table1 Values ('0001',
'チョコレート','お菓子',150,'2014-01-27');

Insert Into table1 Values ('0002',
'パン', 'パン類',98,'2014-01-24');

Insert Into table1 Values ('0003',
'USB', 'パソコン機器',500','2014-01-04');

Insert Into table1 Values ('0004',
'バームクーヘン','お菓子',98,'2014-01-26');

Commit;


記述ルール


・半角の英数字、アンダバーが使用可能
・重複してはいけない
・頭文字はアルファベット


データ型の説明


・数値型(Integer、Double)
・文字列型(Char、Varchar)
・日付型(Date)


Integer型は整数のみ、Double型は小数のみです。
Char型は文字のみで、()に最大文字列を入れることが出来ます。
Varchar型も文字のみで、()に最大文字列を入れることが出来ます。

Char型とVarchar型の大きな違いは、

Char型(5) 
→ 'abc' を入力 'abc□□' 
最大が5文字なので当てはまらないと、残りをスペースで表現します。

Varchar型(5)
→ 'abc' を入力 'abc'
最大5文字ですが、満たさなくてもスペースで補いません。

ここでChar型を固定長文字列、Varchar型を可変表文字列と言います。

制約の説明

NOT NULLとはNULL(無記入)では駄目という意味です。




  • 参考サイト・書籍

CD付 SQL ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

CD付 SQL ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)