<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="langref">

  <title>Impala SQL Language Reference</title>
  <titlealts audience="PDF"><navtitle>SQL Reference</navtitle></titlealts>
  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="SQL"/>
      <data name="Category" value="Data Analysts"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="impala-shell"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      Impala uses SQL as its query language. To protect user investment in skills development and query
      design, Impala provides a high degree of compatibility with the Hive Query Language (HiveQL):
    </p>

    <ul>
      <li>
        Because Impala uses the same metadata store as Hive to record information about table structure and
        properties, Impala can access tables defined through the native Impala <codeph>CREATE TABLE</codeph>
        command, or tables created using the Hive data definition language (DDL).
      </li>

      <li>
        Impala supports data manipulation (DML) statements similar to the DML component of HiveQL.
      </li>

      <li>
        Impala provides many <xref href="impala_functions.xml#builtins">built-in functions</xref> with the same
        names and parameter types as their HiveQL equivalents.
      </li>
    </ul>

    <p>
      Impala supports most of the same <xref href="impala_langref_sql.xml#langref_sql">statements and
      clauses</xref> as HiveQL, including, but not limited to <codeph>JOIN</codeph>, <codeph>AGGREGATE</codeph>,
      <codeph>DISTINCT</codeph>, <codeph>UNION ALL</codeph>, <codeph>ORDER BY</codeph>, <codeph>LIMIT</codeph> and
      (uncorrelated) subquery in the <codeph>FROM</codeph> clause. Impala also supports <codeph>INSERT
      INTO</codeph> and <codeph>INSERT OVERWRITE</codeph>.
    </p>

    <p>
      Impala supports data types with the same names and semantics as the equivalent Hive data types:
      <codeph>STRING</codeph>, <codeph>TINYINT</codeph>, <codeph>SMALLINT</codeph>, <codeph>INT</codeph>,
      <codeph>BIGINT</codeph>, <codeph>FLOAT</codeph>, <codeph>DOUBLE</codeph>, <codeph>BOOLEAN</codeph>,
      <codeph>STRING</codeph>, <codeph>TIMESTAMP</codeph>.
    </p>

    <p>
      For full details about Impala SQL syntax and semantics, see
      <xref href="impala_langref_sql.xml#langref_sql"/>.
    </p>

    <p>
      Most HiveQL <codeph>SELECT</codeph> and <codeph>INSERT</codeph> statements run unmodified with Impala. For
      information about Hive syntax not available in Impala, see
      <xref href="impala_langref_unsupported.xml#langref_hiveql_delta"/>.
    </p>

    <p>
      For a list of the built-in functions available in Impala queries, see
      <xref href="impala_functions.xml#builtins"/>.
    </p>

    <p outputclass="toc"/>
  </conbody>
</concept>
