华为高斯GaussDB入门教程:数据库实例、gsql客户端与建表示例解析【华为根技术】
华为高斯GaussDB入门教程:数据库实例、gsql客户端与建表示例解析【华为根技术】
一、前言
GaussDB 是华为自研的分布式关系型数据库,具备高可靠性、强扩展性和高安全性,广泛应用于金融、电信、政企等关键业务场景。对于初学者来说,掌握 如何创建GaussDB实例并通过gsql客户端进行连接,是入门GaussDB的第一步。本文将带你从零开始,完成实例的创建与连接操作。
二、整体操作流程
使用GaussDB的标准流程如下:
- 创建数据库实例:在管理控制台申请GaussDB实例。
- 创建ECS云服务器:作为客户端环境,安装并运行gsql工具。
- 下载驱动包:获取对应版本的客户端工具。
- 使用gsql连接数据库:完成非SSL或SSL模式下的数据库连接。
三、创建GaussDB实例
1. 登录管理控制台
进入华为云 实例管理页面,单击 创建数据库实例。
2. 配置实例信息
在创建数据库时,可以配置以下关键参数:
-
数据库名(Database Name)
用户自定义的新数据库名称。 -
字符集(Encoding)
数据库支持以下 4 种字符集:UTF8
GBK
LATIN1
SQL_ASCII
-
模板(Template)
新数据库是通过复制模板数据库生成的。- 系统默认包含
template0
、template1
两个模板,以及一个默认用户数据库gaussdb
。 - 默认情况下,系统会基于
template1
创建新数据库。 - 注意:不能指定
gaussdb
作为模板。
- 系统默认包含
-
排序规则(Collation)
定义字符串比较的规则,默认值为en_US.utf8
。-
例如,在
en_US.utf8
下:SELECT 'a' > 'A'; -- 结果为 false
-
而在
C
排序规则下:SELECT 'a' > 'A'; -- 结果为 true
-
若从 Oracle 迁移数据到 GaussDB(DWS),建议选择
C
排序规则以保持一致的比较结果。 -
支持的排序规则可通过系统表
pg_collation
查询。
-
-
字符分类(Ctype)
控制字符的分类方式(LC_CTYPE),影响大小写和数字的识别。
默认继承所选模板数据库的字符分类。 -
兼容模式(DBCOMPATIBILITY)
指定新数据库的兼容模式,可选值包括:MySQL
TD
(Teradata)Oracle
四、创建ECS云服务器
GaussDB的命令行工具 gsql
需要运行在ECS上。
-
在管理控制台选择 计算 > 弹性云服务器。
-
配置基础信息:
- 企业项目:与GaussDB实例保持一致。
- 可用区:保持一致。
- 镜像:选择公共镜像,如
EulerOS
。 - VPC、网卡、安全组:与GaussDB实例一致。
-
不使用弹性公网IP(通过内网访问数据库)。
-
点击 立即申请,完成ECS创建。
五、获取并安装gsql客户端
-
在管理控制台下载驱动包,上传到ECS的
/tmp/tools
目录。 -
解压并配置环境变量:
mkdir /tmp/tools cd /tmp/tools tar -zxvf gsql_driver.tar.gz cp GaussDB-Kernel_***_EULER_64bit-Gsql.tar.gz /tmp/tools tar -zxvf GaussDB-Kernel_***_EULER_64bit-Gsql.tar.gz # 配置环境变量 echo 'export PATH=/tmp/tools/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/tmp/tools/lib:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
六、连接数据库
1. 非SSL连接
使用如下命令连接数据库:
gsql -d postgres -h 10.0.0.0 -U root -p 8000
参数说明:
-d postgres
:数据库名称,默认是postgres
。-h 10.0.0.0
:实例的内网IP。-U root
:数据库用户。-p 8000
:数据库端口号。
系统提示输入密码后,即可进入数据库交互界面。
2. SSL连接
如果需要安全连接,需要额外配置证书。
-
下载根证书并上传至ECS。
-
配置环境变量:
export PGSSLMODE="verify-ca" export PGSSLROOTCERT="/home/user/ca.pem" gsql -h 10.0.0.0 -p 8000 -d postgres -U root
-
输入密码后,如果提示如下信息,说明SSL连接成功:
SSL connection (cipher: DHE-RSA-AES256-GCM-SHA384, bits: 256)
七、建表
创建员工表示例
我们可以使用以下 SQL 语句在 GaussDB 中创建一个 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 | PRIMARY KEY NOT NULL | 员工唯一标识,主键 |
DEPT_ID | INT | NOT NULL | 员工所属部门ID |
NAME | TEXT | NOT NULL | 员工姓名 |
AGE | INT | NOT NULL | 员工年龄 |
ADDRESS | CHAR(50) | 可为空 | 员工地址,固定长度50字符 |
SALARY | REAL | 可为空 | 员工薪资 |
说明
-
主键约束(PRIMARY KEY)
ID
字段作为员工表的唯一标识。- GaussDB 会自动为主键创建唯一索引。
-
数据类型选择
INT
:整数类型,用于ID或年龄。TEXT
:变长文本,用于存储姓名。CHAR(n)
:固定长度字符,适合存储长度固定的字段,如地址。REAL
:单精度浮点数,用于存储薪水或小数数据。
-
NOT NULL约束
- 强制字段必须填写,避免出现空值。
创建部门表示例
CREATE TABLE DEPARTMENT (
ID INT PRIMARY KEY NOT NULL, -- 部门ID,主键且不能为空
DEPT CHAR(50) NOT NULL -- 部门名称,固定长度50字符,不能为空
);
字段说明
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
ID | INT | PRIMARY KEY NOT NULL | 部门唯一标识,主键 |
DEPT | CHAR(50) | NOT NULL | 部门名称 |
说明
-
主键约束
ID
字段作为部门的唯一标识,保证部门不会重复。
-
字符类型
CHAR(50)
:固定长度字符,适合存储部门名称。
-
NOT NULL约束
- 确保每个部门都有名称。
在员工表中建立外键约束
为了保证数据完整性,我们可以让员工表的 DEPT_ID
字段引用部门表的 ID
字段:
ALTER TABLE EMPLOYEE
ADD CONSTRAINT fk_employee_dept
FOREIGN KEY (DEPT_ID) REFERENCES DEPARTMENT(ID);
这样可以确保 每个员工的部门ID必须存在于部门表中。
总结
GaussDB作为华为自研的高性能分布式关系型数据库,凭借其高可靠性、强扩展性和安全性,在金融、电信及政企等关键业务场景中广泛应用。对于初学者而言,掌握从实例创建、ECS环境配置、gsql客户端连接到建表操作的完整流程,是顺利使用GaussDB的第一步。通过本文的示例操作,用户不仅可以快速上手,还能理解数据库设计中的字符集、排序规则、主键与外键约束等关键概念,为后续的数据库开发与管理打下坚实基础。
- 点赞
- 收藏
- 关注作者
评论(0)