程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Mysql入門系列:MYSQL創建、刪除、索引和更改表

Mysql入門系列:MYSQL創建、刪除、索引和更改表

編輯:關於MYSQL數據庫

  3.4 創建、刪除、索引和更改表

  可利用CREATE TABLE、DROP TABLE 和ALTER TABLE 語句創建表,然後,對它們進行刪除,更改它們的結構。對於它們中的每一條語句,存在MySQL專有的擴充,這些擴充使各語句更為有用。CREATE INDEX 和DROP INDEX 語句使您能夠增加或刪除現有表上

  的索引。

  3.4.1CREATE TABLE 語句

  用CREATE TABLE 語句創建表。此語句的完整語法是相當復雜的,因為存在那麼多的可選子句,但在實際中此語句的應用相當簡單。如我們在第1章中使用的所有CREATE TABLE 語句都不那麼復雜。有意思的是,大多數復雜東西都是一些子句,這些子句MySQL在分析後扔掉。參閱附錄D 可看到這些復雜的東西。看看CREATE TABLE 語句的各項條款,注意該語句有多少語法是用於REFERENCES CONSTRAINT 和CHECK 子句的。這些子句涉及外部鍵、引用完整性及輸入值約束。MySQL不支持這些功能,但它分析其語法使其更容易利用在其他數據庫系統中建立的表定義。(可以用較少的編輯工作更容易地利用該代碼。)如果您從頭開始編寫自己的表描述,可以完全不管這些子句。本節中我們對它們也不多做介紹。CREATE TABLE 至少應該指出表名和表中列的清單。例如:

  

  除構成表的列以外,在創建表時還可以說明它應該怎樣索引。另一個選擇是創建表時不進行索引,以後再增加索引。如果計劃在開始將表用於查詢前,用大量的數據填充此表,以後再創建索引是一個好辦法。在插入每一行時更新索引較裝載數據到一個未索引的表中然後

  再創建索引要慢得多。我們已經在第1章中介紹了CREATE TABLE 語句的基本語法,並在第2章討論了怎樣描述列類型。這裡假定您已經讀過了這兩章,因此我們就不重復這些內容了。在本節下面,我們將介紹一些MySQL3.23 中對CREATE TABLE 語句的重要擴充,這些擴充在構造表方面提供了很大的靈活性,這些擴充為:

  ■ 表存儲類型說明符。

  ■ 僅當表不存在時才進行創建。

  ■ 在客戶機會話結束時自動刪除臨時表。

  ■ 通過選擇希望表存儲的數據來創建一個表。

  1. 表存儲類型說明符

  在MySQL3.23 之前,所有用戶創建的表都利用的是ISAM 存儲方法。在MySQL3.23中,可在CREATE TABLE 語句的列的列表之後指定TYPE = type,以三種類型明確地創建表。其中type 可以為MYISAM、ISAM 或HEAP。例如:

  

  將表轉換為HEAP 類型可能不是一個好主意,但是,如果希望表一直維持到服務器關閉,可以進行這個轉換。HEAP 表在服務器退出之前,一直保留在內存中。這三種表類型的一般特點如下:

  ■ MyISAM 表。MyISAM 存儲格式自版本3.23 以來是MySQL中的缺省類型,它有下列特點:

  ■ 如果操作系統自身允許更大的文件,那麼文件比ISAM 存儲方法的大。

  ■ 數據以低字節優先的機器獨立格式存儲。這表示可將表從一種機器拷貝到另一種機器,即使它們的體系結構不同也可以拷貝。

  ■ 數值索引值占的存儲空間較少,因為它們是按高字節優先存儲的。索引值在低位字節中變化很快,因此高位字節更容易比較。

  ■ AUTO_INCREMENT 處理比ISAM 的表更好。詳細內容在第2章討論。

  ■ 減少了幾個索引限制。例如,可對含NULL 值的列進行索引,還可以對BLOB 和TEXT 類型的列進行索引。

  ■ 為了改善表的完整性檢查,每個表都具有一個標志,在myisamchk 對表進行過檢查後,設置該標志。可利用myisamchk - fast 跳過對自前次檢查以來尚未被修改過表的檢查,這樣使此管理任務更快。表中還有一個指示表是否正常關閉的標志。如果服務器關閉不正常,或機器崩潰,此標志可用來檢測出服務器起動時需要檢查的表。

  ■ ISAM 表。ISAM 存儲格式是MySQL3.23 所用的最舊的格式,但當前仍然可用。通常,相對於ISAM 表來說,寧可使用MyISAM 表,因為它們的限制較少。對ISAM 表的支持隨著此存儲格式被MyISAM 表格式所支持很有可能會逐漸消失。

  ■ HEAP 表。HEAP 存儲格式建立利用定長行的內存中的表,這使表運行得非常快。在服務器停止時,它們將會消失。在這種意義上,這些表是臨時的。但是,與用CREATE TEMPORARY TABLE 所創建的臨時表相比,HEAP 表是其他客戶機可見的。HEAP 表有幾個限制,這些限制對MyISAM 或ISAM 表沒有,如下所示:

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 下一頁
  • 尾頁
  • 共3頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved