postgresql常使用的sql笔记

前言

	整理了一下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;

猜你喜欢

转载自blog.csdn.net/hbn1326317071/article/details/91489717
今日推荐