計算列(Computed Columns)是基于表中其他列的值計算出的新列,這些計算可以是基于某些算法或某些表達式。MySQL允許在創建表時定義計算列。
CREATE TABLE `mytable` ( `col1` int(11) NOT NULL, `col2` int(11) NOT NULL, `col3` int(11) AS (col1+col2) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的代碼中,`col3`是數據庫自動計算出的,其值將是`col1`和`col2`相加的結果。請注意,`AS`子句用于定義計算列。
計算列的表現類似于普通列,并可以在SELECT、WHERE和ORDER BY語句中使用。在查詢計算列時,可以使用計算列的名稱,而不必指定計算列的公式。
SELECT `col1`, `col2`, `col3` FROM `mytable`;
如果想要修改計算列的公式,可以使用ALTER TABLE語句。
ALTER TABLE `mytable` CHANGE `col3` `newcol` int as (col1-col2);
在上面的代碼中,我們修改了`col3`的名稱,并更改了其公式,使其為`col1-col2`。要注意的是,雖然我們可以在ALTER TABLE語句中更改計算列的名稱和公式,但實際上計算列的所有值都將被刪除并重新計算。
上一篇mysql建表時建立外鍵
下一篇mysql 快速刪除數據