MySQL CREAE TABLE的用法(附带实例)
什么叫计算列呢?简单来说就是某一列的值是通过别的列计算得来的。例如,a 列值为 1、b 列值为 2,c 列不需要手动插入,定义 a + b 的结果为 c 的值,那么 c 就是计算列,是通过别的列计算得来的。
增加计算列的语法格式如下:
在 MySQL 9.0 中,CREAE TABLE 和 ALTER TABLE 都支持增加计算列。下面以 CREAE TABLE 为例进行讲解。
【实例 1】定义数据表 tb1,然后定义字段 id、字段 a、字段 b 和字段 c,其中字段 c 为计算列,用于计算 a+b 的值。
1) 首先创建测试表 tb1,SQL 语句如下:
2) 插入演示数据,SQL 语句如下:
3) 查询数据表 tb1 中的数据,结果如下:
4) 更新数据表 tb1 中的数据,SQL 语句如下:
5) 再次查看数据表 tb1 中的数据,结果如下:
增加计算列的语法格式如下:
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 的值。
相关文章
- MySQL SHOW CREATE TABLE:查看表详细结构(附带实例)
- MySQL创建数据表(CREATE TABLE语句)
- MySQL创建数据表(CREATE TABLE)
- MySQL CREATE INDEX语句创建索引(非常详细,附带实例)
- MySQL CREATE PROCEDURE创建存储过程的用法(非常详细)
- MySQL CREATE FUNCTION创建存储函数的用法(附带实例)
- MySQL CREATE VIEW创建视图(附带实例)
- MySQL CREATE PROCEDURE语句的用法(附带实例)
- MySQL CREATE FUNCTION语句的用法(附带实例)
- MySQL CREATE VIEW:创建视图(非常详细,附带实例)