> For the complete documentation index, see [llms.txt](https://docs.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.collibra.com/data-quality-self-hosted/core-concepts/dq-rules/rule-types.md).

# Rule Types

## SQL-Based Rules

Depending on the complexity, you can choose from short-form or long-form rules.

### Simple

Just the condition (short-form). For example, using the column email\_address. This runs against the dataframe and uses Spark SQL syntax. Simple rules can be thought of as everything after the where clause.

See the [Simple](/data-quality-self-hosted/core-concepts/dq-rules/rule-types/sql-based-rules/simple.md) section for more details.

### Freeform

Where 'Simple' rules just use the condition, 'Freeform' rules use the complete SQL statement. When more complex SQL is required, you can express more with Freeform including joins and window statements.

See the [Freeform](/data-quality-self-hosted/core-concepts/dq-rules/rule-types/sql-based-rules/freeform.md) section for more details.

### Native

Native rules use the SQL dialect of the underlying connection and database. Files are not eligible for native SQL rules. This is ideal if you want to use pushdown profiling and you want to use existing SQL logic. When coupled with pushdown profiling, you can achieve a very minimal infrastructure footprint.

See the[Native](/data-quality-self-hosted/core-concepts/dq-rules/rule-types/sql-based-rules/native.md) section for more details.

### Stat rules

Write rules against meta data and profiling stats. Complex counts and ratios can be referenced with simple syntax.

See the [Stat Rules](/data-quality-self-hosted/core-concepts/dq-rules/rule-types/sql-based-rules/stat-rules.md) section for more details.

### Data Type rules

See the [Data Type Rules](/data-quality-self-hosted/core-concepts/dq-rules/rule-types/sql-based-rules/data-type-rules.md) section for more details.
