English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Syntaxe PostgreSQL

Par défaut, après l'installation de PostgreSQL, une outil en ligne de commande est fourni Shell SQL (psql)

Linux Le système peut directement passer à l'utilisateur postgres pour ouvrir l'outil en ligne de commande :

#  sudo -i -u postgres

Windows Le système est généralement dans le répertoire d'installation :

Program Files → PostgreSQL 11.3 → Shell SQL (psql)

Mac OS Nous pouvons directement rechercher et trouver :

En entrant dans l'outil en ligne de commande, nous pouvons utiliser \help pour voir la syntaxe des différents commandes :

postgres-# \help <nom_commande>

Par exemple, nous allons examiner la syntaxe de l'instruction SELECT :

postgres=# \help SELECT
Command: SELECT
Description: retrieve rows from a table or view
Syntax:
[ WITH [ RECURSIVE ] with_query [, ... ] ]
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
    [ * | expression [ [ AS ] output_name ] [, ... ]
    [ À PARTIR DE from_item [, ...] ]
    [ WHERE condition ]
    [ GROUP BY grouping_element [, ... ] ]
    [ AVEC CONDITION CONDITION [, ...] ]
    [ WINDOW window_name AS ( window_definition ) [, ... ] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
    [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ... ] ]
    [ LIMITE { compte | TOUTES } ]
    [ OFFSET start [ ROW | ROWS ] ]
    [ FETCH { FIRST | NEXT } [ count ] { 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:
    [ ONLY ] table_name [ * ]] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]

SQL statement

A SQL statement typically includes keywords, identifiers (fields), constants, special symbols, etc. The following is a simple SQL statement:

SELECT id, name FROM w3codebox

SELECTid, nameFROMw3codebox
Symbol typeKeywordIdentifier (field)KeywordIdentifier
DescriptionCommandid and name fieldsStatement, used to set conditional rules, etc.Table name

PostgreSQL command

ABORT

ABORT is used to exit the current transaction.

ABORT [ WORK | TRANSACTION ]

ALTER AGGREGATE

Modify 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

Modifier une définition de règle d'ordonnancement.

ALTER COLLATION _name_ RENAME TO _new_name_
ALTER COLLATION _name_ OWNER TO _new_owner_
ALTER COLLATION _name_ SET SCHEMA _new_schema_

ALTER CONVERSION

Modifier la définition d'une conversion de codage.

ALTER CONVERSION name RENAME TO new_name
ALTER CONVERSION name OWNER TO new_owner

ALTER DATABASE

Modifier une base de données.

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

Définir les privilèges d'accès par défaut.

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 [ PRIVILEGES ]
    ON TABLES
    TO { [ GROUP ] role_name | PUBLIC }[, ...] [ WITH GRANT OPTION ]
...

ALTER DOMAIN

Modifier la définition d'un domaine.

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

Modifier la définition d'une fonction.

ALTER FUNCTION name ([ type[, ...] ]) RENAME TO new_name
ALTER FUNCTION name ([ type[, ...] ]) OWNER TO new_owner

ALTER GROUP

Modifier un groupe utilisateur.

ALTER GROUP groupname ADD USER username[, ...]
ALTER GROUP groupname DROP USER username[, ...]
ALTER GROUP groupname RENAME TO new_name

ALTER INDEX

Modifier la définition d'un index.

ALTER INDEX name OWNER TO new_owner
ALTER INDEX name SET TABLESPACE indexspace_name
ALTER INDEX name RENAME TO new_name

ALTER LANGUAGE

Modifier la définition d'une langue procédurale.

ALTER LANGUAGE name RENAME TO new_name

ALTER OPERATOR

Changer la définition d'un opérateur.

ALTER OPERATOR name ({ lefttype | NONE }, { righttype | NONE })
OWNER TO new_owner

ALTER 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

修改一个模式的定义。

ALTER SCHEMA name RENAME TO new_name
ALTER SCHEMA name OWNER TO new_owner

ALTER SEQUENCE

修改一个序列生成器的定义。

ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]
[ MINVALUE minvalue | NO MINVALUE ]
[ MAXVALUE maxvalue | NO MAXVALUE ]
[ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]

ALTER TABLE

修改表的定义。

ALTER TABLE [ ONLY ] name [ * ]
action [, ... ]
ALTER TABLE [ ONLY ] name [ * ]
RENAME [ COLUMN ] column TO new_column
ALTER TABLE name
RENAME TO new_name

其中 action 可以是以选项之一:

