首页 > 编程笔记 > MySQL笔记 阅读:13

MySQL CREAE TABLE的用法(附带实例)

什么叫计算列呢?简单来说就是某一列的值是通过别的列计算得来的。例如,a 列值为 1、b 列值为 2,c 列不需要手动插入,定义 a + b 的结果为 c 的值,那么 c 就是计算列,是通过别的列计算得来的。

增加计算列的语法格式如下:
col_name data_type [GENERATED ALWAYS] AS (expression)
    [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment]
    [NOT NULL | NULL] [[PRIMARY] KEY]

MySQL 9.0 中,CREAE TABLE 和 ALTER TABLE 都支持增加计算列。下面以 CREAE TABLE 为例进行讲解。

【实例 1】定义数据表 tb1,然后定义字段 id、字段 a、字段 b 和字段 c,其中字段 c 为计算列,用于计算 a+b 的值。
1) 首先创建测试表 tb1,SQL 语句如下:
CREATE TABLE tb1(
id int(9) NOT NULL AUTO_INCREMENT,
a int(9) DEFAULT NULL,
b int(9) DEFAULT NULL,
c int(9) GENERATED ALWAYS AS ((a + b)) VIRTUAL,
PRIMARY KEY (`id`)
);

2) 插入演示数据,SQL 语句如下:
insert into tb1(a,b) values (100,200);

3) 查询数据表 tb1 中的数据,结果如下:
mysql> SELECT * FROM tb1;
+----+------+------+------+
| id | a    | b    | c    |
+----+------+------+------+
|  1 | 100  |  200 | 300  |
+----+------+------+------+

4) 更新数据表 tb1 中的数据,SQL 语句如下:
mysql> UPDATE tb1 SET a=500;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

5) 再次查看数据表 tb1 中的数据,结果如下:
mysql> SELECT * FROM tb1;
+----+------+------+------+
| id | a    | b    | c    |
+----+------+------+------+
|  1 | 500  | 200  |  700 |
+----+------+------+------+
从结果中可以看出,字段 c 中的数据始终是字段 a 和字段 b 的和,随着字段 a 和字段 b 中的数据变化,自动重新计算 a+b 的值。

相关文章