<!-- doc/src/sgml/postgres.sgml -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[
<!ENTITY % version SYSTEM "version.sgml">
%version;
<!ENTITY % filelist SYSTEM "filelist.sgml">
%filelist;
<!ENTITY commit_baseurl "https://postgr.es/c/">
<!ENTITY reference SYSTEM "reference.sgml">
<!--
Zero-width space. Use this to allow line breaks at desirable places in
table cells, examples, etc. without causing an unwanted space when the
break is not needed in a wider output rendering.
-->
<!ENTITY zwsp "​">
]>
<book id="postgres">
<title>PostgreSQL &version; Documentation</title>
<bookinfo>
<corpauthor>The PostgreSQL Global Development Group</corpauthor>
<productname>PostgreSQL</productname>
<productnumber>&version;</productnumber>
&legal;
</bookinfo>
&intro;
<part id="tutorial">
<title>Tutorial</title>
<partintro>
<para>
Welcome to the <productname>PostgreSQL</productname> Tutorial. The
tutorial is intended to give an introduction
to <productname>PostgreSQL</productname>, relational database
concepts, and the SQL language. We assume some general knowledge about
how to use computers and no particular Unix or programming experience is
required. This tutorial is intended to provide hands-on experience with
important aspects of the <productname>PostgreSQL</productname> system.
It makes no attempt to be a comprehensive treatment of the topics it covers.
</para>
<para>
After you have successfully completed this tutorial you will want to
read the <xref linkend="sql"/> section to gain a better understanding
of the SQL language, or <xref linkend="client-interfaces"/> for
information about developing applications with
<productname>PostgreSQL</productname>. Those who provision and
manage their own PostgreSQL installation should also read <xref linkend="admin"/>.
</para>
</partintro>
&start;
&query;
&advanced;
</part>
<part id="sql">
<title>The SQL Language</title>
<partintro>
<para>
This part describes the use of the <acronym>SQL</acronym> language
in <productname>PostgreSQL</productname>. We start with
describing the general syntax of <acronym>SQL</acronym>, then
how to create tables, how to populate the database, and how to
query it. The middle part lists the available data types and
functions for use in <acronym>SQL</acronym> commands. Lastly,
we address several aspects of importance for tuning a database.
</para>
<para>
The information is arranged so that a novice user can
follow it from start to end and gain a full understanding of the topics
without having to refer forward too many times. The chapters are
intended to be self-contained, so that advanced users can read the
chapters individually as they choose. The information is presented
in narrative form with topical units. Readers looking for a complete
description of a particular command are encouraged to review
the <xref linkend="reference"/>.
</para>
<para>
Readers should know how to connect to a
<productname>PostgreSQL</productname> database and issue
<acronym>SQL</acronym> commands. Readers that are unfamiliar with
these issues are encouraged to read <xref linkend="tutorial"/>
first. <acronym>SQL</acronym> commands are typically entered
using the <productname>PostgreSQL</productname> interactive terminal
<application>psql</application>, but other programs that have
similar functionality can be used as well.
</para>
</partintro>
&syntax;
&ddl;
&dml;
&queries;
&datatype;
&func;
&typeconv;
&indices;
&textsearch;
&mvcc;
&perform;
∥
</part>
<part id="admin">
<title>Server Administration</title>
<partintro>
<para>
This part covers topics that are of interest to a
<productname>PostgreSQL</productname> administrator. This