postgre sql常用语法

  1. 删除表格
    DROP TABLE table_name;

  2. 新增字段
    ALTER TABLE IF EXISTS table_name ADD COLUMN column_name datatype;
    datatype可以为比如 varchar(255),int4,text这些。
    需要新增多列时:
    ALTER TABLE IF EXISTS table_name ADD COLUMN column_name1 datatype1,ADD COLUMN
    column_name2 datatype2;
    为了防止新增的列重复,也可以写为下面这样
    ALTER TABLE IF EXISTS table_name ADD column IF NOT exists column_name datatype;

  3. 删除列
    ALTER TABLE IF EXISTS table_name drop column column_name1 ,drop column column_name2;

  4. 重命名表
    ALTER TABLE IF EXISTS old_table_name RENAME TO new_table_name;

  5. 重命名表字段
    ALTER TABLE table_name rename old_column_name to new_column_name ;

  6. 复制一张表数据到另一张表
    SELECT * INTO target_table_name FROM source_table_name;

  7. 复制数据到另一张表并做部分改动
    INSERT INTO target_table_name(column1, column2, column3,…columnN) SELECT t.column1, t.column2, t.column3,…t.columnN FROM source_table_name t
    防止主键冲突:(假设column1为主键)
    INSERT INTO target_table_name(column1, column2, column3,…columnN) SELECT t.column1, t.column2, t.column3,…t.columnN FROM source_table_name t WHERE NOT EXISTS(SELECT column1 FROM target_table_name WHERE v.column1 = target_table_name.column1)
    如果向所有字段插入值,可以不需要指定字段:
    INSERT INTO target_table_name SELECT t.column1, t.column2,’’ as column3,…‘xxx’ as columnN FROM source_table_name t

  8. 查询另一张表中的某字段并给该表的字段赋值
    UPDATE target_table_name SET column_name =(SELECT column_name2 FROM source_table_name v WHERE v.p_key_column=target_table_name.f_key_column) where exists(SELECT column_name2 FROM source_table_name v WHERE v.p_key_column=target_table_name.f_key_column);
    示例:
    如果子任务表中的id和主任务表中的sub_id相同,那么将子任务表中的某个字段设为主任务表中某个字段的值。首先要确认在子任务表中能比中ID,然后再把source_table_name表中的column_name2的值设为target_table_name中column_name的值。

  9. 创建自增索引
    创建索引:
    CREATE SEQUENCE table_name_i_id_seq INCREMENT 1 START 1;
    设置到表:
    ALTER TABLE table_name ALTER COLUMN i_id SET default nextval(‘table_name_i_id_seq’);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值