当前位置: 首页 > 工具软件 > Postgre-SQL > 使用案例 >

postgre sql常用语法

柴泰平
2023-12-01
  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’);

 类似资料: