# Using Sequences

> A sequence is an unbounded array of eXtremeDB-supported scalar data elements. (Please see the Sequences page for further explanation of the sequence data type.)

> Sequences can be inserted, iterated and updated using SQL or native language APIs. Please use the links below to view detailed explanations and examples for your development environment:

> SQL | Using Sequences with SQL
> Python | Using Sequences in Python
> C | Using Sequences in C
> C++ | Using Sequences in C++
> Java | Using Sequences in Java
> C# | Using Sequences in C#

> ## Notes on Sequences and Sequence Iterators

> Note the following regarding the implementation of sequences and sequence iterators:

> - The eXtremeDB runtime does not use any supplemental arithmetic software, arithmetic precision or any other third-party libraries. However when built for some processors the runtime might utilize vector instruction sets to optimize processing
> - It is not possible for a sequence iterator to be shared as input to multiple sequence functions; e.g. for calculating two moving averages. It is however possible to create two identical iterators and use them in parallel from two different threads or connections
> - Cloning of a sequence iterator is supported only when sequences are used from SQL. With all other native language APIs sequence iterators are not "cloned"; instead applications use the “tee” operator, or just manually create copies of the iterators subtree.