CodeQL笔记之基础语法(二)

本文介绍了CodeQL的基础语法,包括查询和类型的详细解释。涵盖了select查询子句、查询谓词、原始类型、类的定义及其成员等核心概念。


前言

      学习利用CodeQL进行代码审计。基础语法包含一些概念和例子。本文是查询和类的部分。


一、查询

     查询就是整个QL语言运行后输出的结果。有两种查询类型:

  • 第一种是该模块中定义了select 查询子句
  • 查询谓词,这意味着我们可以在当前模块中定义或者从其他模块中导入

1.select查询子句

     1)select子句格式如下所示(通常在文件末尾),其中from和where语句部分是可选的。我们可以在from中定义变量,在where中给变量赋值和对查询结果的过滤,最后在select中显示结果。

from /* ... variable declarations ... */
where /* ... logical formula ... */
select /* ... expressions ... */

     2)在select语句中还可以使用一些关键字:

  • as关键字,后面跟随一个名字。作用跟SQL中的as相似给个别名,给结果列提供了一个"标签",并允许在后续的select表达式中使用它们。
  • order by关键字,后面跟随一个一个结果列名。作用相当于sql中的order by,用于排序结果,并且在结果列名后可选asc(升序)或desc(降序)关键字。

     3)官方例子如下,第一张图结果返回的是select子句 查询的结果,第二张图加了个排序

from int x, int y
where x = 3 and y in [0 .. 2]
select x, y, x * y as product, "product: " + product

在这里插入图片描述
在这里插入图片描述

2.查询谓词

     1)查询谓词是一个非成员谓词,并在最开头使用query作为注解。它返回谓词计算结果的所有元组,下面是一个官方的示例:

query int getProduct(int x, int y) {
   
   <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值