前言
整理了一下postgresql的常用操作,便于学习记录,也希望可以帮到刚开始学习postgresql的同学。好记性,不如烂笔头!
--postgresql常用操作
--创建表
create table if not exists public.user_info(
id character varying(64),
salary numeric(18,2),
created_date timestamp without time zone,
request_info json,
response_info json,
grow_day bigint,
is_del character varying(2),
CONSTRAINT user_info_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE public.user_info IS '用户信息表';
COMMENT ON COLUMN public.user_info.id IS '主键id';
COMMENT ON COLUMN public.user_info.salary IS '薪水';
COMMENT ON COLUMN public.user_info.created_date IS '创建日期';
COMMENT ON COLUMN public.user_info.request_info IS '请求参数';
COMMENT ON COLUMN public.user_info.response_info IS '响应参数';
COMMENT ON COLUMN public.user_info.grow_day IS '成长天数';
COMMENT ON COLUMN public.user_info.is_del IS '是否删除';
--创建索引 (此次忽略主键已有索引,只是讲语法)
create index if not exists idx_id on public.user_info using btree(id);
--修改表字段类型
alter table user_info alter column status type character varying(1);
--批量插入
insert into user_info(
id,salary,created_date,request_info,response_info,is_del
)values(
'1',
100,
now(),
'100'::json,
'100'::json,
'N'
)
,(
'2',
100,
now(),
'100'::json,
'100'::json,
'N'
);
--更新
update user_info set salary='1000' where id ='1';
--授权
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.user_info TO testopr;
GRANT ALL ON SEQUENCE seq_asset_fa_interface TO pclaimzcopr;
--删除索引
drop index if exists user_info_pkey;
--新增字段
alter table public.user_info add column sex character varying(2);
--新增字段可重复执行
alter table user_info add COLUMN if NOT EXISTS desc character varying(32);
--删除列
alter table user_info drop column sex;
--表字段重命名
alter table user_info rename is_del to status;
--删除表
drop table user_info;
--创建序列 提高cache值可增加查询效率 但如果断电或其他原因可能导致生成的序列不连续
create sequence if not exists public.seq_user_info
increment by 1
minvalue 1
maxvalue 9999999999
start with 1
cache 1;
--序列授权
GRANT ALL ON SEQUENCE seq_user_info TO testopr;
--删除序列
DROP SEQUENCE public.seq_user_info;
--查询
select * from user_info where id ='1';
登录数据库
/* 切换到数据库用户 */
su - postgres
/* 登录 */
psql
切换数据库
/* 登录指定数据库 */
psql -U user -d dbname
/* 列举数据库 */
\l
/* 切换数据库 */
\c dbname
用户管理
/* 创建用户 */
CREATE ROLE rolename;
CREATE USER username WITH PASSWORD ‘*****’;
/* 显示所有用户 */
\du
/* 修改用户权限 /
ALTER ROLE username WITH privileges;
/ 赋给用户表的所有权限 /
GRANT ALL ON tablename TO user;
/ 赋给用户数据库的所有权限 */
GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
/* 撤销用户权限 */
REVOKE privileges ON tablename FROM user;
/* 给一个字段设置缺省值 */
alter table [表名] alter column [字段名] set default [新的默认值];
/* 去除缺省值 */
alter table [表名] alter column [字段名] drop default;