風(fēng)哥PostgreSQL DBA 實(shí)戰(zhàn)技術(shù)課程
postgresql數(shù)據(jù)庫(kù)與模式的關(guān)系:模式(schema)是對(duì)數(shù)據(jù)庫(kù)(database)邏輯分割,在數(shù)據(jù)庫(kù)創(chuàng)建的同時(shí),就已經(jīng)默認(rèn)為數(shù)據(jù)庫(kù)創(chuàng)建了一個(gè)模式--public,這也是該數(shù)據(jù)庫(kù)的默認(rèn)模式。所有為此數(shù)據(jù)庫(kù)創(chuàng)建的對(duì)象(表、函數(shù)、試圖、索引、序列等)都是常見(jiàn)在這個(gè)模式中的。postgresql創(chuàng)建數(shù)據(jù)庫(kù)后默認(rèn)創(chuàng)建了public模式,也默認(rèn)屬于該模式。可以在同一個(gè)庫(kù)下面創(chuàng)建多個(gè)模式,當(dāng)有多個(gè)模式時(shí),進(jìn)行操作是要帶模式名稱(chēng)。如 create table shcema_name.test(id int not null );
表空間與數(shù)據(jù)庫(kù)的關(guān)系:數(shù)據(jù)庫(kù)創(chuàng)建語(yǔ)句CREATE DATABASE dbname 默認(rèn)的數(shù)據(jù)庫(kù)所有者是當(dāng)前創(chuàng)建數(shù)據(jù)庫(kù)的角色,默認(rèn)的表空間是系統(tǒng)的默認(rèn)表空間--pg_default。由于CREATE DATABASE dbname并沒(méi)有指明數(shù)據(jù)庫(kù)模板,所以系統(tǒng)將默認(rèn)克隆template1數(shù)據(jù)庫(kù),得到新的數(shù)據(jù)庫(kù)dbname。相對(duì)完整的語(yǔ)法應(yīng)該是這樣的:CREATE DATABASE dbname OWNER freeoa TEMPLATE template1 TABLESPACE tablespacename;在PostgreSQL中,表空間是一個(gè)目錄,里面存儲(chǔ)的是它所包含的數(shù)據(jù)庫(kù)的各種物理文件。
?