-
数据库对象命名
数据库对象命名需要满足约束:长度不超过63个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$、#。
【建议】避免使用保留或者非保留关键字命名数据库对象。可以使用select * from pg_get_keywords()查询GaussDB(DWS)的关键字。
【建议】避免使用双引号括起来的字符串来定义数据库对象名称,除非需要限制数据库对象名称的大小写。数据库对象名称大小写敏感会使定位问题难度增加。
【建议】数据库对象命名风格务必保持统一。
增量开发的业务系统或进行业务迁移的系统,建议遵守历史的命名风格。 数据库对象名称由字母、数字和下划线组成,并且不能由数字开头。建议使用多个单词组成,以下划线分割。
数据库对象名称最好能够望文知意,尽量避免使用自定义缩写(可以使用通用的术语缩写进行命名)。例如,在命名中可以使用具有实际业务含义的英文词汇或汉语拼音,但规则应该在集群范围内保持一致。
变量名的关键是要具有描述性,即变量名称要有一定的意义,变量名要有前缀标明该变量的类型。
【建议】表对象的命名应该可以表征该表的重要特征。例如,在表对象命名时区分该表是普通表、临时表还是非日志表:
– 普通表名按照数据集的业务含义命名。
– 临时表以“tmp_+后缀”命名。
– 非日志表以“ul_+后缀”命名。
– 外表以“f_+后缀”命名。 -
数据库对象设计
【建议】在实际业务中,根据需要创建新的Database,不建议直接使用集群默认的postgres数据库。
【建议】一个集群内,用户自定义的Database数量建议不超过3个。为方便数据库管理,最好只有1个自定义的Database.
【建议】为了适应全球化的需求,使数据库编码能够存储与表示绝大多数的字符,建议创建Database的时候使用UTF-8编码。
【关注】创建Database时,需要重点关注字符集编码(ENCODING)和兼容性(DBCOMPATIBILITY)两个配置项。GaussDB(DWS)支持Oracle、Teradata和MySQL三种兼容模式,分别兼容Oracle、Teradata和MySQL语法,不同兼容模式下的语法行为可能有一些差异。
【关注】Database的owner默认拥有该Database下所有对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。 -
encoding介绍
指定数据库使用的字符编码,可以是字符串(如’SQL_ASCII’)、整数编号。不指定时,默认使用模版数据库的编码。模板数据库template0和template1的编码默认与操作系统环境相关。template1不允许指定字符编码,因此若要创建数据库时指定字符编码,请使用template0创建数据库。即如果需要指定encoding,需要和template参数搭配使用,且template取值为template0。
常用取值:GBK、UTF8、Latin1。 -
DBCOMPATIBILITY 介绍
指定兼容的数据库的类型。取值范围:ORA、TD、MySQL。分别表示兼容Oracle、Teradata和MySQL数据库。若不指定该参数,默认为ORA。 -
database创建
su - omm
source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile
gsql -d postgres -h 192.168.30.129 -U dbadmin -W dbadmin@123 -p 25308 -r
select * from pg_database;
CREATE DATABASE dwsmonitor WITH ENCODING = 'UTF8' TEMPLATE = template0 DBCOMPATIBILITY = 'TD';
select * from pg_database;
\q
gsql -d dwsmonitor -h 192.168.30.129 -U dbadmin -W dbadmin@123 -p 25308 -r
\q
- database创建案例