# ExpressionInterface

> Interface ExpressionInterface should be used to mark classes, that should be built in a special way.

[API reference](/docs/api/index.md) › [yii](/docs/api/yii/index.md) › [db](/docs/api/yii/db/index.md) › ExpressionInterface

| interface | `yii\db\ExpressionInterface` |
| --- | --- |
| Since | 2.0.14 |
| Source | [`framework/db/ExpressionInterface.php`](https://github.com/yiisoft/yii2/blob/22.0/framework/db/ExpressionInterface.php#L23) |

Implemented by 7 types:

- [`ArrayExpression`](/docs/api/yii/db/arrayexpression/index.md)
- [`Expression`](/docs/api/yii/db/expression/index.md)
- [`JsonExpression`](/docs/api/yii/db/jsonexpression/index.md)
- [`PdoValue`](/docs/api/yii/db/pdovalue/index.md)
- [`Query`](/docs/api/yii/db/query/index.md)
- [`yii\db\oci\LobValue`](/docs/api/yii/db/oci/lobvalue/index.md)
- [`yii\db\conditions\ConditionInterface`](/docs/api/yii/db/conditions/conditioninterface/index.md)

Interface ExpressionInterface should be used to mark classes, that should be built
in a special way.

The database abstraction layer of Yii framework supports objects that implement this
interface and will use [`ExpressionBuilderInterface`](/docs/api/yii/db/expressionbuilderinterface/index.md) to build them.

The default implementation is a class [`Expression`](/docs/api/yii/db/expression/index.md).