要先下「use `資料庫名稱`」語法,才可使用 table 相關動作
use `my_db`
顯示 table 清單
show tables
建立 table
CREATE TABLE IF NOT EXISTS `tb_name`(
`sn`INT NOT NULL AUTO_INCREMENT, // sn 從1開始自動增加
`name`varchar(50) NOT NULL, // 字串欄位
`value`INT NOT NULL, // 數字欄位
`value2`INT(5) UNSIGNED ZEROFILL, // 無號數5位數數字欄位, 不足5位在前面補0
INDEX(`name`), // 加速搜尋速度
PRIMARY KEY(`sn`) // 資料不可重覆的欄位
);
查看 table 目前欄位
desc `tb_name`
清除 table 內容
TRUNCATE `tb_name`;
刪除 table
DROP TABLE `tb_name`;
檢查欄位是否存在
SHOW FULL COLUMNS FROM `tb_name` LIKE '欄位名稱'
增加欄位
ALTER TABLE `tb_name` ADD COLUMN `欄位名稱` 形態(長度);
刪除欄位
ALTER TABLE `tb_name` DROP COLUMN `欄位名稱`;
修改欄位
ALTER TABLE `tb_name` CHANGE COLUMN `舊欄位` `新欄位` 新形態(新長度);
增加 INDEX
ALTER TABLE `tb_name` ADD INDEX(`欄位名稱`), ADD INDEX(`欄位名稱`), ... ;
刪除 INDEX
ALTER TABLE `tb_name` DROP INDEX `欄位名稱`;
增加 KEY
ALTER TABLE `tb_name` ADD PRIMARY KEY(`欄位名稱`);
刪除 KEY
ALTER TABLE `tb_name` DROP PRIMARY KEY;
欄位常用型態
數字型態
TINYINT (1 Bytes) -128 ~ 127
SMALLINT (2 Bytes) -32768 ~ 32767
MEDIUMINT (3 Bytes) -8388608 ~ 8388607
INT (4 Bytes) -2147483648 ~ 2147483647
BIGINT (8 Bytes) -9223372036854775808 ~ 9223372036854775807
FLOAT (4 Bytes) -3.402823466E+38 ~ 3.402823466E+38
DOUBLE (8 Bytes) -1.7976931348623157E+308 ~ 1.7976931348623157E+308
DECIMAL(M,D) M:整數+小數的總位數長度(1~65), D:小數位數(0~30). (可簡寫 DEC)
BIT(M) M: bit個數(1~64)
INT(5) 其中 5 代表 SELECT 出來的顯示位數, 不影響可儲存值的大小
(可配合ZEROFILL的欄位型態,而且存入的值不可超過設定的位數,否則可能會無效)
字串型態 (文字類型 / 二進制類型)
TINYTEXT / TINYBOLB 最大 255
TEXT / BOLB 最大 65KB
MEDIUMTEXT / MEDIUMBOLB 最大 16MB
LONGTEXT / LONGBOLB 最大 4GB
CHAR / BINARY 最大 255
VARCHAR / VARBINARY 最大 65KB
固定長度 (字串不足長度會補空白):CHAR
動態長度:VARCHAR、TEXT
可設定初始值:CHAR、VARCHAR
不可給初始值:TEXT
時間型態
TIMESTAMP 欄位在 SELECT 時可多加 +0,即可顯示出沒有連接符號的數字,否則會跟 DATETIME 顯示的一樣
DATE '0000-00-00'
DATETIME '0000-00-00 00:00:00'
TIMESTAMP '19700101080001' (年月日時分秒 的數字串在一起)
TIME '00:00:00'
YEAR '1901'
沒有留言:
張貼留言