PostgreSQL commands

PostgreSQL commands

Access the PostgreSQL server from psql with a specific user:

1

psql -U [username];

For example, the following command uses the postgres user to access the PostgreSQL database server:

1

psql -U postgres

Connect to a specific database:

1

\c database_name;

For example, the following command connects to the dvdrental database:

1

2

\c dvdrental;

You are now connected to database "dvdrental" as user "postgres".

To quit the psql:

1

\q

List all databases in the PostgreSQL database server

1

\l

List all schemas:

1

\dn

List all stored procedures and functions:

1

\df

List all views:

1

\dv

Lists all tables in a current database.

1

\dt

Or to get more information on tables in the current database:

1

\dt+

Get detailed information on a table.

1

\d+ table_name

Show a stored procedure or function code:

1

\df+ function_name

Show query output in the pretty-format:

1

\x

List all users:

1

\du

Create a new role:

1

CREATE ROLE role_name;

Create a new role with a username and password:

1

CREATE ROLE username NOINHERIT LOGIN PASSWORD password;

Change role for the current session to the new_role:

1

SET ROLE new_role;

Allow role_1 to set its role as role_2:

1

GRANT role_2 TO role_1;

 

Managing databases

Create a new database:

1

CREATE DATABASE [IF NOT EXISTS] db_name;

Delete a database permanently:

1

DROP DATABASE [IF EXISTS] db_name;

 

Managing tables

Create a new table or a temporary table

1

2

3

4

5

6

CREATE [TEMP] TABLE [IF NOT EXISTS] table_name(

   pk SERIAL PRIMARY KEY,

   c1 type(size) NOT NULL,

   c2 type(size) NULL,

   ...

);

Add a new column to a table:

1

ALTER TABLE table_name ADD COLUMN new_column_name TYPE;

Drop a column in a table:

1

ALTER TABLE table_name DROP COLUMN column_name;

Rename a column:

1

ALTER TABLE table_name RENAME column_name TO new_column_name;

Set or remove a default value for a column:

1

ALTER TABLE table_name ALTER COLUMN [SET DEFAULT value | DROP DEFAULT]

Add a primary key to a table.

1

ALTER TABLE table_name ADD PRIMARY KEY (column,...);

Remove the primary key from a table.

1

2

ALTER TABLE table_name

DROP CONSTRAINT primary_key_constraint_name;

Rename a table.

1

ALTER TABLE table_name RENAME TO new_table_name;

Drop a table and its dependent objects:

1

DROP TABLE [IF EXISTS] table_name CASCADE;

 

Managing views

Create a view:

1

2

CREATE OR REPLACE view_name AS

query;

Create a recursive view:

1

2

CREATE RECURSIVE VIEW view_name(columns) AS

SELECT columns;

Create a materialized view:

1

2

3

4

CREATE MATERIALIZED VIEW view_name

AS

query

WITH [NO] DATA;

Refresh a materialized view:

1

REFRESH MATERIALIZED VIEW CONCURRENTLY view_name;

Drop a view:

1

DROP VIEW [ IF EXISTS ] view_name;

Drop a materialized view:

1

DROP MATERIALIZED VIEW view_name;

Rename a view:

1

ALTER VIEW view_name RENAME TO new_name;

 

Managing indexes

Creating an index with the specified name on a table

1

2

CREATE [UNIQUE] INDEX index_name

ON table (column,...)

Removing a specified index from a table

1

DROP INDEX index_name;

 

Querying data from tables

Query all data from a table:

1

SELECT * FROM table_name;

Query data from specified columns of all rows in a table:

1

2

SELECT column, column2….

FROM table;

Query data and select only unique rows:

1

2

SELECT DISTINCT (column)

FROM table;

Query data from a table with a filter:

1

2

3

SELECT *

FROM table

WHERE condition;

Assign an alias to a column in the result set:

1

2

SELECT column_1 AS new_column_1, ...

FROM table;

Query data using the LIKE operator:

1

2

SELECT * FROM table_name

WHERE column LIKE '%value%'

Query data using the BETWEEN operator:

1

2

SELECT * FROM table_name

WHERE column BETWEEN low AND high;

Query data using the IN operator:

1

2

SELECT * FROM table_name

WHERE column IN (value1, value2,...);

Constrain the returned rows with the LIMIT clause:

1

2

3

SELECT * FROM table_name

LIMIT limit OFFSET offset

ORDER BY column_name;

Query data from multiple using the inner joinleft joinfull outer joincross join and natural join:

1

2

3

SELECT *

FROM table1

INNER JOIN table2 ON conditions

 

1

2

3

SELECT *

FROM table1

LEFT JOIN table2 ON conditions

 

1

2

3

SELECT *

FROM table1

FULL OUTER JOIN table2 ON conditions

 

1

2

3

SELECT *

FROM table1

CROSS JOIN table2;

 

1

2

3

SELECT *

FROM table1

NATURAL JOIN table2;

Return the number of rows of a table.

1

2

SELECT COUNT (*)

FROM table_name;

Sort rows in ascending or descending order

1

2

3

SELECT column, column2, ...

FROM table

ORDER BY column ASC [DESC], column2 ASC [DESC],...;

Group rows using GROUP BY clause.

1

2

3

SELECT *

FROM table

GROUP BY column_1, column_2, ...;

Filter groups using the HAVING clause.

1

2

3

4

SELECT *

FROM table

GROUP BY column_1

HAVING condition;

 

Set operations

Combine the result set of two or more queries with UNION operator:

1

2

3

SELECT * FROM table1

UNION

SELECT * FROM table2;

Minus a result set using EXCEPT operator:

1

2

3

SELECT * FROM table1

EXCEPT

SELECT * FROM table2;

Get intersection of the result sets of two queries:

1

2

3

SELECT * FROM table1

INTERSECT

SELECT * FROM table2;

 

Modifying data

Insert a new row into a table:

1

2

INSERT INTO table(column1,column2,...)

VALUES(value_1,value_2,...);

Insert multiple rows into a table:

1

2

3

4

INSERT INTO table_name(column1,column2,...)

VALUES(value_1,value_2,...),

      (value_1,value_2,...),

      (value_1,value_2,...)...

Update data for all rows:

1

2

3

UPDATE table_name

SET column_1 = value_1,

    ...;

Update data for a set of rows specified by a condition in the WHERE clause.

1

2

3

4

UPDATE table

SET column_1 = value_1,

    ...

WHERE condition;

Delete all rows of a table:

1

DELETE FROM table_name;

Delete specific rows based on a condition:

1

2

DELETE FROM table_name

WHERE condition;

 

Performance

Show the query plan for a query:

1

EXPLAIN query;

Show and execute the query plan for a query:

1

EXPLAIN ANALYZE query;

Collect statistics:

1

ANALYZE table_name;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值