def select(self, columns, name='', style='Python'):
        """Select columns and return the result as a reference table.

        This method represents the SELECT part of a TaQL command using the
        given columns (or column expressions). It forms a
        `TaQL <../../doc/199.html>`_
        command from the given arguments and executes it using the
        :func:`taql` function.
        The result is returned in a so-called reference table which references
        the columns and rows in the original table. Usually a reference
        table is temporary, but it can be made persistent by giving it a name.
        Note that a reference table is handled as any table, thus can be
        queried again.

        `columns`
          The columns to be selected (projection in data base terms). It is a
          single string in which commas have to be used to separate column
          names. Apart from column names, expressions can be given as well.
        `name`
          The name of the reference table if it is to be made persistent.
        `style`
          The TaQL syntax style to be used (defaults to Python).

        """
        command = 'select ' + columns + ' from $1'
        if name:
            command += ' giving ' + name
        return tablecommand(command, style, [self])