首页 > 数据库 >PostgreSQL的常用DDL操作语句

PostgreSQL的常用DDL操作语句

时间:2022-12-02 12:22:43浏览次数:46  
标签:语句 PostgreSQL name -- id DDL table my TABLE

1.建表、删除表的DDL语句

CREATE TABLE IF NOT EXISTS "my_table"
(
  id SERIAL NOT NULL,
  name varchar(255) NOT NULL,
  age varchar(255) NOT NULL,
  dr int2 DEFAULT 0,
  PRIMARY KEY (id)
);

--删除表
DROP TABLE IF EXISTS "my_table";

2.字段的增删改

--新增字段
ALTER TABLE my_table ADD COLUMN remark VARCHAR(200);

--删除表字段
ALTER TABLE my_table DROP COLUMN remark;

--修改列类型和长度
ALTER TABLE my_table ALTER COLUMN remark TYPE VARCHAR(500);

--修改列名
ALTER TABLE my_table RENAME COLUMN remark TO remark2;

3.添加注释

--修改表注释
COMMENT ON TABLE my_table IS '表注释';

--修改字段注释
COMMENT ON COLUMN my_table.name IS '字段注释名称';

4.创建索引

--建普通索引(索引名通常为 idx_表名_字段名)
CREATE INDEX IF NOT EXISTS idx_my_table_age ON my_table USING btree (age);

--建唯一索引
CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS idx_unique_my_table_id ON my_table (id);

--组合索引
CREATE INDEX IF NOT EXISTS index_name ON table_name (column1_name, column2_name);

--删除索引
DROP INDEX IF EXISTS idx_unique_my_table_id;

--新增主键
ALTER TABLE my_table ADD CONSTRAINT custom_name_of_my_table_id PRIMARY KEY (id);

5.创建序列

CREATE SEQUENCE IF NOT EXISTS id_no START 10000;

6.分配数据库表权限给用户

--赋予用户表权限
ALTER TABLE my_table OWNER TO user_name;

--赋予用户所有表权限
GRANT ALL ON my_table TO user_name;

-- 赋予用户表的增删改查权限
GRANT INSERT,UPDATE,DELETE,SELECT ON my_table TO user_name;

--将此表的SELECT权限赋给所有用户
GRANT SELECT ON my_table TO PUBLIC;

--赋予demo_role所有表的SELECT权限
GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC to user_name;

 

标签:语句,PostgreSQL,name,--,id,DDL,table,my,TABLE
From: https://www.cnblogs.com/jiaopeng2009/p/16944075.html

相关文章