1. 程式人生 > >【MySQL】2、MySQL 創建數據庫和表

【MySQL】2、MySQL 創建數據庫和表

數值 加鎖 字母 發送 lint 引擎 code font reat

2.MySQL 創建數據庫和表

2.1、創建數據庫

CREATE DATABASE 語句用於在 MySQL 中創建數據庫。
CREATE DATABASE database_name

為了讓 PHP 執行上面的語句,我們必須使用 mysql_query() 函數(用於向 MySQL 連接發送查詢或命令)

2.2、創建表

CREATE TABLE 用於在 MySQL 中創建數據庫表。

CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .......

);

為了執行此命令,我必須向 mysql_query() 函數添加 CREATE TABLE 語句。

重要事項:在創建表之前,必須首先選擇數據庫。通過 mysql_select_db() 函數選取數據庫

2.3、MySQL 常用數據類型

數值類型描述
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
僅支持整數。size 參數規定最大位數。
【各個數據類型最大位數取值:bigint(20) > int(11)> 其他

(--比如:int(5)表示最大可以存儲99999以內的數字 --)
  • decimal(size,d) (計算用這個最精準)
  • double(size,d) (雙精度)
  • float(size,d) (單精度,近似值)

支持帶有小數的數字。在 size 參數中規定數字的最大位數。在 d 參數中規定小數點右側的數字的最大位數。

文本數據類型描述
char(size)

支持固定長度的字符串。(可包含字母、數字以及特殊符號)。

在 size 參數中規定固定長度。最大是char(255)。

varchar(size)
(適合標題...短長度)

支持可變長度的字符串。(可包含字母、數字以及特殊符號)。

在 size 參數中規定最大長度。最大是varchar(255)。

tinytext 支持可變長度的字符串,最大長度是 255 個字符。
  • text(適合留言等中...長度)
  • blob
支持可變長度的字符串,最大長度是 65535 個字符。
  • mediumtext (適合文章內容...較長長度)
  • mediumblob (適合二進制圖片存儲)
支持可變長度的字符串,最大長度是 16777215 個字符。
  • longtext
  • longblob(存二進制)
支持可變長度的字符串,最大長度是 4294967295 個字符。
註意:文本數據類型size表示英文字符數量,又叫長度。一個漢字是兩個長度。
日期數據類型描述
    • date(yyyy-mm-dd)
    • datetime(yyyy-mm-dd hh:mm:ss)
    • time(hh:mm:ss)
timestamp
支持日期或時間
timestamp用來存時間戳

2.4、主鍵和自動遞增字段

每個表都應有一個主鍵字段。

主鍵用於對表中的行進行唯一標識。每個主鍵值在表中必須是唯一的。此外,主鍵字段不能為空,這是由於數據庫引擎需要一個值來對記錄進行定位。

主鍵字段永遠要被編入索引。這條規則沒有例外。你必須對主鍵字段進行索引,這樣數據庫引擎才能快速定位給予該鍵值的行。

下面的例子把 personID 字段設置為主鍵字段。主鍵字段通常是 ID 號,且通常使用 AUTO_INCREMENT 設置。AUTO_INCREMENT 會在新記錄被添加時逐一增加該字段的值。要確保主鍵字段不為空,我們必須向該字段添加 NOT NULL 設置。(數據庫創建完整代碼

unisgned無符號數,表示沒有負數形式。同時整數範圍擴大一倍。

2.5、時間存儲類型比較

不需要比較大小時,用datatime(精確到秒)或者data(精確到日)類型。需要比較大小時,用int類型。

既可以比較大小,又可以直觀看懂日期。可以將日期以20180326(int)形式存儲在數據庫。

註意:timestamp比datatime顯示的日期範圍小,容易受時區影響。不建議使用。

2.6、MyISAM和InnoDB兩種引擎比較

MyISAM

  1. MyISAM引擎是MySQL5.1及之前版本的默認引擎,它的特點是:
  2. 不支持行鎖,讀取時對需要讀到的所有表加鎖,寫入時則對表加排它鎖
  3. 不支持事務
  4. 不支持外鍵
  5. 不支持崩潰後的安全恢復
  6. 在表有讀取查詢的同時,支持往表中插入新紀錄
  7. 支持BLOB和TEXT的前500個字符索引,支持全文索引
  8. 支持延遲更新索引,極大提升寫入性能
  9. 對於不會進行修改的表,支持壓縮表,極大減少磁盤空間占用

InnoDB

  1. InnoDB在MySQL5.5後成為默認索引,它的特點是:
  2. 支持行鎖,采用MVCC來支持高並發
  3. 支持事務
  4. 支持外鍵
  5. 支持崩潰後的安全恢復
  6. 不支持全文索引

總體來講,MyISAM適合SELECT密集型的表,而InnoDB適合INSERT和UPDATE密集型的表。

一般中小型數據量試用MyISAM引擎,大型數據量適用InnoDB引擎

【MySQL】2、MySQL 創建數據庫和表