PostgreSQL和MySQL一樣都是一種SQL Server
以下有些教學是可以提供給會MySQL,也想使用PostgreSQL的使用者看看
第零步,安裝PostgreSQL
使用brew來安裝 (Linux的話就看是apt / yum 還是什麼的,以下以Mac為例)
brew install postgresql
|
成功的話,會看到最後有段訊息
To have launchd start postgresql at login:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Then to load postgresql now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Or, if you don't want/need launchctl, you can just run:
postgres -D /usr/local/var/postgres
|
主要的重點是說,你想要一登入Mac的使用者,就自動啟動PostgreSQL的話,就在終端機輸入
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
|
要手動啟動 (第一次裝完最好也輸入一次)
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
|
如果想要停止的話輸入
postgres -D /usr/local/var/postgres
|
第一步,建立Database
createdb 是 postgresql 建立資料庫的指令
試看看建立資料庫,直接在Terminal中輸入 (此以 test_1 做為範例)
createdb test_1
|
註:由於postgresql設計的特性,一般來說執行postgresql ( postmaster )的user就會有直接連入資料庫的功能
所以不像MySQL,需要特別指定User
註2:postmaster為postgresql的資料庫服務
第二步,進入Database
如果成功,就可以開始進入剛剛建立的DB
psql test_1
|
如果沒有意外,可以看到終端機變成了
test_1=#
輸入\q就可以離開此模式 (此模式下按Ctrl + C是無效的)
輸入help可以看到一些簡單的說明
在PostgreSQL的終端(PSQL) 輸入 \du
可以看到現在的使用者,例如:
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
seachaos | Superuser, Create role, Create DB, Replication | {}
|
這裡現在列出的User Name (Role Name)應該和現在登入Mac的使用者名稱是一樣的
PSQL中輸入
SELECT version();
|
可以查看到現在的PostgreSQL版本資訊等等
第三步,操作Table (Create Table)
建立一個範例Table,可以在PSQL中輸入以下語法
CREATE TABLE mytable
( id SERIAL NOT NULL ,
name varchar(255) NOT NULL ,
value text NOT NULL ,
time timestamp NOT NULL ,
PRIMARY KEY (id));
|
其中建立流水號的id語法,SERIAL相當於MySQL中的 AUTO_INCREMENT
(Mysql寫法為 id INT NOT NULL AUTO_INCREMENT , 在PostgreSQL為 id SERIAL NOT NULL )
如果要看現在PostgreSQL的Database中有那些Table,可以輸入 \dt
(類似MySQL的 show tables )
應該可以看到類似以下的結果
test_1=# \dt
List of relations
Schema | Name | Type | Owner
--------+---------+-------+----------
public | mytable | table | seachaos
(1 row)
|
可以試看看插入(insert)一個資料到mytable中,語法如下:
insert into mytable (name,value,time)values(‘Good','this is value',now());
|
再來輸入Select語法,看剛才的insert是否成功:
select * from mytable
|
結果應該類似
test_1=# select * from mytable;
id | name | value | time
----+------+---------------+----------------------------
2 | Good | this is value | 2015-09-13 03:51:27.426327
(1 row)
|
再來其他的應該就和SQL一樣大同小異了
沒有留言:
張貼留言