ADD [ COLUMN ] column_type [ column_constraint [ ... ] ]
DROP [ COLUMN ] column [ RESTRICT | CASCADE ]
ALTER [ COLUMN ] column TYPE type [ USING expression ]
ALTER [ COLUMN ] column SET DEFAULT expression
ALTER [ COLUMN ] column DROP DEFAULT
ALTER [ COLUMN ] column { SET | DROP } NOT NULL
ALTER [ COLUMN ] column SET STATISTICS integer
ALTER [ COLUMN ] column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
ADD contrainte_table
DROP CONTRAINT constraint_name [ RESTRICT | CASCADE ]
CLUSTER ON index_name
SET WITHOUT CLUSTER
SET WITHOUT OIDS
OWNER TO new_owner
SET TABLESPACE tablespace_name

ALTER TABLESPACE

Modification de la définition d'un espace de tables.

ALTER TABLESPACE name RENAME TO new_name
ALTER TABLESPACE name OWNER TO new_owner

ALTER TRIGGER

Modification de la définition d'un déclencheur.

ALTER TRIGGER name ON table RENAME TO new_name

ALTER TYPE

Modification de la définition d'un type.

ALTER TYPE name OWNER TO new_owner

ALTER USER

Modification du compte utilisateur de la base de données.

ALTER USER name [ [ WITH ] option [ ... ] ]
ALTER USER name RENAME TO new_name
ALTER USER name SET parameter { TO | = } { valeur | DEFAULT }
ALTER USER name RESET parameter

option peut être −

[ CHIFFRÉ | NON CHIFFRÉ ] MOT DE PASSE 'password'
| CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| VALIDE JUSQU'À 'abstime'

ANALYSER

Collecte des statistiques liées à la base de données.

ANALYSER [ DETAILLE ] [ table [ ( colonne [ , ... ] ) ] ]

DEBUT

Commencer un bloc de transaction.

DEBUT [ TRAVAIL | TRANSACTION ] [ mode_transaction [ , ... ] ]

transaction_mode Il peut s'agir d'une des options suivantes :

NIVEAU D'ISOLEMENT { 
   SERIALIZABLE | LECTURE REPEATABLE | LECTURE COMMITTEE
   | LECTURE NON COMMITTEE
}
Lecture Écriture | Lecture Seule

CHECKPOINT

Forcer un point de contrôle de journal transactionnel.

CHECKPOINT

CLOSE

Fermer le curseur.

CLOSE name

CLUSTER

Tri en cluster d'une table en fonction d'un index.

CLUSTER index_name ON table_name
CLUSTER table_name
CLUSTER

COMMENT

Définir ou modifier le commentaire d'un objet.

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 |
   [ PROCEDURAL ] 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

Soumettre la transaction courante.

COMMIT [ WORK | TRANSACTION ]

COPY

Copier des données entre une table et un fichier.

COPY table_name [ ( column[, ...] ) ]
FROM { 'filename' | STDIN }
[ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE NOT NULL column[, ...] ]
COPY table_name [ ( column[, ...] ) ]
TO { 'filename' | STDOUT }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE QUOTE column [, ...] ]

CREATE AGGREGATE

定义一个新的聚集函数。

CREATE AGGREGATE name (
   BASETYPE = input_data_type,
   SFUNC = sfunc,
   STYPE = state_data_type
   [, FINALFUNC = ffunc ]
   [, INITCOND = initial_condition ]
)

CREATE 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

定义一个新的约束触发器 。

CREATE CONSTRAINT TRIGGER name
AFTER events ON
table_name constraint attributes
FOR EACH ROW EXECUTE PROCEDURE func_name ( args )

CREATE CONVERSION

定义一个新的编码转换。

CREATE [DEFAULT] CONVERSION name
FOR source_encoding TO dest_encoding FROM func_name

CREATE DATABASE

创建新数据库。

CREATE DATABASE name
[ [ WITH ] [ OWNER [=] db_owner ]
   [ TEMPLATE [=] template ]
   [ ENCODING [=] encoding ]
   [ TABLESPACE [=] tablespace ] 
]

CREATE DOMAIN

Définir un nouveau domaine.

CREATE DOMAIN name [AS] data_type
[ DEFAULT expression ]
[ constraint [...]]

constraint Il peut s'agir d'une des options suivantes :

[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK(expression) }

CREATE FUNCTION

Définir une nouvelle fonction.

