W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
為了創(chuàng)建一個(gè)數(shù)據(jù)庫,PostgreSQL服務(wù)器必須啟動(dòng)并運(yùn)行(見第 18.3 節(jié))。
數(shù)據(jù)庫用 SQL 命令CREATE DATABASE創(chuàng)建:
CREATE DATABASE name
;
其中name
遵循SQL標(biāo)識(shí)符的一般規(guī)則。當(dāng)前角色自動(dòng)成為該新數(shù)據(jù)庫的擁有者。以后刪除這個(gè)數(shù)據(jù)庫也是該擁有者的特權(quán)(同時(shí)還會(huì)刪除其中的所有對(duì)象,即使那些對(duì)象有不同的擁有者)。
創(chuàng)建數(shù)據(jù)庫是一個(gè)受限的操作。如何授權(quán)請(qǐng)見第 21.2 節(jié)。
因?yàn)槟阈枰B接到數(shù)據(jù)庫服務(wù)器來執(zhí)行CREATE DATABASE
命令, 那么還有一個(gè)問題是任意給定站點(diǎn)的第一個(gè)數(shù)據(jù)庫是怎樣創(chuàng)建的?第一個(gè)數(shù)據(jù)庫總是由initdb
命令在初始化數(shù)據(jù)存儲(chǔ)區(qū)域時(shí)創(chuàng)建的(見第 18.2 節(jié))。這個(gè)數(shù)據(jù)庫被稱為
postgres
。因此要?jiǎng)?chuàng)建第一個(gè)“普通”數(shù)據(jù)庫時(shí),你可以連接到postgres
。
在數(shù)據(jù)庫集簇初始化期間也會(huì)創(chuàng)建第二個(gè)數(shù)據(jù)庫template1
,
。當(dāng)在集簇中創(chuàng)建一個(gè)新數(shù)據(jù)庫時(shí),實(shí)際上就是克隆了template1
。這就意味著你對(duì)template1
所做的任 何修改都會(huì)體現(xiàn)在所有隨后創(chuàng)建的數(shù)據(jù)庫中。因此應(yīng)避免在template1
中創(chuàng)建對(duì)象,除非你想把它們傳播到每一個(gè)新創(chuàng)建的數(shù)據(jù)庫中。詳見第 22.3 節(jié)。
為了方便,你還可以用一個(gè)程序來創(chuàng)建新數(shù)據(jù)庫: createdb
。
createdb dbname
createdb
沒什么神奇的。它連接到postgres
數(shù)據(jù)庫并且發(fā)出CREATE DATABASE
命令,和前面介紹的完全一樣。createdb參考頁包含了調(diào)用細(xì)節(jié)。注意不帶任何參數(shù)的
createdb
將創(chuàng)建一個(gè)使用當(dāng)前用戶名的數(shù)據(jù)庫。
第 20 章包含有關(guān)如何限制誰能連接到一個(gè)給定數(shù)據(jù)庫的信息。
有時(shí)候你想為其他人創(chuàng)建一個(gè)數(shù)據(jù)庫,并且使其成為新數(shù)據(jù)庫的擁有者, 這樣他們就可以自己配置和管理這個(gè)數(shù)據(jù)庫。要實(shí)現(xiàn)這個(gè)目標(biāo),使用下列命令之一: 用于 SQL 環(huán)境的
CREATE DATABASE dbname
OWNER rolename
;
或者用于 shell 的
createdb -O rolename
dbname
只有超級(jí)用戶才被允許為其他人(即為一個(gè)你不是其成員的角色)創(chuàng)建一個(gè)數(shù)據(jù)庫。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: