postgresql 命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cn_yaojin/article/details/85228612

# Postgresql 创建主键并设置自动递增

# 重置id自增起始 值(从1开始)
alter sequence fame_queue_id_seq restart with 1

# 方法一
  SERIAL:加此关键字代表递增
  PRIMARY KEY:主键

# 方法二
  
# 建表
  create table test_c 
  (
   id integer PRIMARY KEY,
   name character varying(128)
  );

# 创建序列
  CREATE SEQUENCE test_c_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

# 将表test_c 的id设置为自增长
  alter table test_c alter column id set default nextval('test_c_id_seq');

# 时间函数
  current_timestamp
  
  插入示例:insert into demo (add_time) values(current_timestamp)
  
  查询格式化示例:select to_char(d.add_time,'YYYY-MM-DD HH24:MI:SS') from department d 

  sql 中如何将字符串时间转换为timestamp 时间戳
  register_time >= to_timestamp(#{draw_time1}, 'YYYY-MM-DD HH24:MI:SS') and to_timestamp(#{draw_time2},'YYYY-MM-DD HH24:MI:SS') > register_time


# ifnull 判断然后赋予默认值
  select  coalesce(column,0) as column from table

# postgresql 查询连接数
  select * from pg_stat_activity;

# 修改数据类型
alter table tb101 alter id type int using id::int;


# centos7 数据库安装

# 1. yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
# 2. yum install postgresql10
# 3. yum install postgresql10-server
# 4. 初始化数据库,并设置开启自启动
     /usr/pgsql-10/bin/postgresql-10-setup initdb
     systemctl enable postgresql-10 (启动服务器)
     systemctl start postgresql-10 (开启自启动)

# 5. PostgreSQL安装后会创建一个用户,名为postgres
# 输入 su - postgres 并回车,切换至用户
# 输入 psql -U postgres 并回车,登录数据库
# 输入 ALTER USER postgres with encrypted password 'abc123';(不要漏了“;”)并回车,设置默认用户postgre的密码,此处密码为abc123,可自行修改
# 查看新的数据目录:show data_directory;
# 输入\q并回车, 退出数据库
# 输入exit并回车,退出用户。 

# 启动数据库
  service postgresql-10 start
  service postgresql-10 stop

# 迁移数据库开始

# 找到postgresql-10.service所在目录:
      /usr/lib/systemd/system/postgresql-10.service  该文件中,Environment 表示数据存放目录

# 拷贝数据存放目录到指定地方     
cp -rf /var/lib/pgsql/10/ /data/database/pgsql

# 设置新目录的权限
sudo chown -R postgres:postgres /data/database/pgsql
sudo chmod 700 /data/database/pgsql

# 重载:systemctl daemon-reload


# postgresql 配置访问的ip

# 1. 修改配置文件:postgresql.conf    默认地址:vim /usr/local/pgsql/data/postgresql.conf
# 2. 修改监听地址:
    #listen_addresses='localhost'
    #将上面这行改成如下
    listen_addresses='*'
# 3. 修改配置文件:pg_hba.conf  与postgresql.confg在同一个目录
     添加一条IP授权记录(如192.168.2.23),可以对一个网段授权
     # 这是在/pgsql/data/pg_hba.conf文件里加
     # IPv4 myhost connections:
     host    all         all         192.168.2.0/24          trust(password)
     第一个 all 是指所有数据库
     第二个 all 是指所有用户
     192.168.2.0/24 表示 192.168.2.0 -192.168.2.255 网段的所有地址都可以访问

# postgresql 权限管理

# 1. 创建新用户,如 dbuser:
    CREATE USER dbuser WITH PASSWORD '123456';

# 2. 创建新的数据库,该数据库属于dbuser用户:
    CREATE DATABASE lmmr OWNER dbuser;

# 3. 将新数据库的所有权限分配给dbuser用户:
    GRANT ALL PRIVILEGES ON DATABASE lmmr TO dbuser;

# 4. 将某角色权限赋予给某用户:
    GRANT "group" TO guest; //将group权限分配给guest用户

# 5. 将某数据库所有权限分配给某用户:
    grant all on database lmmr to dbuser;
    grant all on all tables in schema public to dbuser; // 起作用的是这句 要进入crm_db 操作,在那个db环境执行就授哪个db的权

切换数据库,相当于mysql的use dbname
\c dbname
列举数据库,相当于mysql的show databases
\l
列举表,相当于mysql的show tables
\dt
查看表结构,相当于desc tblname,show columns from tbname
\d tblname
查看索引 
\di
查看角色
\du


# 导入数据:
psql -U postgres -d fame -f D:/fame.sql

猜你喜欢

转载自blog.csdn.net/cn_yaojin/article/details/85228612