
# 使用SQL查询数据
AstroZero支持使用SQL语句查询数据，使用SQL查询数据可以简洁直观的查看数据表。本节主要为您介绍，如何使用**控制台** 、**脚本** 及**服务编排**查询数据。
#### 前提条件
查询数据一般是基于对象的查询，本节以查询Class对象（实际创建的对象名为*CNAME__*Class__CST）为例进行介绍。进行查询操作之前，您需要先在Class对象中，新建自定义字段，并添加数据。
如果您还没有Class对象，请先按照[创建自定义数据对象](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0007.html#astrozero_05_0007__section14707144715118)中的步骤创建自定义对象Class及字段，并按照[如何使用布局增删改查对象数据](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0037.html#astrozero_05_0037__section132771847111717)中的步骤添加数据。
 #### 如何使用控制台查询数据
1. 参考[登录经典应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_5025.html)中操作，进入经典版应用设计器。
2. 在应用开发页面的左侧导航栏中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932887236.png)，弹出控制台页面。
   
   图1控制台入口   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932887224.png)
   
   
3. 在"对象管理"页签，输入SQL语句，单击"执行"。 
   例如，输入"select *CNAME* __number__CST from *CNAME* __Class__CST"，即可显示查询的字段列，如[图2]所示。关于控制台的更多介绍，请参见[使用控制台分析查询SQL](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0350.html)。
   图2执行SQL查询对象"Account"数据   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046640.png "点击放大")
   
   
 
#### 如何使用脚本查询数据
使用脚本查询自定义对象Class（*CNAME* __Class__CST），对象创建过程可参见[创建自定义数据对象](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0007.html#astrozero_05_0007__section14707144715118)，数据添加过程可参见[如何使用布局增删改查对象数据](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0037.html#astrozero_05_0037__section132771847111717)。
1. 参考[脚本开发实例](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0630.html)中操作，新建脚本"search_data"，并在脚本中输入以下代码，保存脚本。
   
   脚本是使用execute接口执行sql语句，脚本执行后，可以在脚本底部"日志"页签中，查看查询结果。
   ```
   import * as db from 'db';
   import * as es from 'es';
    
   @useObject(['CNAME__Class__CST'])
    
   @action.object({ type: "param" })
   export class Input { }
   @action.object({ type: "param" })
   export class Output { }
    
   @action.object({ type: 'method' })
   export class SearchScript {
       @action.method({ input: 'ParamsInput', output: 'ParamsOutput' })
       public run(input: Input): Output {
           let out = new Output()
           this.doSearchScript();
           return out;
       }
       private doSearchScript() {
           let sql = db.sql();
           let sqlTest = "select name,CNAME__number__CST from CNAME__Class__CST "
               + "where CNAME__number__CST > ?"
           let result = db.sql().exec(sqlTest, { params: [0] })
           console.log("result", result)
       }
   }
   ```
   
   
2. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285745.png)，执行脚本，并在脚本底部的"日志"页签中，查看执行后结果。
   
   脚本开发的更多介绍，请参见[脚本开发](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0044.html)。
   图3脚本执行SQL查询对象"CNAME__Class__CST"数据   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046632.png "点击放大")
   
   
 
#### 如何使用服务编排查询数据
使用服务编排中"记录查询"图元，查询自定义对象Class（*CNAME* __Class__CST），实现"select name, *CNAME* __number__CST from *CNAM* *E*__Class__CST"。
![](https://support.huaweicloud.com/usermanual-astrozero/public_sys-resources/note_3.0-zh-cn.png)
服务编排开发的相关内容，请参见[如何使用服务编排开发数据的增删改查](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0604.html)。
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，新建服务编排"flowSearchData"。
2. 在全局上下文中，创建变量"name"、"number"，类型分别为"文本"、"数字"。
3. 在服务编排的"基本"图元中，拖拽一个记录查询![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125937.png)到画布，参考[图4]，配置对象和输出。
   
   图4正确配置"记录查询"   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046612.png "点击放大")
   
   
4. 连接开始图元和记录查询图元，参考下图，配置服务编排出参。 
   图5正确配置"输出"   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046636.png "点击放大")
   
   
5. 配置完成后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046620.png)，保存服务编排，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046644.png)，进入运行页面。
   
   图6保存服务编排并运行   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046648.png "点击放大")
   
   
6. 本服务编排不需要输出参数，请直接单击"运行"，即可查看输出的json格式结果。 
   图7服务编排实现查询自定义对象的字段   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125949.png)
   
   
 
