--- title: "Execute ZCQL Query" url: https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/zcql/execute-zcql-query/ description: "ZCQL is Catalyst's own query language that enables you to perform data creation, retrieval, and modification operations in the Data Store." last_updated: 2025-11-19T15:07:41Z service: Cloud Scale type: general related_links: - name: "Data Store" url: /en/cloud-scale/help/data-store/introduction - name: "ZCQL" url: /en/cloud-scale/help/zcql/introduction/ - name: "Execute ZCQL - API" url: /en/api/code-reference/cloud-scale/zcql/execute-zcql-query/#ExecuteZCQLQuery --- # ZCQL ZCQL is Catalyst's own query language that enables you to perform data creation, retrieval, and modification operations in the [Data Store](https://docs.catalyst.zoho.com/en/cloud-scale/help/data-store/introduction). It supports queries with built-in functions, SQL Join clauses, and other statements and conditions. ### Execute a ZCQL Query Flutter enables you to perform data retrieval operations using ZCQL. Before you execute a ZCQL query to fetch the required data set, you must construct the query to pass it to the `getData()` method. You can learn about the ZCQL syntax from the [ZCQL help page](https://docs.catalyst.zoho.com/en/cloud-scale/help/zcql/introduction). You must pass an instance of `ZCatalystSelectQuery` to the `getData()` method, as shown in the code syntax of a ZCQL query execution below. The `<DATA_STORE_INSTANCE>` used here is the instance defined in the [Data Store Instance page](https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/data-store/create-data-store-instance). ```bash Future<(APIResponse, List<dynamic>?)> ZCatalystApp.getInstance().getDataStoreInstance().getData( ZCatalystSelectQuery selectQuery) ``` **Parameters**: * `selectQuery`: The instance of the type `ZCatalystSelectQuery` to be passed You can create a `selectQuery` instance for `ZCatalystSelectQuery` for the statements supported by ZCQL, in the following way: ```bash ZCatalystSelectQuery.Builder() .select(columns: Set<Column>): ZCatalystSelectQuery.Builder .selectAll(): ZCatalystSelectQuery.Builder .where(column: String, comparator: ZCatalystUtil.Comparator, value: String): ZCatalystSelectQuery.Builder .from(tableName: String): ZCatalystSelectQuery.Builder .and(column: String, comparator: ZCatalystUtil.Comparator, value: String): ZCatalystSelectQuery.Builder .groupBy(columns: Set<Column>): ZCatalystSelectQuery.Builder .orderBy(columns: Set<Column>, sortOrder: ZCatalystUtil.SortOrder): ZCatalystSelectQuery.Builder .innerJoin(tableName: String): ZCatalystSelectQuery.Builder .leftJoin(tableName: String): ZCatalystSelectQuery.Builder .on(joinColumn1: String, comparator: ZCatalystUtil.Comparator, joinColumn2: String): ZCatalystSelectQuery.Builder .or(column: String, comparator: ZCatalystUtil.Comparator, value:String): ZCatalystSelectQuery.Builder .limit(offset: Int, value: Int?): ZCatalystSelectQuery.Builder .build(): ZCatalystSelectQuery ``` A sample code snippet of a ZCQL query execution is shown below: ```bash try { ZCQLColumn column1 = ZCQLColumn('Title'); ZCQLColumn column2 = ZCQLColumn('Category'); Set<ZCQLColumn> columns = Set(); columns.add(column1); columns.add(column2); ZCatalystSelectQuery query = ZCatalystQueryBuilder() .select(columns) .from('Projects') .where('Category', Comparator.EQUAL_TO, 'Official') .build(); var (_, result) = await app.getDataStoreInstance().getData(query); print("Query Result: $result"); } on ZCatalystException catch (ex) { print(ex.toString()); } ```