华为高斯GaussDB数据库操作教程:插入、查询、更新与删除【华为根技术】

举报
柠檬味拥抱 发表于 2025/08/30 14:56:06 2025/08/30
【摘要】 通过本文的示例,我们系统掌握了 GaussDB 的增删改查(CRUD)操作。首先,在建表阶段,通过合理设计员工表(EMPLOYEE)和部门表(DEPARTMENT)的字段、数据类型及约束,不仅保证了数据完整性,还为后续的关联查询和业务操作打下了基础。

华为高斯GaussDB数据库操作教程:插入、查询、更新与删除【华为根技术】

背景

随着企业数据量的不断增长,对数据库的高性能、高可用性和可扩展性要求也越来越高。传统关系型数据库在处理海量数据时可能面临性能瓶颈,而华为自研的 GaussDB 提供了分布式、高可靠和安全的数据库解决方案,广泛应用于金融、电信、政企等关键业务场景。

在实际应用中,数据库的 增(Insert)、删(Delete)、改(Update)、查(Select) 操作是最常用的基本操作,也是业务系统数据管理的核心。熟练掌握这些操作能够帮助开发者更高效地管理和维护数据库中的数据。
在这里插入图片描述

什么是GaussDB数据库

GaussDB 是华为自主研发的分布式关系型数据库,具备以下特点:

  1. 高性能:支持大规模并行计算与事务处理,能够应对PB级别的数据存储与分析需求。
  2. 高可用:支持多副本部署和故障自动切换,保证系统的连续运行。
  3. 高扩展性:可按需水平扩展节点,满足业务增长对数据库容量和性能的要求。
  4. 安全可靠:提供数据加密、权限管理和审计功能,确保企业核心数据安全。
  5. 兼容性强:兼容 PostgreSQL 协议,开发者可以快速上手,无需额外学习成本。

通过 GaussDB,开发者不仅可以完成传统的增删改查操作,还可以利用其分布式架构进行复杂的数据分析和大数据计算,为企业业务提供强有力的数据支撑。
在这里插入图片描述

GaussDB数据库增删改查实战

一、建表(DDL)

在进行增删改查操作之前,需要先创建数据表。下面以员工管理为例,创建一个 EMPLOYEE(员工表)

CREATE TABLE EMPLOYEE (
    ID INT PRIMARY KEY NOT NULL,      -- 员工ID,主键,不能为空
    DEPT_ID INT NOT NULL,             -- 部门ID,不能为空,用于关联部门表
    NAME TEXT NOT NULL,               -- 员工姓名
    AGE INT NOT NULL,                  -- 员工年龄
    ADDRESS CHAR(50),                  -- 员工地址,固定长度50
    SALARY REAL                        -- 员工薪资,浮点数
);

字段说明

字段名 类型 描述
ID INT 员工唯一标识,主键
DEPT_ID INT 所属部门ID
NAME TEXT 员工姓名
AGE INT 员工年龄
ADDRESS CHAR(50) 员工地址
SALARY REAL 员工薪资

注意事项

  1. 主键约束ID 字段为主键,确保每条记录唯一。

  2. 非空约束ID, DEPT_ID, NAME, AGE 必须有值。

  3. 数据类型选择

    • TEXT 用于存储长度不定的字符串。
    • CHAR(50) 用于固定长度字符,适合地址等字段。
    • REAL 用于存储浮点型数据,例如薪资。

在这里插入图片描述

二、建部门表(DEPARTMENT)

为了管理员工所属的部门,我们需要创建一个 DEPARTMENT(部门表)

CREATE TABLE DEPARTMENT (
    ID INT PRIMARY KEY NOT NULL,    -- 部门ID,主键,不能为空
    DEPT CHAR(50) NOT NULL          -- 部门名称,不能为空,固定长度50
);

字段说明

字段名 类型 描述
ID INT 部门唯一标识,主键
DEPT CHAR(50) 部门名称

