def select(self, select, table_name, where=None, extra=None):
self.verify_table_existence(table_name)<EOL>return self.execute_query(<EOL>six.text_type(Select(select, table_name, where, extra)),<EOL>logging.getLogger().findCaller(),<EOL>)<EOL>
Send a SELECT query to the database.

:param str select: Attribute for the ``SELECT`` query.
:param str table_name: |arg_select_table_name|
:param where: |arg_select_where|
:type where: |arg_where_type|
:param str extra: |arg_select_extra|
:return: Result of the query execution.
:rtype: sqlite3.Cursor
:raises simplesqlite.NullDatabaseConnectionError:
    |raises_check_connection|
:raises simplesqlite.TableNotFoundError:
    |raises_verify_table_existence|
:raises simplesqlite.OperationalError: |raises_operational_error|