postgresql 命令
# 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