注意事项

  1. 主键约束ID 字段为主键,确保每个部门唯一。

  2. 非空约束IDDEPT 字段不能为空。

  3. 数据类型选择

    • CHAR(50) 用于存储固定长度的部门名称,节省存储空间,适合部门名称长度相对固定的场景。

表关联示例

EMPLOYEE 表中,DEPT_ID 字段可以用来关联 DEPARTMENT 表的 ID 字段,实现员工与部门的对应关系。例如:

-- 查询员工及其所属部门名称
SELECT E.ID, E.NAME, E.AGE, E.SALARY, D.DEPT
FROM EMPLOYEE E
JOIN DEPARTMENT D
ON E.DEPT_ID = D.ID;

这个查询将返回每个员工的基本信息及所属部门名称。


在这里插入图片描述

三、增(INSERT)操作——创建新记录

在完成表的创建之后,我们可以向 EMPLOYEE(员工表)DEPARTMENT(部门表) 中插入数据。以下是示例 SQL:

-- 插入员工信息
INSERT INTO EMPLOYEE (id, dept_id, name, age, address, salary) VALUES
(100, 0, 'bob', 31, '福建省福州市台江区', 1234.56),
(101, 1, 'tina', 25, '福建省福州市鼓楼区', 999.00),
(102, 1, 'tom', 38, '福建省三明市', 9.00),
(103, 1, 'linda', 18, '福建省福清市', 1000.00001);

-- 插入部门信息
INSERT INTO DEPARTMENT(id, dept) VALUES
(0, '总裁办'),
(1, '研发部');

执行效果

DAS(Database Administration Service) 的 SQL 执行窗体中,可以一次性执行多条 SQL 语句,操作步骤如下:

  1. 将多条 SQL 语句输入到执行窗体;
  2. 用分号(;)分隔每条 SQL 语句;
  3. 点击 执行 按钮,DAS 会自动按顺序执行每条语句,并返回执行结果。

在这里插入图片描述

原理说明

DAS 对多条 SQL 的执行流程可以理解为:

  1. 拆分 SQL:系统根据分号将输入内容拆分为独立的 SQL 语句;
  2. 逐条执行:按照顺序依次向数据库发送执行请求;
  3. 结果返回:每条语句执行完毕后返回结果,并显示在执行窗体中。

这种方式可以一次性完成多条记录的插入,方便快速初始化数据库。

四、查(SELECT)操作——读取已有记录

在实际业务中,查询操作是最常用的数据库操作之一。对于 EMPLOYEE(员工表)DEPARTMENT(部门表),我们通常需要获取员工信息及其所属部门名称,这时就需要使用 JOIN(表关联)

示例 SQL:员工表与部门表关联查询

SELECT a.*, b.dept
FROM EMPLOYEE a
INNER JOIN DEPARTMENT b ON a.dept_id = b.id
WHERE a.age < 100;

说明

  1. 表别名

    • EMPLOYEE 表用别名 aDEPARTMENT 表用别名 b,使 SQL 更简洁。
  2. INNER JOIN

    • 根据 EMPLOYEE.dept_idDEPARTMENT.id 进行关联;
    • 只返回匹配到的员工记录。
  3. 筛选条件

    • WHERE a.age < 100 用于过滤员工年龄小于 100 的记录。
  4. 查询结果

    • 输出员工的所有信息(a.*),同时显示所属部门名称(b.dept)。

查询效果

执行结果将显示每个员工的 ID、姓名、年龄、地址、薪资等信息,以及其对应的部门名称。例如:

id dept_id name age address salary dept
100 0 bob 31 福建省福州市台江区 1234.56 总裁办
101 1 tina 25 福建省福州市鼓楼区 999.00 研发部
102 1 tom 38 福建省三明市 9.00 研发部
103 1 linda 18 福建省福清市 1000.00001 研发部

在这里插入图片描述