CREATE [OR REPLACE] FUNCTION name ( [[arg_name] arg_type [, ...]] )
RETURNS ret_type
{ LANGUAGE lang_name
   | IMMUTABLE | STABLE | VOLATILE
   | APPELÉ SUR ENTRÉE NULL | RETOURNE NULL SUR ENTRÉE NULL | STRICTE
   | [EXTERNAL] SECURITY INVOKER | [EXTERNAL] SECURITY DEFINER
   | AS 'definition'
   | AS 'obj_file', 'link_symbol'
}
[WITH ( attribute [, ...] )]

CREATE GROUP

Définir un nouveau groupe utilisateur.

CREATE GROUP name [[WITH] option [...]]
Where l'option peut être:
SYSID gid
| USER username [, ...]

CREATE INDEX

Définir un nouvel index.

CREATE [UNIQUE] INDEX name ON table [USING method]
( { column | ( expression ) } [opclass] [, ...] )
[ TABLESPACE tablespace ]
[WHERE predicate]

CREATE LANGUAGE

Définir un nouveau langage de procédure.

CREATE [TRUSTED] [PROCEDURAL] LANGUAGE name
HANDLER call_handler [ VALIDATOR val_function ]

CREATE 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

定义一个新的操作符表。

CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type
USING index_method AS
{ OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ RECHECK ] }
   | FUNCTION support_number func_name ( argument_type [, ...] )
   | STORAGE storage_type
}, [, ... ]

CREATE ROLE

定义一个新的数据库角色。

CREATE ROLE _name_ [ [[ WITH ] _option_ [ ... ]] ]
where `_option_` can be:
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
...

CREATE RULE

定义一个新重写规则。

CREATE [ OR REPLACE ] RULE name AS ON event
TO table [ WHERE condition ]
DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) }

CREATE SCHEMA

定义一个新模式。

CREATE SCHEMA schema_name
[ AUTHORIZATION username ] [ schema_element [ ... ] ]
CREATE SCHEMA AUTHORIZATION username
[ schema_element [ ... ] ]

CREATE SERVER

定义一个新的外部服务器。

CREATE SERVER _server_name_ [ TYPE '_server_type_' ] [ VERSION '_server_version_' ]
    FOREIGN DATA WRAPPER _fdw_name_
    [ OPTIONS ( _option_ '_value_' [, ... ] ) ]

CREATE SEQUENCE

定义一个新序列发生器。

CREATE [ TEMPORARY | TEMP ] SEQUENCE name
[ INCREMENT [ BY ] increment ]
[ MINVALUE minvalue | NO MINVALUE ]
[ MAXVALUE maxvalue | NO MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ] [[ NO ] CYCLE ]

CREATE TABLE

定义一个新表。

CREATE [[ GLOBAL | LOCAL ] { 
   TEMPORARY | TEMP } ] TABLE table_name ({ 
      column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
      | table_constraint
      | LIKE parent_table [{ INCLUDING | EXCLUDING } DEFAULTS] 
   }, [, ... ]
)
[INHERITS (parent_table [, ... ])]
[ WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace ]

column_constraint Il peut s'agir d'une des options suivantes :

[ CONSTRAINT constraint_name ] { 
   NOT NULL |
   NULL |
   UNIQUE [ USING INDEX TABLESPACE tablespace ] |
   PRIMARY KEY [ USING INDEX TABLESPACE tablespace ] |
   CHECK ( expression ) |
   REFERENCES ref_table [ ( ref_column ) ]
   [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
   [ ON DELETE action ] [ ON UPDATE action ] 
}
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALIALLY DEFERRED | INITIALIALLY IMMEDIATE ]

table_constraint Il peut s'agir d'une des options suivantes :

[ CONSTRAINT constraint_name ]
{ UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
CHECK ( expression ) |
FOREIGN KEY ( column_name [, ... ] )
REFERENCES ref_table [ ( ref_column [, ... ] ) ]
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALIALLY DEFERRED | INITIALIALLY IMMEDIATE ]

CREATE TABLE AS

