YouTip LogoYouTip

Postgresql Syntax

By default, after PostgreSQL installation is complete, it comes with a command-line tool **SQL Shell (psql)**. **Linux** systems can directly switch to the postgres user to start the command-line tool: # sudo -i -u postgres **Windows** systems are generally located in its installation directory: Program Files β†’ PostgreSQL 11.3 β†’ SQL Shell(psql) **Mac OS** we can directly search to find it: !(#) After entering the command-line tool, we can use help to view the syntax of various commands: postgres-# help For example, let's view the syntax of the select statement: postgres=# help SELECT Command: SELECT Description: retrieve rows from a table or view Syntax:[ WITH with_query [, ...] ] SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] [ * | expression [ output_name ] [, ...] ] [ FROM from_item [, ...] ] [ GROUP BY grouping_element [, ...] ] [ HAVING condition [, ...] ] [ WINDOW window_name AS ( window_definition ) [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ] [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ] [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } { ROW | ROWS } ONLY ] [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ] from_item can be one of the following options: table_name [ * ] [ alias [ ( column_alias [, ...] ) ] ] * * * ## SQL Statements A SQL statement typically contains keywords, identifiers (fields), constants, special symbols, etc. Here is a simple SQL statement: SELECT id, name FROM | | SELECT | id, name | FROM | | | --- | --- | --- | --- | --- | | Symbol Type | Keyword | Identifier (Field) | Keyword | Identifier | | Description | Command | id and name fields | Statement, used to set conditions, rules, etc. | Table Name | * * * ## PostgreSQL Commands ### ABORT ABORT is used to exit the current transaction. ABORT [ WORK | TRANSACTION ] ### ALTER AGGREGATE Modifies the definition of an aggregate function. ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) RENAME TO _new_name_ ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) OWNER TO _new_owner_ ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) SET SCHEMA _new_schema_ ### ALTER COLLATION Modifies the definition of a collation. ALTER COLLATION _name_ RENAME TO _new_name_ ALTER COLLATION _name_ OWNER TO _new_owner_ ALTER COLLATION _name_ SET SCHEMA _new_schema_ ### ALTER CONVERSION Modifies the definition of an encoding conversion. ALTER CONVERSION name RENAME TO new_name ALTER CONVERSION name OWNER TO new_owner ### ALTER DATABASE Modifies a database. ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT } ALTER DATABASE name RESET parameter ALTER DATABASE name RENAME TO new_name ALTER DATABASE name OWNER TO new_owner ### ALTER DEFAULT PRIVILEGES Defines default access privileges. ALTER DEFAULT PRIVILEGES [ FOR { ROLE | USER } target_role [, ...] ] [ IN SCHEMA schema_name [, ...] ] abbreviated_grant_or_revoke where abbreviated_grant_or_revoke is one of: GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER } [, ...] | ALL } ON TABLES TO { role_name | PUBLIC } [, ...] ... ### ALTER DOMAIN Modifies the definition of a domain. ALTER DOMAIN name { SET DEFAULT expression | DROP DEFAULT } ALTER DOMAIN name { SET | DROP } NOT NULL ALTER DOMAIN name ADD domain_constraint ALTER DOMAIN name DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ] ALTER DOMAIN name OWNER TO new_owner ### ALTER FUNCTION Modifies the definition of a function. ALTER FUNCTION name ( [ type [, ...] ] ) RENAME TO new_name ALTER FUNCTION name ( [ type [, ...] ] ) OWNER TO new_owner ### ALTER GROUP Modifies a user group. ALTER GROUP groupname ADD USER username [, ... ] ALTER GROUP groupname DROP USER username [, ... ] ALTER GROUP groupname RENAME TO new_name ### ALTER INDEX Modifies the definition of an index. ALTER INDEX name OWNER TO new_owner ALTER INDEX name SET TABLESPACE indexspace_name ALTER INDEX name RENAME TO new_name ### ALTER LANGUAGE Modifies the definition of a procedural language. ALTER LANGUAGE name RENAME TO new_name ### ALTER OPERATOR Changes the definition of an operator. ALTER OPERATOR name ( { lefttype | NONE }, { righttype | NONE } ) OWNER TO new_owner ### ALTER OPERATOR CLASS Modifies the definition of an operator class. ALTER OPERATOR CLASS name USING index_method RENAME TO new_name ALTER OPERATOR CLASS name USING index_method OWNER TO new_owner ### ALTER SCHEMA Modifies the definition of a schema. ALTER SCHEMA name RENAME TO new_name ALTER SCHEMA name OWNER TO new_owner ### ALTER SEQUENCE Modifies the definition of a sequence generator. ALTER SEQUENCE name [ INCREMENT increment ][ MINVALUE minvalue | NO MINVALUE ][ MAXVALUE maxvalue | NO MAXVALUE ][ RESTART start ] [ CYCLE ] ### ALTER TABLE Modifies the definition of a table. ALTER TABLE name [ * ] action [, ... ] ALTER TABLE name [ * ] RENAME column TO new_column ALTER TABLE name RENAME TO new_name where action can be one of the following options: ADD column_type [ column_constraint [ ... ] ] DROP column [ RESTRICT | CASCADE ] ALTER column TYPE type ALTER column SET DEFAULT expression ALTER column DROP DEFAULT ALTER column { SET | DROP } NOT NULL ALTER column SET STATISTICS integer ALTER column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } ADD table_constraint DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ] CLUSTER ON index_name SET WITHOUT CLUSTER SET WITHOUT OIDS OWNER TO new_owner SET TABLESPACE tablespace_name ### ALTER TABLESPACE Modifies the definition of a tablespace. ALTER TABLESPACE name RENAME TO new_name ALTER TABLESPACE name OWNER TO new_owner ### ALTER TRIGGER Modifies the definition of a trigger. ALTER TRIGGER name ON table RENAME TO new_name ### ALTER TYPE Modifies the definition of a type. ALTER TYPE name OWNER TO new_owner ### ALTER USER Modifies a database user account. ALTER USER name [ option [ ... ] ] ALTER USER name RENAME TO new_name ALTER USER name SET parameter { TO | = } { value | DEFAULT } ALTER USER name RESET parameter Where _option_ can be βˆ’ [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'| CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | VALID UNTIL 'abstime' ### ANALYZE Collects statistics about the database. ANALYZE [ table [ (column [, ...] ) ] ] ### BEGIN Starts a transaction block. BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ] _transaction_mode_ can be one of the following options: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY ### CHECKPOINT Forces a transaction log checkpoint. CHECKPOINT ### CLOSE Closes a cursor. CLOSE name ### CLUSTER Clusters a table according to an index. CLUSTER index_name ON table_name CLUSTER table_name CLUSTER ### COMMENT Defines or changes the comment of an object. COMMENT ON { TABLE object_name | COLUMN table_name.column_name | AGGREGATE agg_name (agg_type) | CAST (source_type AS target_type) | CONSTRAINT constraint_name ON table_name | CONVERSION object_name | DATABASE object_name | DOMAIN object_name | FUNCTION func_name (arg1_type, arg2_type, ...) | INDEX object_name | LARGE OBJECT large_object_oid | OPERATOR op (left_operand_type, right_operand_type) | OPERATOR CLASS object_name USING index_method | LANGUAGE object_name | RULE rule_name ON table_name | SCHEMA object_name | SEQUENCE object_name | TRIGGER trigger_name ON table_name | TYPE object_name | VIEW object_name } IS 'text' ### COMMIT Commits the current transaction. COMMIT [ WORK | TRANSACTION ] ### COPY Copies data between a table and a file. COPY table_name [ ( column [, ...] ) ] FROM { 'filename' | STDIN }[ DELIMITER 'delimiter' ][ NULL 'null string' ][ CSV [ QUOTE 'quote' ][ ESCAPE 'escape' ][ FORCE NOT NULL column [, ...] ] COPY table_name [ ( column [, ...] ) ] TO { 'filename' | STDOUT }[ [ DELIMITER 'delimiter' ][ NULL 'null string' ][ CSV [ QUOTE 'quote' ][ ESCAPE 'escape' ][ FORCE QUOTE column [, ...] ] ### CREATE AGGREGATE Defines a new aggregate function. CREATE AGGREGATE name ( BASETYPE = input_data_type, SFUNC = sfunc, STYPE = state_data_type [, FINALFUNC = ffunc ] [, INITCOND = initial_condition ]) ### CREATE CAST Defines a user-defined cast. CREATE CAST (source_type AS target_type) WITH FUNCTION func_name (arg_types)[ AS ASSIGNMENT | AS IMPLICIT ] CREATE CAST (source_type AS target_type) WITHOUT FUNCTION [ AS ASSIGNMENT | AS IMPLICIT ] ### CREATE CONSTRAINT TRIGGER Defines a new constraint trigger. CREATE CONSTRAINT TRIGGER name AFTER events ON table_name constraint attributes FOR EACH ROW EXECUTE PROCEDURE func_name ( args ) ### CREATE CONVERSION Defines a new encoding conversion. CREATE CONVERSION name FOR source_encoding TO dest_encoding FROM func_name ### CREATE DATABASE Creates a new database. CREATE DATABASE name [ [ OWNER db_owner ] [ TEMPLATE template ] [ ENCODING encoding ] [ TABLESPACE tablespace ] ] ### CREATE DOMAIN Defines a new domain. CREATE DOMAIN name data_type [ constraint [ ... ] ] _constraint_ can be one of the following options: { NOT NULL | NULL | CHECK (expression) } ### CREATE FUNCTION Defines a new function. CREATE FUNCTION name ( [ arg_type [, ...] ] ) RETURNS ret_type { LANGUAGE lang_name | IMMUTABLE | STABLE | VOLATILE | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT | SECURITY INVOKER | SECURITY DEFINER | AS 'definition' | AS 'obj_file', 'link_symbol'} ...[ WITH ( attribute [, ...] ) ] ### CREATE GROUP Defines a new user group. CREATE GROUP name [ option [ ... ] ]Where option can be: SYSID gid | USER username [, ...] ### CREATE INDEX Defines a new index. CREATE INDEX name ON table ( { column | ( expression ) } [, ...] ) ### CREATE LANGUAGE Defines a new procedural language. CREATE LANGUAGE name HANDLER call_handler ### CREATE OPERATOR Defines a new operator. CREATE OPERATOR name ( PROCEDURE = func_name [, LEFTARG = left_type ] [, RIGHTARG = right_type ] [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ] [, RESTRICT = res_proc ] [, JOIN = join_proc ] [, HASHES ] [, MERGES ] [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ] [, LTCMP = less_than_op ] [, GTCMP = greater_than_op ]) ### CREATE OPERATOR CLASS Defines a new operator class. CREATE OPERATOR CLASS name FOR TYPE data_type USING index_method AS { OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] | FUNCTION support_number func_name ( argument_type [, ...] ) | STORAGE storage_type } [, ... ] ### CREATE ROLE Defines a new database role. CREATE ROLE _name_ [ _option_ [ ... ] ]where `_option_` can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE ... ### CREATE RULE Defines a new rewrite rule. CREATE RULE name AS ON event TO table DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) } ### CREATE SCHEMA Defines a new schema. CREATE SCHEMA schema_name [ schema_element [ ... ] ] CREATE SCHEMA AUTHORIZATION username [ schema_element [ ... ] ] ### CREATE SERVER Defines a new foreign server. CREATE SERVER _server_name_ [ TYPE '_server_type_' ] [ VERSION '_server_version_' ] FOREIGN DATA WRAPPER _fdw_name_ [ OPTIONS ( _option_ '_value_' [, ... ] ) ] ### CREATE SEQUENCE Defines a new sequence generator. CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT increment ][ MINVALUE minvalue | NO MINVALUE ][ MAXVALUE maxvalue | NO MAXVALUE ][ START start ] [ CYCLE ] ### CREATE TABLE Defines a new table. CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( { column_name data_type [ column_constraint [ ... ] ] | table_constraint | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] } [, ... ])[ INHERITS ( parent_table [, ... ] ) ][ WITH OIDS | WITHOUT OIDS ][ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] _column_constraint_ can be one of the following options: { NOT NULL | NULL | UNIQUE | PRIMARY KEY | CHECK (expression) | REFERENCES ref_table [ ( ref_column ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] }[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] _table_constraint_ can be one of the following options: { UNIQUE ( column_name [, ... ] ) | PRIMARY KEY ( column_name [, ... ] ) | CHECK ( exp
← Dir ParentFile Write β†’