# `label` statement

The constraint `$t label <LABEL>` matches all types `$t` that have the label (name) `<LABEL>`.

In a [redefine query](../../schema/redefine/index.md), the statement `<LABEL> label <NEW LABEL>` renames the type `<LABEL>` to `<NEW LABEL>`.

## [](#_defining_type_labels)Defining type labels

The `label` keyword is not used when defining types. The type label is created automatically when the type is defined.

```typeql
#!test[schema]
define entity user;
```

## [](#_matching_type_labels)Matching type labels

```typeql
#!test[schema]
match $t label user;
```

## [](#_redefining_type_labels)Redefining type labels

The `label` keyword can be used in a redefine query to rename an existing type. The kind of the type can optionally be specified.

```typeql
#!test[schema]
redefine entity user label member;
```

Role types are renamed using their scoped label.

```typeql
#!test[schema]
#{{
define relation friendship relates friend;
#}}
#!test[schema]
redefine friendship:friend label participant;
```

[let …​ in](../let-in/index.md) [iid](../iid/index.md)

[Edit on GitHub](https://github.com/typedb/typedb-docs/edit/3.x-development/typeql-reference/modules/ROOT/pages/statements/label.adoc) Edit this page on GitHub.