五、改(UPDATE)操作——修改已有记录

当员工信息发生变化时,例如薪资调整,需要使用 UPDATE 语句修改数据库中的记录。

示例 SQL:修改员工工资并查询

-- 修改员工linda的工资
UPDATE EMPLOYEE 
SET SALARY = 2222.12345 
WHERE NAME = 'linda';

-- 查询员工表,查看修改结果
SELECT * FROM EMPLOYEE;

说明

  1. UPDATE 语句

    • SET SALARY = 2222.12345:将 SALARY 字段更新为新的工资值;
    • WHERE NAME = 'linda':只修改 NAMElinda 的员工记录。

    注意:如果没有 WHERE 条件,会更新整张表的所有记录,需谨慎使用。

  2. SELECT 查询

    • 紧跟 UPDATE 后查询,可以立即验证修改结果。
    • DAS 支持一次执行多条 SQL 语句,使用分号分隔即可。

执行效果

执行后,员工表中 linda 的薪资将被更新为 2222.12345,其余员工信息保持不变。例如:

id dept_id name age address salary
100 0 bob 31 福建省福州市台江区 1234.56
101 1 tina 25 福建省福州市鼓楼区 999.00
102 1 tom 38 福建省三明市 9.00
103 1 linda 18 福建省福清市 2222.12345

在这里插入图片描述

六、删(DELETE)操作——删除已有记录

当某位员工离职或不再需要保留其信息时,可以使用 DELETE 语句从数据库中删除对应记录。

示例 SQL:删除员工并查询

-- 删除员工linda的信息
DELETE FROM EMPLOYEE 
WHERE NAME = 'linda';

-- 查询员工表,查看删除结果
SELECT * FROM EMPLOYEE;

说明

  1. DELETE 语句

    • WHERE NAME = 'linda':指定删除条件,只删除名字为 linda 的员工记录;

    注意:如果没有 WHERE 条件,整张表的所有记录都会被删除,需谨慎操作。

  2. SELECT 查询

    • 紧跟 DELETE 后查询,可以立即验证删除结果;
    • DAS 支持一次执行多条 SQL 语句,使用分号分隔即可。

执行效果

执行后,员工表中 linda 的记录将被删除,其余员工信息保持不变。例如:

id dept_id name age address salary
100 0 bob 31 福建省福州市台江区 1234.56
101 1 tina 25 福建省福州市鼓楼区 999.00
102 1 tom 38 福建省三明市 9.00

在这里插入图片描述

至此,我们已经完成了 GaussDB 的增删改查(CRUD)操作示例,包括:

  • 增(INSERT):插入员工和部门数据
  • 查(SELECT):关联查询员工及部门信息
  • 改(UPDATE):修改员工工资
  • 删(DELETE):删除员工记录

GaussDB数据库增删改查总结

通过本文的示例,我们系统掌握了 GaussDB 的增删改查(CRUD)操作。首先,在建表阶段,通过合理设计员工表(EMPLOYEE)和部门表(DEPARTMENT)的字段、数据类型及约束,不仅保证了数据完整性,还为后续的关联查询和业务操作打下了基础。

增(INSERT)操作 中,我们学会了如何向表中插入单条或多条记录,并利用 DAS 批量执行 SQL 语句快速初始化数据。在 查(SELECT)操作 中,通过 INNER JOIN 实现员工与部门的关联查询,并结合条件筛选,使数据查询更加精准与高效。

对于 改(UPDATE)和删(DELETE)操作,我们掌握了根据条件修改或删除指定记录的方法,同时注意避免遗漏 WHERE 条件而导致误操作。通过这些操作,开发者可以高效地管理和维护 GaussDB 数据库中的业务数据。

总的来说,熟练掌握增删改查操作不仅是日常数据库管理的基础,也是充分发挥 GaussDB 分布式、高可用、高性能优势的前提,为企业业务提供可靠的数据支撑。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。