blob: 0b165f5f50dc8625f42af1f34cb8158426113aa5 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data. Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive regional outages.
">
<meta name="keywords" content="cassandra, apache, apache cassandra, distributed storage, key value store, scalability, bigtable, dynamo" />
<meta name="robots" content="index,follow" />
<meta name="language" content="en" />
<title>Documentation</title>
<link rel="canonical" href="http://cassandra.apache.org/doc/stable/cql/">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<link rel="stylesheet" href="./../../../css/style.css">
<link rel="stylesheet" href="./../../../css/sphinx.css">
<link rel="top" title="Apache Cassandra Documentation v3.11.7" href="../index.html"/> <link rel="next" title="Definitions" href="definitions.html"/> <link rel="prev" title="Data Modeling" href="../data_modeling/index.html"/>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<link type="application/atom+xml" rel="alternate" href="http://cassandra.apache.org/feed.xml" title="Apache Cassandra Website" />
</head>
<body>
<!-- breadcrumbs -->
<div class="topnav">
<div class="container breadcrumb-container">
<ul class="breadcrumb">
<li>
<div class="dropdown">
<img class="asf-logo" src="./../../../img/asf_feather.png" />
<a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li><a href="http://www.apache.org">Apache Homepage</a></li>
<li><a href="http://www.apache.org/licenses/">License</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li><a href="http://www.apache.org/security/">Security</a></li>
</ul>
</div>
</li>
<li><a href="./../../../">Apache Cassandra</a></li>
<li><a href="./../../../doc/latest/">Documentation</a></li>
<li>The Cassandra Query Language (CQL)</li>
</ul>
</div>
<!-- navbar -->
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#cassandra-menu" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="./../../../"><img src="./../../../img/cassandra_logo.png" alt="Apache Cassandra logo" /></a>
</div><!-- /.navbar-header -->
<div id="cassandra-menu" class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="./../../../">Home</a></li>
<li><a href="./../../../download/">Download</a></li>
<li><a href="./../../../doc/latest/">Documentation</a></li>
<li><a href="./../../../community/">Community</a></li>
<li>
<a href="./../../../blog/">Blog</a>
</li>
</ul>
</div><!-- /#cassandra-menu -->
</div>
</nav><!-- /.navbar -->
</div><!-- /.topnav -->
<div class="container-fluid">
<div class="row">
<div class="col-md-3">
<div class="doc-navigation">
<div class="doc-menu" role="navigation">
<div class="navbar-header">
<button type="button" class="pull-left navbar-toggle" data-toggle="collapse" data-target=".sidebar-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse sidebar-navbar-collapse">
<form id="doc-search-form" class="navbar-form" action="../search.html" method="get" role="search">
<div class="form-group">
<input type="text" size="30" class="form-control input-sm" name="q" placeholder="Search docs">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</div>
</form>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../getting_started/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../architecture/index.html">Architecture</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data_modeling/index.html">Data Modeling</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">The Cassandra Query Language (CQL)</a><ul>
<li class="toctree-l2"><a class="reference internal" href="definitions.html">Definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html">Data Definition</a></li>
<li class="toctree-l2"><a class="reference internal" href="dml.html">Data Manipulation</a></li>
<li class="toctree-l2"><a class="reference internal" href="indexes.html">Secondary Indexes</a></li>
<li class="toctree-l2"><a class="reference internal" href="mvs.html">Materialized Views</a></li>
<li class="toctree-l2"><a class="reference internal" href="security.html">Security</a></li>
<li class="toctree-l2"><a class="reference internal" href="functions.html">Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html">JSON Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="triggers.html">Triggers</a></li>
<li class="toctree-l2"><a class="reference internal" href="appendices.html">Appendices</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html">Changes</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuring Cassandra</a></li>
<li class="toctree-l1"><a class="reference internal" href="../operating/index.html">Operating Cassandra</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Cassandra Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../development/index.html">Cassandra Development</a></li>
<li class="toctree-l1"><a class="reference internal" href="../faq/index.html">Frequently Asked Questions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../bugs.html">Reporting Bugs and Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contactus.html">Contact us</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="col-md-8">
<div class="content doc-content">
<div class="content-container">
<div class="section" id="the-cassandra-query-language-cql">
<span id="cql"></span><h1>The Cassandra Query Language (CQL)<a class="headerlink" href="#the-cassandra-query-language-cql" title="Permalink to this headline">¶</a></h1>
<p>This document describes the Cassandra Query Language (CQL) <a class="footnote-reference" href="#id2" id="id1">[1]</a>. Note that this document describes the last version of
the languages. However, the <a class="reference external" href="#changes">changes</a> section provides the diff between the different versions of CQL.</p>
<p>CQL offers a model close to SQL in the sense that data is put in <em>tables</em> containing <em>rows</em> of <em>columns</em>. For
that reason, when used in this document, these terms (tables, rows and columns) have the same definition than they have
in SQL. But please note that as such, they do <strong>not</strong> refer to the concept of rows and columns found in the deprecated
thrift API (and earlier version 1 and 2 of CQL).</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="definitions.html">Definitions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="definitions.html#conventions">Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="definitions.html#identifiers">Identifiers and keywords</a></li>
<li class="toctree-l2"><a class="reference internal" href="definitions.html#constants">Constants</a></li>
<li class="toctree-l2"><a class="reference internal" href="definitions.html#terms">Terms</a></li>
<li class="toctree-l2"><a class="reference internal" href="definitions.html#comments">Comments</a></li>
<li class="toctree-l2"><a class="reference internal" href="definitions.html#statements">Statements</a></li>
<li class="toctree-l2"><a class="reference internal" href="definitions.html#prepared-statements">Prepared Statements</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="types.html">Data Types</a><ul>
<li class="toctree-l2"><a class="reference internal" href="types.html#native-types">Native Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#working-with-timestamps">Working with timestamps</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#working-with-dates">Working with dates</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#working-with-times">Working with times</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#working-with-durations">Working with durations</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#collections">Collections</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#user-defined-types">User-Defined Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#tuples">Tuples</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html#custom-types">Custom Types</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="ddl.html">Data Definition</a><ul>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#common-definitions">Common definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#create-keyspace">CREATE KEYSPACE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#use">USE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#alter-keyspace">ALTER KEYSPACE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#drop-keyspace">DROP KEYSPACE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#create-table">CREATE TABLE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#alter-table">ALTER TABLE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#drop-table">DROP TABLE</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html#truncate">TRUNCATE</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="dml.html">Data Manipulation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="dml.html#select">SELECT</a></li>
<li class="toctree-l2"><a class="reference internal" href="dml.html#insert">INSERT</a></li>
<li class="toctree-l2"><a class="reference internal" href="dml.html#update">UPDATE</a></li>
<li class="toctree-l2"><a class="reference internal" href="dml.html#delete">DELETE</a></li>
<li class="toctree-l2"><a class="reference internal" href="dml.html#batch">BATCH</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="indexes.html">Secondary Indexes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="indexes.html#create-index">CREATE INDEX</a></li>
<li class="toctree-l2"><a class="reference internal" href="indexes.html#drop-index">DROP INDEX</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="mvs.html">Materialized Views</a><ul>
<li class="toctree-l2"><a class="reference internal" href="mvs.html#create-materialized-view">CREATE MATERIALIZED VIEW</a></li>
<li class="toctree-l2"><a class="reference internal" href="mvs.html#alter-materialized-view">ALTER MATERIALIZED VIEW</a></li>
<li class="toctree-l2"><a class="reference internal" href="mvs.html#drop-materialized-view">DROP MATERIALIZED VIEW</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="security.html">Security</a><ul>
<li class="toctree-l2"><a class="reference internal" href="security.html#database-roles">Database Roles</a></li>
<li class="toctree-l2"><a class="reference internal" href="security.html#users">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="security.html#data-control">Data Control</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="functions.html">Functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="functions.html#scalar-functions">Scalar functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="functions.html#aggregate-functions">Aggregate functions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="json.html">JSON Support</a><ul>
<li class="toctree-l2"><a class="reference internal" href="json.html#select-json">SELECT JSON</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html#insert-json">INSERT JSON</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html#json-encoding-of-cassandra-data-types">JSON Encoding of Cassandra Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html#the-fromjson-function">The fromJson() Function</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html#the-tojson-function">The toJson() Function</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="triggers.html">Triggers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="triggers.html#create-trigger">CREATE TRIGGER</a></li>
<li class="toctree-l2"><a class="reference internal" href="triggers.html#drop-trigger">DROP TRIGGER</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="appendices.html">Appendices</a><ul>
<li class="toctree-l2"><a class="reference internal" href="appendices.html#appendix-a-cql-keywords">Appendix A: CQL Keywords</a></li>
<li class="toctree-l2"><a class="reference internal" href="appendices.html#appendix-b-cql-reserved-types">Appendix B: CQL Reserved Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="appendices.html#appendix-c-dropping-compact-storage">Appendix C: Dropping Compact Storage</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changes.html">Changes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id1">3.4.4</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id2">3.4.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id5">3.4.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id6">3.4.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id7">3.4.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id8">3.3.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id9">3.3.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id10">3.2.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id11">3.1.7</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id12">3.1.6</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id13">3.1.5</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id14">3.1.4</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id15">3.1.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id16">3.1.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id17">3.1.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id18">3.1.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id19">3.0.5</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id20">3.0.4</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id21">3.0.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id22">3.0.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#id23">3.0.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html#versioning">Versioning</a></li>
</ul>
</li>
</ul>
</div>
<table class="docutils footnote" frame="void" id="id2" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Technically, this document CQL version 3, which is not backward compatible with CQL version 1 and 2 (which have
been deprecated and remove) and differs from it in numerous ways.</td></tr>
</tbody>
</table>
</div>
<div class="doc-prev-next-links" role="navigation" aria-label="footer navigation">
<a href="definitions.html" class="btn btn-default pull-right " role="button" title="Definitions" accesskey="n">Next <span class="glyphicon glyphicon-circle-arrow-right" aria-hidden="true"></span></a>
<a href="../data_modeling/index.html" class="btn btn-default" role="button" title="Data Modeling" accesskey="p"><span class="glyphicon glyphicon-circle-arrow-left" aria-hidden="true"></span> Previous</a>
</div>
</div>
</div>
</div>
</div>
</div>
<hr />
<footer>
<div class="container">
<div class="col-md-4 social-blk">
<span class="social">
<a href="https://twitter.com/cassandra"
class="twitter-follow-button"
data-show-count="false" data-size="large">Follow @cassandra</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<a href="https://twitter.com/intent/tweet?button_hashtag=cassandra"
class="twitter-hashtag-button"
data-size="large"
data-related="ApacheCassandra">Tweet #cassandra</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
</span>
<a class="subscribe-rss icon-link" href="/feed.xml" title="Subscribe to Blog via RSS">
<span><i class="fa fa-rss"></i></span>
</a>
</div>
<div class="col-md-8 trademark">
<p>&copy; 2016 <a href="http://apache.org">The Apache Software Foundation</a>.
Apache, the Apache feather logo, and Apache Cassandra are trademarks of The Apache Software Foundation.
<p>
</div>
</div><!-- /.container -->
</footer>
<!-- Javascript. Placed here so pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="./../../../js/underscore-min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script src="./../../../js/doctools.js"></script>
<script src="./../../../js/searchtools.js"></script>
<script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: "", VERSION: "", COLLAPSE_INDEX: false, FILE_SUFFIX: ".html", HAS_SOURCE: false, SOURCELINK_SUFFIX: ".txt" }; </script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
try {
var pageTracker = _gat._getTracker("UA-11583863-1");
pageTracker._trackPageview();
} catch(err) {}
</script>
</body>
</html>