【MySQL】2、MySQL 創建數據庫和表
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 常用數據類型
數值類型 | 描述 |
---|---|
|
僅支持整數。size 參數規定最大位數。 【各個數據類型最大位數取值:bigint(20) > int(11)> 其他 (--比如:int(5)表示最大可以存儲99999以內的數字 --) |
|
支持帶有小數的數字。在 size 參數中規定數字的最大位數。在 d 參數中規定小數點右側的數字的最大位數。 |
文本數據類型 | 描述 |
---|---|
char(size) |
支持固定長度的字符串。(可包含字母、數字以及特殊符號)。 在 size 參數中規定固定長度。最大是char(255)。 |
varchar(size) (適合標題...短長度) |
支持可變長度的字符串。(可包含字母、數字以及特殊符號)。 在 size 參數中規定最大長度。最大是varchar(255)。 |
tinytext | 支持可變長度的字符串,最大長度是 255 個字符。 |
|
支持可變長度的字符串,最大長度是 65535 個字符。 |
|
支持可變長度的字符串,最大長度是 16777215 個字符。 |
|
支持可變長度的字符串,最大長度是 4294967295 個字符。 |
日期數據類型 | 描述 |
---|---|
|
支持日期或時間 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
MyISAM引擎是MySQL5.1及之前版本的默認引擎,它的特點是:
不支持行鎖,讀取時對需要讀到的所有表加鎖,寫入時則對表加排它鎖
不支持事務
不支持外鍵
不支持崩潰後的安全恢復
在表有讀取查詢的同時,支持往表中插入新紀錄
支持BLOB和TEXT的前500個字符索引,支持全文索引
支持延遲更新索引,極大提升寫入性能
對於不會進行修改的表,支持壓縮表,極大減少磁盤空間占用
InnoDB
InnoDB在MySQL5.5後成為默認索引,它的特點是:
支持行鎖,采用MVCC來支持高並發
支持事務
支持外鍵
支持崩潰後的安全恢復
不支持全文索引
總體來講,MyISAM適合SELECT密集型的表,而InnoDB適合INSERT和UPDATE密集型的表。
一般中小型數據量試用MyISAM引擎,大型數據量適用InnoDB引擎
【MySQL】2、MySQL 創建數據庫和表