openGauss开源数据库实战十九

任务十九 openGauss DML 语句测试

任务目标

掌握DML语句的用法,包括INSERT语句、DELETE语句和UPDATE语句。

实施步骤

一、准备工作

使用Linux用户omm,打开一个Linux终端窗口,执行如下的命令,创建一个测试表:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
DROP TABLE IF EXISTS test;
CREATE TABLE test(  id  int primary key,
                  name varchar(200) not null,
                  age int default 20,
                  salary int );

二、INSERT语句

执行下面的INSERT语句,这些INSERT语句都可以成功执行:

--  为一行的所有列都提供值
INSERT INTO test VALUES(1,'Hello!',21,5000);
--  一次插入多行,为一行的所有列都提供值
INSERT INTO test VALUES(2,'Hello!2',22,6000), (3,'Hello!3',20,7000);
--  插入一行,为插入的行只提供部分列的值
INSERT INTO test(id,name,salary) VALUES(4,'Hello!4',8000);
INSERT INTO test(id,name) VALUES(5,'Hello!5');
SELECT * FROM TEST;

执行下面的INSERT语句,这些INSERT语句违反数据库约束,无法成功执行:

--  违反主键约束,无法插入
INSERT INTO test VALUES(5,'Hello!6',21,10000);
--  违反非空约束,无法插入
INSERT INTO test(id,age)  VALUES(5,21);

在这里插入图片描述

三、DELETE语句

执行下面的命令,设置gsql的事务管理为手动提交:

\set AUTOCOMMIT off

执行下面的命令,查看目前表test中的数据:

select * from test;

执行下面的命令,删除id=2的行:

delete from test where id=2;
select * from test;

执行下面的命令,删除age=21的行:

delete from test where age=21;
select * from test;

执行下面的命令,删除表test中所有的行:

delete from test;
select * from test;

如果DELETE语句没有WHERE子句,将删除表的所有行。这一点请读者在使用DELETE语句完成工作的时候,要特别注意。
执行下面的命令,回滚上面的所有操作,恢复表test中的所有数据行:

rollback;
select * from test;
\q

在这里插入图片描述

四、UPDATE语句

使用Linux用户omm,打开一个Linux终端窗口,执行如下的命令,将事务管理设置为手动提交,并查看表test中的数据:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
\set AUTOCOMMIT off
select * from test;

执行下面的UPDATE语句,将id=3的行中的salary更新为8800:

update test set salary=8800 where id=3;
select * from test;

执行下面的UPDATE语句,将所有行的salary列的值增加10%:

update test set salary=salary*1.1;
select * from test;

五、清理工作

执行下面的语句,完成数据清理工作:

DROP TABLE IF EXISTS test;
\q
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值