登陸
輸入以下命令,嘗試登錄psql:
psql -U postgres
報告以下錯誤:
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres"
換成下面這個命令可以:
sudo -u postgres psql
#PostgreSQL默認會創建一個postgres的數據庫用戶作為數據庫的管理員
解決方法參考如下:
https://stackoverflow.com/questions/69676009/psql-error-connection-to-server-on-socket-var-run-postgresql-s-pgsql-5432
https://cloud.tencent.com/developer/ask/sof/107553576
登錄命令:
psql -h hostname -p portnumber -U username -d databasename
其中:-h 指定數據庫服務器的主機名或IP地址。
-p 指定數據庫服務器的端口號。默認端口號為5432。
-U 指定要登錄的數據庫用戶的用戶名。
-d 指定要連接的數據庫名。
導入SQL腳本 示例:
psql -U postgres -d database -f sqlScript.sql
將sqlScript.sql導入到名為database的數據庫中
常用命令
# 創建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入數據
INSERT INTO user_tbl(name, signup_date) VALUES('張三', '2013-12-22');
# 選擇記錄
SELECT * FROM user_tbl;
# 更新數據
UPDATE user_tbl set name = '李四' WHERE name = '張三';
# 刪除記錄
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加欄位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新結構
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 更名欄位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 刪除欄位
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 刪除表格
DROP TABLE IF EXISTS backup_tbl;
# 修改數據庫的名字
ALTER DATABASE oldName RENAME to newName
其他控制臺命令
\h:查看SQL命令的解釋,比如\h select。
\?:查看psql命令列表。
\l:列出所有數據庫。
\c [database_name]:連接其他數據庫。\c 可選參數 dbname [ username ] [ host ] [ port ] eg:\c postgres或者\c postgres username localhost 5432
\d:列出當前數據庫的所有表格。
\d [table_name]:列出某一張表格的結構。
\du:列出所有用戶。
\e:打開文本編輯器。
\conninfo:列出當前數據庫和連接的信息。
\dn:展示當前數據庫下所有schema信息
\q:斷開數據庫連接