postgresql常见的DDL和DML操作

常用DDL操作者

1.创建数据库,模式,表

-- 创建数据库,默认模板是template1
create database db_name  [owner to use_name];

-- [为某个用户]创建模式
create schema sm_name [authorization user_name];

-- 创建表
create table tb_name(col1_name [primary key],data_type,col2_name,data_type,col3_name,data_type,...);

2.修改表结构

-- 增加字段
alter table tb_name add colum col1_name data_type;

-- 增加约束
alter table tb_name  add check(expression);

-- 删除字段
alter table tb_name drop colum col1_name;

-- 删除约束
alter table tb_name drop constraint constraint_name;

-- 删除非空/默认约束条件
alter table tb_name alter column col_name drop null / default;

-- 修改默认值(不会影响现有的行,影响之后插入的数据行)
alter table tb_name alter column col_name set default data;

-- 修改字段类型
alter table tb_name alter column col_name type col_type;

-- 重命名字段名
alter table tb_name rename column col_name to new_col_name;

3.删除数据库,模式,表

-- 删除数据库(如果还有用户连接在这个数据库上,将无法删除该数据库)
drop database db_name;

-- 删除某模式,删除之前要将所有依赖清理掉,否则无法删除
drop schema schema_name;

-- 删除表
drop table  table_name;

-- 清空表数据
truncate table table_name;

4.索引相关的修改

-- 创建普通索引索引
create index index_name on tb_name(col);

-- 创建唯一索引
create unique index index_name on tb_name(col);

-- 创建表达式索引
create index index_name on tb_name(expression); 

-- 创建部分索引
create index index_name on tb_name(col) where col ....; 

-- 删除索引
drop index index_name;

常用DML操作

1.查询当前路径或当前用户

-- 查询当前搜索路径
show search_path;

-- 设置当前会话为指定模式的搜索路径
set search_path=test;
set search_path="$user",public,test;

-- 查看当前用户
select current_user;

-- 查看当前所有连接用户
select * from current_user;

2.查看数据库或表等大小

-- 查看数据库相关信息大小
select pg_database_size(oid);
select pg_database_size(name);

-- 查看表索引大小
select pg_indexes_size(regclass); -- oid或者表名

-- 查看表的大小
select pg_table_size(regclass);

3.查看表结构

-- 查看某个表结构
SELECT a.attnum,
       a.attname AS field,
       t.typname AS type,
       a.attlen AS length,
       a.atttypmod AS lengthvar,
       a.attnotnull AS notnull,
       b.description AS comment
  FROM pg_class c,
       pg_attribute a
       LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,
       pg_type t
 WHERE c.relname = 'table_name'  -- 表名
       and a.attnum > 0
       and a.attrelid = c.oid
       and a.atttypid = t.oid
 ORDER BY a.attnum

4.其他查询

-- 控制查询,分页查询
select * from tb_name limit n;

-- 查询返回行,跳过m行
select * from tb_name limit n offset m; 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 达梦数据库和MySQL数据库可以使用如下方法进行增量同步: 1. 使用数据库内置的复制功能:达梦数据库提供了多种复制方式,包括基于SQL语句的复制、基于数据文件的复制、基于日志文件的复制等。这些复制方式可以在不停机的情况下进行数据库的增量同步。 2. 使用第三方的数据库同步工具:市面上有很多专门用于数据库增量同步的工具,如Navicat、Ora2pg等,这些工具可以跨越不同数据库类型之间进行数据库同步。 3. 使用编程语言进行数据库同步:可以使用编程语言,如Java、Python等,通过数据库的API来实现数据库的增量同步。 无论使用哪种方式,都需要确保数据的一致性,在同步过程中应避免数据的丢失或冲突。 ### 回答2: 达梦数据库与MySQL数据库可以通过使用数据同步工具来实现增量同步。 首先,需要安装并配置好数据同步工具。常用的数据同步工具有Maxwell、Canal等。这些工具可以监听MySQL数据库的binlog,并实时将变更数据写入到达梦数据库中。 其次,需要在达梦数据库中创建与MySQL数据库相同的表结构。可以通过使用DDL语句在达梦数据库中创建表,并保持和MySQL数据库中表的结构一致。 然后,需要配置数据同步工具的参数,确保工具能够正确地连接到MySQL数据库和达梦数据库。配置参数包括MySQL和达梦数据库的连接地址、用户名、密码等。 最后,启动数据同步工具,它会监听MySQL数据库的binlog,并将变更数据实时写入到达梦数据库中。当MySQL数据库中有数据变更时,数据同步工具会自动将变更同步到达梦数据库中,实现增量同步的功能。 在实际应用中,可以根据需求设置同步的粒度和同步的频率。可以选择全量同步和增量同步的方式,以及定时或实时同步的频率,以满足具体业务需求。 需要注意的是,在进行数据同步前,需要确保达梦数据库中没有与MySQL数据库冲突的数据。此外,在数据同步过程中,需要保证源数据库和目标数据库的一致性,以避免数据不一致的问题。 总之,通过以上步骤和配置,就可以实现达梦数据库与MySQL数据库的增量同步。 ### 回答3: 达梦数据库与MySQL数据库之间的增量同步可以通过数据复制的方式实现。以下是一个基本的步骤: 1. 配置MySQL数据库:首先,在MySQL数据库中创建一个具有复制权限的用户,并分配适当的权限。添加以下参数到MySQL配置文件(my.cnf)中,启用二进制日志记录: ``` log-bin=mysql-bin binlog-format=ROW server-id=1 ``` 2. 配置达梦数据库:在达梦数据库的配置文件(dm.ini)中启用增量日志功能,并指定需要同步的表: ``` [INCREMENTAL LOG] ENABLED=TRUE TABLES=table1, table2, ... ``` 3. 安装数据同步工具:下载并安装MySQL到达梦数据库的数据同步工具,如Data Sync工具。 4. 配置数据同步工具:在数据同步工具中,设置源数据库为MySQL,目标数据库为达梦数据库。指定需要同步的表和字段映射关系,并启用增量同步选项。 5. 初始化同步:使用数据同步工具执行初始同步操作,将MySQL数据库中的数据复制到达梦数据库。 6. 启动增量同步:在数据同步工具中启动增量同步功能。这将监视MySQL数据库的二进制日志并捕捉变更,然后将其应用到达梦数据库中。 需要注意的是,达梦数据库和MySQL数据库之间的增量同步可能会面临一些挑战,例如数据类型转换、主键冲突等问题。确保在同步过程中进行适当的数据验证和测试,并根据具体情况调整配置和映射关系,以确保数据的准确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值