# collation=collation attribute

#### Function

The `collation` attribute is an optional attribute that specifies whether collation is based on the territory specified for the database or Unicode codepoint collation. The valid values for the `collation` attribute are:

UCS_BASIC
  Unicode codepoint collation. This value is the default.
TERRITORY_BASED
  Based on the language specified with the territory attribute. The default collation strength for the locale is used. The default for Derby is commonly TERTIARY, in which character case is significant in searches and comparisons.
TERRITORY_BASED:PRIMARY
  Territory based with collation strength PRIMARY. Specify this value to make Derby behave similarly to many other databases, for which PRIMARY is commonly the default. PRIMARY typically means that only differences in base letters are considered significant, whereas differences in accents or case are not considered significant.
TERRITORY_BASED:SECONDARY
  Territory based with collation strength SECONDARY. SECONDARY typically means that differences in base letters or accents are considered significant, whereas differences in case are not considered significant.
TERRITORY_BASED:TERTIARY
  Territory based with collation strength TERTIARY. TERTIARY typically means that differences in base letters, accents, or case are all considered significant.
TERRITORY_BASED:IDENTICAL
  Territory based with collation strength IDENTICAL. IDENTICAL means that all differences are considered significant.

Restriction: The `collation` attribute can be specified only when you create a database. You cannot specify this attribute on an existing database or when you upgrade a database.

If you specify the `collation` attribute with the value TERRITORY_BASED, or one of its variants with a specific collation strength, the collation is based on the language and country codes that you specify with the `territory` attribute.

If you do not specify the `territory` attribute when you create the database, Derby uses the `java.util.Locale.getDefault` method to determine the current value of the default locale for this instance of the Java Virtual Machine (JVM).

Note: The `collation` attribute applies only to user-defined tables. The system tables use the Unicode codepoint collation.

For information on how Derby handles collation, see "Creating a database with territory-based collation" and "Character-based collation in Derby" in the Java DB Developer's Guide.

#### Example

The following example shows the URL to create the `MexicanDB` database. The territory attribute specifies Spanish for the language code and Mexico for the country code. The `collation` attribute specifies that the collation for the database is territory based.

    jdbc:derby:MexicanDB;create=true;territory=es_MX;collation=TERRITORY_BASED

Parent topic: Setting attributes for the database connection URL