達夢資料庫基礎---表
表是資料庫中資料儲存的基本單元,是對使用者資料進行讀和操縱的邏輯實體。表由列和行組成,每一行代表一個單獨的記錄。表中包含一組固定的列,表中的列描述該表所跟蹤的實體的屬性,每個列都有一個名字及各自的特性。
列的特性由兩部分組成:資料型別(dataType)和長度(length)。對於 NUMERIC、DECIMAL 以及那些包含秒的時間間隔型別來說,可以指定列的小數位及精度特性。在DM 系統中,CHAR、CHARACTER、VARCHAR 資料型別的最大長度由資料庫頁面大小決定,資料庫頁面大小在初始化資料庫時指定。DM 系統具有 SQL-92 的絕大部分資料型別,以及部分SQL-99、Oracle 和 SQL Server 的資料型別。
為了確保資料庫中資料的一致性和完整性,在建立表時可以定義表的實體完整性、域完整性和參考完整性。實體完整性定義表中的所有行能唯一地標識,一般用主鍵、唯一索引、UNIQUE 關鍵字及 IDENTITY 屬性來定義;域完整性通常指資料的有效性,限制資料型別、預設值、規則、約束、是否可以為空等條件,域完整性可以確保不會輸入無效的值;參考完整性維護表間資料的有效性、完整性,通常通過建立外來鍵聯絡另一表的主鍵來實現。
如果使用者在建立表時沒有定義表的完整性和一致性約束條件,那麼使用者可以利用 DM 所提供的基表修改語句來進行補充或修改。DM 系統提供基表修改語句,可對基表的結構進行全面的修改,包括修改基表名、列名、增加列、刪除列、修改列型別、增加表級約束、除表級約束、設定列預設值、設定觸發器狀態等一系列修改功能。
1.管理表的準則
1.1 設計表
表是資料庫設計過程中的基本構件,基於來自應用開發者的有關應用如何運作和所期望的資料型別,資料庫管理員應與應用開發者一起工作,並認真規劃每個表,具體需要做到以下幾點:
- 規範化表,估算並校正表結構,使資料冗餘達到最小;
- 為每個列選擇合適的資料型別,是否允許為空等,並根據實際情況判斷是否需要對列進行加密或壓縮處理;
- 建立合適的完整性約束,管理約束可檢視 15 章管理完整性約束的內容;
- 建立合適的聚集索引。每個表(列儲存表,堆表除外)都含一個聚集索引,預設以ROWID 建立,而建立合適的聚集索引,可以有效加快表的檢索效率;
- 根據實際需要,建立合適型別的表。DM 支援的表型別包括普通表、臨時表、水平分割槽表、垂直分割槽表、堆表和列儲存表。
1.2 指定表的儲存空間上限
在建立表時指定 SPACE LIMIT 子句,可以對錶的儲存空間指定上限。DM 支援對錶的儲存空間指定大小,單位是 MB,即表的大小可由管理員指定,便於表的規模管理。當表的所有索引所佔用的儲存空間超過指定大小時,表將不能再新增資料。
1.3 指定表的儲存位置
建立表時,在 STORAGE 子句中,可對錶指定儲存的表空間。如果沒有指定,則該表將建立在使用者的預設表空間中。在建立表時,通過指定合適的表空間,有以下優點:
- 提高資料庫系統的效能,因為不同的資料庫表可能對應不同的資料檔案,可減少對相同檔案的競爭;
- 減少資料庫管理的時間,資料庫表分佈在不同的表空間中,即使一個表空間損壞,也不影響其他表空間上資料庫表的正常訪問。
2 建立表
2.1 普通表示例
如果要在所屬模式中建立新表,需要有 CREATE TABLE 資料庫許可權;而要在其他使用者的模式中建立新表,則需要有 CREATE ANY TABLE 資料庫許可權。建立表時,應當為表指定一個表空間,否則,表將在 MAIN 建立。下面給出一個建立一個簡單表的例子。
例1:
CREATE TABLE EMPLOYEE (
EMPNO INT PRIMARY KEY,
ENAME VARCHAR(15) NOT NULL,
JOB VARCHAR(10),
MGR INT
CONSTRAINT EMP_FKEY REFERENCES EMPLOYEE(EMPNO),
HIREDATE DATE DEFAULT (CURDATE),
SALARY FLOAT,
DEPTNO TINYINT NOT NULL
CONSTRAINT DEPT_FKEY REFERENCES DEPT(DEPTNO))
STORAGE (
INITIAL 50,
NEXT 50,
MINEXTENTS 10,
FILLFACTOR 80,
ON USERS);
例2:
CREATE TABLE PRODUCTION.PRODUCT_REVIEW
(
PRODUCT_REVIEWID INT IDENTITY(1,1),
PRODUCTID INT NOT NULL,
NAME VARCHAR(50) NOT NULL,
REVIEWDATE DATE NOT NULL,
EMAIL VARCHAR(50) NOT NULL,
RATING INT NOT NULL,
COMMENTS TEXT,
PRIMARY KEY(PRODUCT_REVIEWID),
FOREIGN KEY(PRODUCTID) REFERENCES PRODUCTION.PRODUCT(PRODUCTID),
CHECK(RATING IN(1,2,3,4,5))
);
相關文章
- 達夢資料庫基礎知識(三)達夢資料庫記憶體結構資料庫記憶體
- 達夢資料庫安裝及基礎操作資料庫
- 達夢資料庫基礎知識(二)資料庫邏輯結構資料庫
- 達夢資料庫基礎知識(一)資料庫物理儲存結構資料庫
- 達夢資料庫基礎知識(四)管理DM執行緒資料庫執行緒
- 達夢資料庫如何將Excel表的資料複製到表中資料庫Excel
- 達夢資料庫安裝資料庫
- 達夢資料庫開發資料庫
- 初識達夢資料庫資料庫
- 達夢資料庫學習資料庫
- [轉帖]達夢資料庫-統計資料表資料量及空間表大小資料庫
- 【達夢】Docker安裝達夢資料庫 dm8Docker資料庫
- 達夢資料庫學習心得資料庫
- 達夢資料庫日常運維資料庫運維
- 達夢資料庫遷移資料/複製表/匯入匯出2資料庫
- 達夢遷移工具之MySQL資料庫遷移到達夢MySql資料庫
- DataX將Oracle資料庫資料同步到達夢資料庫Oracle資料庫
- 國產資料庫oceanBbase,達夢,金倉與mysql資料庫的效能對比 八、python讀達夢資料庫資料庫MySqlPython
- 達夢資料庫系統表空間資料檔案遷移過程資料庫
- 達夢資料庫備份恢復資料庫
- 達夢7資料庫初始化資料庫
- 達夢資料庫之初步測試資料庫
- 達夢資料庫DCP培訓心得資料庫
- 配置達夢資料庫同構DBLINK資料庫
- 達夢資料庫學習筆記資料庫筆記
- 資料庫國產化實戰之達夢資料庫資料庫
- 達夢資料庫表空間管理方法及實戰演示資料庫
- DBeave如何連線達夢資料庫,設定達夢驅動,真酷資料庫
- 資料庫基礎查詢--單表查詢資料庫
- 資料庫基礎資料庫
- 資料庫 基礎資料庫
- 配置ORACLE資料庫到達夢資料庫的異構DBLINKOracle資料庫
- 達夢資料庫統計資訊詳解資料庫
- 國產資料庫oceanBbase,達夢,金倉與mysql資料庫的效能對比 四、python讀mysql寫入達夢資料庫資料庫MySqlPython
- 織夢資料庫_織夢還原資料庫_織夢資料庫很卡資料庫
- 達夢(DM)資料庫的表空間建立和遷移維護資料庫
- CYQ.Data 支援 DaMeng 達夢資料庫資料庫
- 達夢資料庫全文索引簡介資料庫索引