文章目录
- 任务十九 openGauss DML 语句测试
- 任务目标
- 实施步骤
- 一、准备工作
- 二、INSERT语句
- 三、DELETE语句
- 四、UPDATE语句
- 五、清理工作
任务十九 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