这一章节将会介绍所有的数据库更新方法,使用的数据是 第一章 介绍和导入的数据。
一、插入数据
1、普通插入
关键字:insert into …(…) values(…)
注意:1、字段名不一定要全部出现,顺序也可以与表内不同,
2、未出现的字段如果有自增属性则会自动加 1 ,否则置为 NULL
3、若插入的数据不满足完整性约束则会拒接此次插入
insert into region(R_REGIONKEY, R_NAME, R_COMMENT) values(5, 'China', 'i love china');
2、插入子查询结果
关键字:insert into …(…) select …
注意:1、子查询结果字段数据类型须与表一致
2、若插入的数据不满足完整性约束则会拒接此次插入
-- 新建表,存储零件平均价格
create table if not exists PARTAVGCOST(
AVG_PARTKEY int references PARTSUPP(PS_PARTKEY),
ABG_SUPPLYCOST float null
);
-- 将平均价格插入表中
insert into PARTAVGCOST(AVG_PARTKEY, ABG_SUPPLYCOST) select PS_PARTKEY, avg(PS_SUPPLYCOST) from partsupp group by PS_PARTKEY;
二、修改数据
关键字:update … set … [where …]
注意:1、若没有 where 条件则默认修改全部数据,MySQL默认是禁止没有 where 条件的修改操作
2、set 后面的赋值语句可以是常量、算术表达式、函数、另一列
3、若修改的数据不满足完整性约束则会拒接此次修改
2.1、直接修改
update region set R_NAME='AAAA' where R_REGIONKEY=0;
2.2、赋值为另一列
update region set R_COMMENT=R_NAME where R_REGIONKEY=0;
2.3、算术表达式赋值
update partsupp set PS_SUPPLYCOST = PS_SUPPLYCOST + 1 where PS_PARTKEY > -1;
2.4、函数赋值
update partsupp set PS_SUPPLYCOST = round(PS_SUPPLYCOST) where PS_PARTKEY=1;
三、删除数据
关键字:delete from … [where…]
注意:若没有 where 条件则默认删除全部数据,MySQL默认是禁止没有 where 条件的删除操作
delete from orders where O_ORDERKEY = 1;