Populating a Table With Rows

The INSERT statement is used to add a row to a table:
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
Note that all data types use rather obvious input formats. Constants that are not simple numeric values must usually be surrounded by single quotes ('), as in the example. The date column is actually quite flexible in what it accepts, but for this tutorial we will stick to the format shown here.

The point type requires a coordinate pair as input, as shown here:
INSERT INTO cities  VALUES ('San Francisco', '(-194.0, 53.0)');

The syntax used so far requires you to remember the order of the columns. An alternative syntax allows you to list the columns explicitly:
INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
    VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');
You can list the columns in a different order if you wish or you can even omit some columns, for example, if the precipitation is unknown:
INSERT INTO weather (date, city, temp_hi, temp_lo)
    VALUES ('1994-11-29', 'Hayward', 54, 37);
Many developers consider explicitly listing the columns better style than relying on the order implicitly.

You should enter all the commands shown above so you will have some data to work with in the following sections.

You can use COPY to load large amounts of data from flat-text files. This is usually faster than using INSERT because the COPY command is optimized for large volumes of data. The drawback is that it allows less flexibility than INSERT. An example would be:
COPY weather FROM '/home/user/weather.txt';
It is important to note that the source file must be available to the backend server machine, not the client, since the backend server reads the file directly. You can read more about the COPY command in the Red Hat Database SQL Guide and Reference.