Server : Apache System : Linux cs317.bluehost.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : andertr9 ( 1047) PHP Version : 8.2.18 Disable Function : NONE Directory : /usr/share/doc/postgresql-9.2.24/html/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Creating a New Table</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="The SQL Language" HREF="tutorial-sql.html"><LINK REL="PREVIOUS" TITLE="Concepts" HREF="tutorial-concepts.html"><LINK REL="NEXT" TITLE="Populating a Table With Rows" HREF="tutorial-populate.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Concepts" HREF="tutorial-concepts.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="tutorial-sql.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 2. The <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > Language</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Populating a Table With Rows" HREF="tutorial-populate.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="TUTORIAL-TABLE" >2.3. Creating a New Table</A ></H1 ><P > You can create a new table by specifying the table name, along with all column names and their types: </P><PRE CLASS="PROGRAMLISTING" >CREATE TABLE weather ( city varchar(80), temp_lo int, -- low temperature temp_hi int, -- high temperature prcp real, -- precipitation date date );</PRE ><P> You can enter this into <TT CLASS="COMMAND" >psql</TT > with the line breaks. <TT CLASS="COMMAND" >psql</TT > will recognize that the command is not terminated until the semicolon. </P ><P > White space (i.e., spaces, tabs, and newlines) can be used freely in SQL commands. That means you can type the command aligned differently than above, or even all on one line. Two dashes (<SPAN CLASS="QUOTE" >"<TT CLASS="LITERAL" >--</TT >"</SPAN >) introduce comments. Whatever follows them is ignored up to the end of the line. SQL is case insensitive about key words and identifiers, except when identifiers are double-quoted to preserve the case (not done above). </P ><P > <TT CLASS="TYPE" >varchar(80)</TT > specifies a data type that can store arbitrary character strings up to 80 characters in length. <TT CLASS="TYPE" >int</TT > is the normal integer type. <TT CLASS="TYPE" >real</TT > is a type for storing single precision floating-point numbers. <TT CLASS="TYPE" >date</TT > should be self-explanatory. (Yes, the column of type <TT CLASS="TYPE" >date</TT > is also named <TT CLASS="STRUCTFIELD" >date</TT >. This might be convenient or confusing — you choose.) </P ><P > <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > supports the standard <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > types <TT CLASS="TYPE" >int</TT >, <TT CLASS="TYPE" >smallint</TT >, <TT CLASS="TYPE" >real</TT >, <TT CLASS="TYPE" >double precision</TT >, <TT CLASS="TYPE" >char(<TT CLASS="REPLACEABLE" ><I >N</I ></TT >)</TT >, <TT CLASS="TYPE" >varchar(<TT CLASS="REPLACEABLE" ><I >N</I ></TT >)</TT >, <TT CLASS="TYPE" >date</TT >, <TT CLASS="TYPE" >time</TT >, <TT CLASS="TYPE" >timestamp</TT >, and <TT CLASS="TYPE" >interval</TT >, as well as other types of general utility and a rich set of geometric types. <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > can be customized with an arbitrary number of user-defined data types. Consequently, type names are not key words in the syntax, except where required to support special cases in the <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > standard. </P ><P > The second example will store cities and their associated geographical location: </P><PRE CLASS="PROGRAMLISTING" >CREATE TABLE cities ( name varchar(80), location point );</PRE ><P> The <TT CLASS="TYPE" >point</TT > type is an example of a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN >-specific data type. </P ><P > Finally, it should be mentioned that if you don't need a table any longer or want to recreate it differently you can remove it using the following command: </P><PRE CLASS="SYNOPSIS" >DROP TABLE <TT CLASS="REPLACEABLE" ><I >tablename</I ></TT >;</PRE ><P> </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="tutorial-concepts.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="tutorial-populate.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Concepts</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="tutorial-sql.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Populating a Table With Rows</TD ></TR ></TABLE ></DIV ></BODY ></HTML >