华为高斯GaussDB数据库操作教程:插入、查询、更新与删除【华为根技术】
华为高斯GaussDB数据库操作教程:插入、查询、更新与删除【华为根技术】
背景
随着企业数据量的不断增长,对数据库的高性能、高可用性和可扩展性要求也越来越高。传统关系型数据库在处理海量数据时可能面临性能瓶颈,而华为自研的 GaussDB 提供了分布式、高可靠和安全的数据库解决方案,广泛应用于金融、电信、政企等关键业务场景。
在实际应用中,数据库的 增(Insert)、删(Delete)、改(Update)、查(Select) 操作是最常用的基本操作,也是业务系统数据管理的核心。熟练掌握这些操作能够帮助开发者更高效地管理和维护数据库中的数据。
什么是GaussDB数据库
GaussDB 是华为自主研发的分布式关系型数据库,具备以下特点:
- 高性能:支持大规模并行计算与事务处理,能够应对PB级别的数据存储与分析需求。
- 高可用:支持多副本部署和故障自动切换,保证系统的连续运行。
- 高扩展性:可按需水平扩展节点,满足业务增长对数据库容量和性能的要求。
- 安全可靠:提供数据加密、权限管理和审计功能,确保企业核心数据安全。
- 兼容性强:兼容 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 | 员工薪资 |
注意事项
-
主键约束:
ID
字段为主键,确保每条记录唯一。 -
非空约束:
ID
,DEPT_ID
,NAME
,AGE
必须有值。 -
数据类型选择:
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) | 部门名称 |
注意事项
-
主键约束:
ID
字段为主键,确保每个部门唯一。 -
非空约束:
ID
和DEPT
字段不能为空。 -
数据类型选择:
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 语句,操作步骤如下:
- 将多条 SQL 语句输入到执行窗体;
- 用分号(
;
)分隔每条 SQL 语句; - 点击 执行 按钮,DAS 会自动按顺序执行每条语句,并返回执行结果。
原理说明
DAS 对多条 SQL 的执行流程可以理解为:
- 拆分 SQL:系统根据分号将输入内容拆分为独立的 SQL 语句;
- 逐条执行:按照顺序依次向数据库发送执行请求;
- 结果返回:每条语句执行完毕后返回结果,并显示在执行窗体中。
这种方式可以一次性完成多条记录的插入,方便快速初始化数据库。
四、查(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;
说明
-
表别名:
EMPLOYEE
表用别名a
,DEPARTMENT
表用别名b
,使 SQL 更简洁。
-
INNER JOIN:
- 根据
EMPLOYEE.dept_id
与DEPARTMENT.id
进行关联; - 只返回匹配到的员工记录。
- 根据
-
筛选条件:
WHERE a.age < 100
用于过滤员工年龄小于 100 的记录。
-
查询结果:
- 输出员工的所有信息(
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;
说明
-
UPDATE 语句
SET SALARY = 2222.12345
:将SALARY
字段更新为新的工资值;WHERE NAME = 'linda'
:只修改NAME
为linda
的员工记录。
注意:如果没有
WHERE
条件,会更新整张表的所有记录,需谨慎使用。 -
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;
说明
-
DELETE 语句
WHERE NAME = 'linda'
:指定删除条件,只删除名字为linda
的员工记录;
注意:如果没有
WHERE
条件,整张表的所有记录都会被删除,需谨慎操作。 -
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 分布式、高可用、高性能优势的前提,为企业业务提供可靠的数据支撑。
- 点赞
- 收藏
- 关注作者
评论(0)