************************
First query execution
************************

First of all, we need to prepare some table for query execution. For example, you can make a simple text-based table as follows: 

.. code-block:: bash

  $ mkdir /home/x/table1
  $ cd /home/x/table1
  $ cat > data.csv
  1|abc|1.1|a
  2|def|2.3|b
  3|ghi|3.4|c
  4|jkl|4.5|d
  5|mno|5.6|e
  <CTRL + D>


Apache Tajoâ„¢ provides a SQL shell which allows users to interactively submit SQL queries. In order to use this shell, please execute ``bin/tsql`` ::

  $ $TAJO_HOME/bin/tsql
  tajo>

In order to load the table we created above, we should think of a schema of the table.
Here, we assume the schema as (int, text, float, text). ::

  $ $TAJO_HOME/bin/tsql
  tajo> create external table table1 (
        id int,
        name text, 
        score float, 
        type text) 
        using csv with ('csvfile.delimiter'='|') location 'file:/home/x/table1';

To load an external table, you need to use ‘create external table’ statement. 
In the location clause, you should use the absolute directory path with an appropriate scheme. 
If the table resides in HDFS, you should use ‘hdfs’ instead of ‘file’.

If you want to know DDL statements in more detail, please see Query Language. ::

  tajo> \d
  table1

 ``\d`` command shows the list of tables. ::

  tajo> \d table1

  table name: table1
  table path: file:/home/x/table1
  store type: CSV
  number of rows: 0
  volume (bytes): 78 B
  schema:
  id      INT
  name    TEXT
  score   FLOAT
  type    TEXT

``\d [table name]`` command shows the description of a given table.

Also, you can execute SQL queries as follows: ::

  tajo> select * from table1 where id > 2;
  final state: QUERY_SUCCEEDED, init time: 0.069 sec, response time: 0.397 sec
  result: file:/tmp/tajo-hadoop/staging/q_1363768615503_0001_000001/RESULT, 3 rows ( 35B)

  id,  name,  score,  type
  - - - - - - - - - -  - - -
  3,  ghi,  3.4,  c
  4,  jkl,  4.5,  d
  5,  mno,  5.6,  e

  tajo> exit
  bye

Feel free to enjoy Tajo with SQL standards. 
If you want to know more explanation for SQL supported by Tajo, please refer :doc:`/sql_language`.