From the result of a query, define a new table.

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name
[ (column_name [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
AS query

CREATE TABLESPACE

定义一个新的表空间。

CREATE TABLESPACE tablespace_name [ OWNER username ] LOCATION 'directory'

CREATE TRIGGER

定义一个新的触发器。

CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
EXECUTE PROCEDURE func_name ( arguments )

CREATE TYPE

定义一个新的数据类型。

CREATE TYPE name AS
( attribute_name data_type [, ... ] )
CREATE TYPE name (
INPUT = input_function,
OUTPUT = output_function
[, RECEIVE = receive_function ]
[, SEND = send_function ]
[, ANALYZE = analyze_function ]
[, INTERNALLENGTH = { internal_length | VARIABLE } ]
[, PASSEDBYVALUE ]
[, ALIGNMENT = alignment ]
[, STORAGE = storage ]
[, DEFAULT = default ]
[, ELEMENT = element ]
[, DELIMITER = delimiter ]
)

CREATE USER

创建一个新的数据库用户帐户。

CREATE USER name [ [ WITH ] option [ ... ] ]

option Il peut s'agir d'une des options suivantes :

SYSID uid
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| DANS LE GROUPE group_name [, ...]
| VALIDE JUSQU'À 'abs_time'

CREATE VIEW

Définir une vue.

CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query

DEALLOCATE

Supprimer une requête préparée.

DEALLOCATE [ PREPARE ] plan_name

DECLARE

Définir un curseur.

DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
[ FOR { READ ONLY | UPDATE [ OF column [, ...] ] } ]

DELETE

Supprimer une ligne d'une table.

DELETE FROM [ ONLY ] table [ WHERE condition ]

DROP AGGREGATE

Supprimer une fonction agrégée utilisateur défini.

DROP AGGREGATE name ( type ) [ CASCADE | RESTRICT ]

DROP CAST

Supprimer une conversion de type utilisateur défini.

DROP CAST (source_type AS target_type) [ CASCADE | RESTRICT ]

DROP CONVERSION

Supprimer une conversion de codage utilisateur défini.

DROP CONVERSION name [ CASCADE | RESTRICT ]

DROP DATABASE

Supprimer une base de données.

DROP DATABASE name

DROP DOMAIN

Supprimer un domaine utilisateur défini.

DROP DOMAIN name [, ...] [ CASCADE | RESTRICT ]

DROP FUNCTION

Supprimer une fonction.

DROP FUNCTION name ( [ type [, ...] ] ) [ CASCADE | RESTRICT ]

DROP GROUP

Supprimer un groupe utilisateur.

DROP GROUP name

DROP INDEX

Supprimer un index.

DROP INDEX name[, [...]][ CASCADE | RESTRICT ]

DROP LANGUAGE

Supprimer un langage procédural.

DROP [ PROCEDURAL ] LANGUAGE name[ CASCADE | RESTRICT ]

DROP OPERATOR

Supprimer un opérateur.

DROP OPERATOR name( { left_type | NONE }, { right_type | NONE } )
[ CASCADE | RESTRICT ]

DROP OPERATOR CLASS

Supprimer une classe d'opérateur.

DROP OPERATOR CLASS name USING index_method[ CASCADE | RESTRICT ]

DROP ROLE

Supprimer un rôle de base de données.

DROP [ PROCEDURAL ] LANGUAGE name[ CASCADE | RESTRICT ]

DROP RULE

Supprimer une règle de réécriture.

DROP RULE name ON relation[ CASCADE | RESTRICT ]

DROP SCHEMA

Supprimer un schéma.

DROP SCHEMA name[, [...]][ CASCADE | RESTRICT ]

DROP SEQUENCE

Supprimer une séquence.

DROP SEQUENCE name[, [...]][ CASCADE | RESTRICT ]

DROP TABLE

Supprimer une table.

DROP TABLE name[, [...]][ CASCADE | RESTRICT ]

DROP TABLESPACE

Supprimer une table d'espace.

DROP TABLESPACE tablespace_name

DROP TRIGGER

Supprimer une définition de déclencheur.

DROP TRIGGER name ON table[ CASCADE | RESTRICT ]

DROP TYPE

Supprimer un type de données utilisateur défini.

DROP TYPE name[, [...]][ CASCADE | RESTRICT ]

DROP USER

Supprimer un compte utilisateur de base de données.

DROP USER name

DROP VIEW

Supprimer une vue.

DROP VIEW name[, [...]][ CASCADE | RESTRICT ]

FIN

Soumettre la transaction en cours.

FIN [ TRAVAIL | TRANSACTION ]

EXECUTER

Exécuter une requête préparée.

EXECUTER nom_plan [ ( paramètre [, ...] ) ]

EXPLIQUER

Afficher le plan d'exécution d'une instruction.

EXPLIQUER [ ANALYSER ] [ DÉTAILS ] requête

RAPPELER

Rappeler des lignes à partir d'une requête avec un curseur.

RAPPELER [ direction { DE | DANS } ] nom_curseur

direction Il peut s'agir d'une des options suivantes :

PROCHAIN
PRÉCÉDENT
PREMIER
DERNIER
ABSOLU count
RELATIF count
count
TOUT
AVANCE
AVANCE count
AVANCE TOUT
REVERSE
REVERSE count
REVERSE TOUT

GRANT

Définir les droits d'accès.

GRANT { { SÉLECT | INSÉRER | METTRE À JOUR | SUPPRIMER | RÈGLE | RÉFÉRENCES | TRIGGER } }
[,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] table_name [, ...]
TO { nom_d'utilisateur | GROUPE nom_groupe | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { CRÉER | TEMPORAIRE | TEMP } [,...] | TOUT [ PRIVILEGES ] }
ON BASE DE DONNÉES db_name [, ...]
TO { nom_d'utilisateur | GROUPE nom_groupe | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { CRÉER | TOUT [ PRIVILEGES ] }
ON TABLESPACE tablespace_name [, ...]
TO { nom_d'utilisateur | GROUPE nom_groupe | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { EXECUTE | TOUT [ PRIVILEGES ] }
ON FONCTION func_name ([type, ...]) [, ...]
TO { nom_d'utilisateur | GROUPE nom_groupe | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { USAGE | TOUT [ PRIVILEGES ] }
ON LANGUAGE lang_name [, ...]
TO { nom_d'utilisateur | GROUPE nom_groupe | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { CRÉER | USAGE } [,...] | TOUT [ PRIVILEGES ] }
ON SCHEMA schema_name [, ...]
TO { nom_d'utilisateur | GROUPE nom_groupe | PUBLIC } [, ...] [ WITH GRANT OPTION ]

INSERT

Créer une nouvelle ligne dans la table, c'est-à-dire insérer des données.

INSERT INTO table [ ( colonne [, ...] ) ]
{ VALEURS PAR DÉFAUT | VALEURS ( { EXPRESSION | PAR DÉFAUT } [, ...] ) | requête }

ECOUTER

Écouter une notification.

ECOUTER name

LOAD

Charger ou recharger un fichier de bibliothèque partagée.

CHARGER 'nom_fichier'

LOCK

Verrouiller une table.

LOCK [ TABLE ] nom [, ...] [ DANS mode_de_lock MODE ] [ NOWAIT ]

mode_de_lock Il peut s'agir d'une des options suivantes :

ACCÈS PARTAGE | LIGNE PARTAGE | LIGNE EXCLUSIF | PARTAGE MISE À JOUR EXCLUSIF
| PARTAGE | PARTAGE LIGNE EXCLUSIF | EXCLUSIF | ACCÈS EXCLUSIF

MOUVRE

Localiser un curseur.

MOUVRE [ direction { DE | DANS } ] nom_curseur

NOTIFIER

Générer une notification.

NOTIFIER nom

PRÉPARER

Créer une requête préparée.

PRÉPARER nom_plan [ (type_de données [, ...] ) ] COMME requête

REINDEXER

Reconstruire les index.

REINDEXER { BASE DE DONNÉES | TABLE | INDEX } nom [ FORCE ]

LIBÉRER POINT DE SAUVEGARDE

Supprimer un point de sauvegarde défini précédemment.

LIBÉRER [ POINT DE SAUVEGARDE ] nom_point_de_sauvegarde

REINITIALISER

Restaurer une valeur de paramètre d'exécution par défaut.

REINITIALISER name
REINITIALISER TOUS

REVOQUER

Supprimer les droits d'accès.

REVOKE [ GRANT OPTION FOR ]
{ { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } }
[,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] table_name [, ...]
FROM { username | GROUP group_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
ON BASE DE DONNÉES db_name [, ...]
FROM { username | GROUP group_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ CREATE | ALL [ PRIVILEGES ] }
ON TABLESPACE tablespace_name [, ...]
FROM { username | GROUP group_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ EXECUTE | ALL [ PRIVILEGES ] }
ON FONCTION func_name ([type, ...]) [, ...]
FROM { username | GROUP group_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ USAGE | ALL [ PRIVILEGES ] }
ON LANGUAGE lang_name [, ...]
FROM { username | GROUP group_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
ON SCHEMA schema_name [, ...]
FROM { username | GROUP group_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]

ROLLBACK

退出当前事务。

ROLLBACK [ WORK | TRANSACTION ]

ROLLBACK TO SAVEPOINT

回滚到一个保存点。

ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name

SAVEPOINT

在当前事务里定义一个新的保存点。

SAVEPOINT savepoint_name

SELECT

从表或视图中取出若干行。

SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ COMME nom_de_sortie ] [, ...]
[ À PARTIR DE from_item [, ...] ]
[ WHERE condition ]
[ PAR GROUPE expression [, ...] ]
[ AVEC CONDITION CONDITION [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ TOUTES ] sélection ]
[ TRIER PAR expression [ ASC | DESC | UTILISANT opérateur ] [, ...] ]
[ LIMITE { compte | TOUTES } ]
[ DÉCALAGE DE début ]
[ POUR METTRE À JOUR [ NOM DE TABLEAU [ ..., ... ] ] ]

from_item 可以是以下选项:

[ ONLY ] table_name [ * ]] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
( select ) [ AS ] alias [ ( column_alias [, ...] ) ]
function_name ( [ argument [, ...] ] )
[ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ]
function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
from_item [ NATURAL ] join_type from_item
[ ON join_condition | USING ( join_column [, ...] ) ]

SELECT INTO

从一个查询的结果中定义一个新表。

SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ COMME nom_de_sortie ] [, ...]
DANS [ TEMPORAIRE | TEMP ] [ TABLE ] nouvelle_table
[ À PARTIR DE from_item [, ...] ]
[ WHERE condition ]
[ PAR GROUPE expression [, ...] ]
[ AVEC CONDITION CONDITION [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ TOUTES ] sélection ]
[ TRIER PAR expression [ ASC | DESC | UTILISANT opérateur ] [, ...] ]
[ LIMITE { compte | TOUTES } ]
[ DÉCALAGE DE début ]
[ POUR METTRE À JOUR [ NOM DE TABLEAU [ ..., ... ] ] ]

DÉFINIR

Modifier les paramètres de temps d'exécution.

DÉFINIR [ SESSION | LOCAL ] nom { À | = } { valeur | 'valeur' | PAR DÉFAUT }
DÉFINIR [ SESSION | LOCAL ] ZONE HEURE { zone_heure | LOCAL | PAR DÉFAUT }

DÉFINIR CONTRAINTES

Définir le mode de vérification des contraintes de la transaction en cours.

DÉFINIR CONTRAINTES { TOUTES | nom [, ...] } { RETARDÉ | IMMÉDIAT }

DÉFINIR SESSION AUTHENTIFICATION

Définir l'identifiant utilisateur de session et l'identifiant utilisateur courant pour la session en cours.

DÉFINIR [ SESSION | LOCAL ] AUTHENTIFICATION DE SESSION nom_utilisateur
DÉFINIR [ SESSION | LOCAL ] AUTHENTIFICATION DE SESSION PAR DÉFAUT
REINITIALISER L'AUTHENTIFICATION DE SESSION

DÉFINIR TRANSACTION

Commencer un bloc de transaction.

DÉFINIR TRANSACTION TRANSACTION_MODE [, ...]
DÉFINIR LES CARACTÉRISTIQUES DE SESSION COMME MODE TRANSACTION TRANSACTION_MODE [, ...]

transaction_mode est l'un des −

NIVEAU D'ISOLEMENT { SERIALIZABLE | REPEATABLE READ | READ COMMITTED
| Lecture Non Confirmée }
Lecture Écriture | Lecture Seule

SHOW

Afficher la valeur des paramètres d'exécution.

SHOW name
SHOW ALL

START TRANSACTION

Commencer un bloc de transaction.

START TRANSACTION [ transaction_mode [, ...] ]

transaction_mode Peut être l'une des options suivantes :

NIVEAU D'ISOLEMENT { SERIALIZABLE | REPEATABLE READ | READ COMMITTED
| Lecture Non Confirmée }
Lecture Écriture | Lecture Seule

TRUNCATE

Vider une ou plusieurs tables.

TRUNCATE [ TABLE ] name

UNLISTEN

Arrêter d'écouter les informations de notification.

UNLISTEN { name | * }

UPDATE

Mettre à jour une ligne dans une table.

UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...]
[ FROM from_list ]
[ WHERE condition ]

VACUUM

Collecte des déchets et analyse optionnelle d'une base de données.

VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]

VALUES

Calculer une ou plusieurs lignes.

VALUES ( _expression_ [, ...] ) [, ...]
    [ ORDER BY _sort_expression_ [ ASC | DESC | USING _operator_ ] [, ...] ]
    [ LIMIT { _count_ | ALL } ]
    [ OFFSET _start_ [ ROW | ROWS ] ]
    [ FETCH { FIRST | NEXT } [ _count_ ] { ROW | ROWS } ONLY ]