GaussDB命令行连接
1.1 ssh连接主机,IP:192.168.28.178,用户名:root,密码:Huawei @123
1.2 切换至bin目录,cd /home/gaussdba/app/bin/
1.3 切换用户为gaussdba,su gaussdba
1.4 连接gaussDb,gsql -d postgres -p 5432
基本操作命令
\l 列出所有数据库
\c database_name 切换数据库
\d 列出当前数据库下的表
\d tablename 列出指定表的所有字段
\d+ tablename 查看指定表的基本情况
\dn 展示当前数据库下所有schema信息
SHOW search_path; 显示当前使用的schema
SET search_path TO myschema; 切换当前schema
\q 退出登录
mysql数据迁移至gaussDB
1. 导出mysql数据
show variables like '%secure%' 查询出secure_file_priv地址;
在secure_file_priv地址下mkdir aaa;
修改文件权限chmod -R 777 aaa;
select * from i18n_message into outfile '/tmp/etl/temp.dat' fields terminated by ''';
2. 下载数据并上传至GaussDb服务器
3. 导入gaussDb
COPY I18N_MESSAGE FROM '/home/gaussdba/app/bin/temp.dat' WITH DELIMITER '''';
切换gaussDb中遇到的问题
1. 执行出现如下错误:column "TASK.TASK_ID" must appear in the GROUP BY clause or be used in an aggregate function ,原因
是:select的字段与Group by中的字段要一致或不一致的字段必须使用聚合函数;
2. MySQL中的ifnull函数用nvl函数替换;
3. limit 0,10 ---------->limit 10 offset 0;
4. find_in_set(operator, '1096,789') ---------->operator ~ concat('(', replace('1096,789', ',', '|'), ')');
5. 不支持uuid(),可以自定义UUID函数,
CREATE OR REPLACE FUNCTION UUID()
RETURNS TEXT AS $$
BEGIN
RETURN to_number(now()::text,'99999999999999999999999999999999999999999999999');
END;
$$ LANGUAGE plpgsql;
ALTER FUNCTION UUID() OWNER TO GAUSSDBA;
6. 字符串不能用双引号""括起来,只能用单引号'',例如:SELECT "" as local_path ----------->SELECT '' as local_path
7. INSERT INTO ON DUPLICATE KEY ------------>REPLACE INTO
8. 模糊查询,LIKE:区分大小写,ILIKE:不区分大小写,MySQL中查询默认不区分大小写,所以可以用ILIKE替换
9. GaussDB中认为null和空字符''是一样的,不支持a=''这种空字符判断,必须写成a is null
10. GaussDB中字符串比较时,注意字段类型要一致,例如CHAR是定长的,不足的补空格,和VARCHAR类型比较时就会有问题
11. 单引号'转义,用一个单引号转义另一个'',例如xi''an
1、连接
gsql -h 171.44.xxx.xxx -p 25108 -d dlp_user -U dlp -W 1234@ 登录
2、编码
show server_encoding; 查看当前数据库编码
3、搜索路径
show search_path; 查看模式搜索路径,无论如何搜索路径前两个一定是pg_temp和pg_catalog
set search_path to my_schema,public; 将my_schema,public两个模式加入搜索路径
4、模式
select current_schema; 查看数据库当前模式
set current_schema=my_schema; 设置当前数据库模式。
\dn 查看所有模式及其所有者
create schema my_schema authorization dlpuser; 创建schema并指定owner
用户只能访问属于自己schema中的数据库对象,若要访问其他人的schema中数据库对象则必须具有该schema的usage权限。
5、用户
select * from pg_user; 查看当前数据库用户
create user joe with password '123456';
6、数据库
select datname from pg_database; 查看数据库列表
create database my_database template template0; 参考template0新建数据库(默认template1)
7、表
select * from pg_tables; 查看当前数据库拥有的表
select * from dba_tab_partitions; 查看当前数据库拥有的分区表
\d+ my_schema.t_emp; 查看表的属性
select * from my_schema.t_emp_partition partition(p1); 查看分区表P1分区数据
create table my_schema.t_emp(id int) --可以set current_schema来指定schema.不指定schema默认使用public模式
with(orientation=column,compression=middle) --指定列存和压缩级别
distribute by hash(id); --指定分布方式,也可以是replication\round robin(仅适用于外表)
--未指定分布列,系统会自动选择一个类型符合要求的作为分布列。
8、视图
select * from dba_views; 查看所有视图
select * from user_views; 查看当前用户下的视图
\d+ my_schema.my_view; 查看视图的属性
create or replace view my_view select * from t1;
9、索引
select relname from pg_class where relkind='i'; 查看系统和用户定义的所有索引
\di+ my_schema.my_index; 查看索引的属性
create index my_index on my_schema.t_emp(id); 建立索引,可以多个字段,逗号分隔
可以创建索引的列:
1、经常查询的。
2、主键列。
3、连接列。
4、过滤列。
5、排序列。
6、分组列。
7、去重列。
如果使用索引比使用顺序查询更快,就会自动使用索引。
10、序列
序列sequence自增不重复,所以常用作主键。
create table t1(id serial); serial为4字节序列整型,后台会自动创建并维护一个序列。
先创建序列再使用序列:
create sequence seq [cache 100]; cache慎用,否则序列可能不连贯自增
create table t2(id int default nextval('seq'));
alter sequence seq owned by t2.id; 将字段和序列关联,删除字段或表序列也删除
每一次新的序列值的产生都由GTM维护,GTM作为全局唯一节点,可能存在性能瓶颈。
多节点下只有GTM上和最近更新序列值的节点上的序列值是最新的。
高斯数据库应用
1.其他数据库:not like all(‘A%’,‘a%’)
对应高斯数据库:not like all ( array[A%’,‘a%’])
2.在高斯数据库中,qualify是无法识别的,需要转换为rownumber进行排序,然后利用where条件进行排序的筛选达到qualify的效果。
3.在高斯数据库中,substr的使用时,必须将参数写全,例如: substr(‘123’,1,2) 三个参数需写完整,replace也需要写全。
4.在高斯数据库中,汉字字符一个字符只占一个空位,所以在截取的时候按照普通的字符串截取即可。
5.在高斯数据库中,index函数不能使用,如需判断一个字符在字符串中的位置,可以使用instr进行判断,会返回第一个字符的位置。
6.在跑批高斯脚本中,于$decodepass后加上-e即可在获取日志时获得明细。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1296次阅读
2025-03-13 11:40:53
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1281次阅读
2025-03-06 16:45:38
2025年2月国产数据库大事记
墨天轮编辑部
1011次阅读
2025-03-05 12:27:34
2025年2月国产数据库中标情况一览:GoldenDB 3500+万!达梦近千万!
通讯员
892次阅读
2025-03-06 11:40:20
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
458次阅读
2025-03-13 14:38:19
AI的优化能力,取决于你问问题的能力!
潇湘秦
431次阅读
2025-03-11 11:18:22
优炫数据库成功应用于国家电投集团青海海南州新能源电厂!
优炫软件
343次阅读
2025-03-21 10:34:08
达梦数据与法本信息签署战略合作协议
达梦数据
295次阅读
2025-03-06 09:26:57
国产化+性能王炸!这套国产方案让 3.5T 数据 5 小时“无感搬家”
YMatrix
279次阅读
2025-03-13 09:51:26
磐维数据库对外门户全新升级!
磐维数据库
244次阅读
2025-03-04 15:32:59