NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
sql_builder类 参考

SQL语句构建器 更多...

#include <sql_builder.hpp>

struct  select_data
 SELECT语句的数据结构 更多...
struct  insert_data
 INSERT语句的数据结构 更多...
struct  update_data
 UPDATE语句的数据结构 更多...

Public 成员函数

 sql_builder ()=default
 默认构造函数
 ~sql_builder ()=default
 析构函数
 sql_builder (const sql_builder &other)
 拷贝构造函数
sql_builderoperator= (const sql_builder &other)
 拷贝赋值运算符
sql_builderselect (vector< string > fields)
 列表设置SELECT字段
sql_builderselect (std::initializer_list< string > fields)
 初始化列表设置SELECT字段
sql_builderselect (string field)
 添加SELECT字段
sql_builderselect_all () noexcept
 选择所有字段(SELECT *)
sql_builderdistinct ()
 添加DISTINCT关键字
sql_builderfrom (string table) noexcept
 设置主表
sql_builderfrom (string table, string alias) noexcept
 设置主表并指定别名
sql_builderjoin (sql_join type, string table, string on_condition)
 添加JOIN子句
sql_builderjoin (string table, string on_condition)
 添加INNER JOIN子句
sql_builderleft_join (string table, string on_condition)
 添加LEFT JOIN子句
sql_builderright_join (string table, string on_condition)
 添加RIGHT JOIN子句
sql_builderinner_join (string table, string on_condition)
 添加INNER JOIN子句
sql_builderfull_join (string table, string on_condition)
 添加FULL JOIN子句
sql_builderwhere (string condition)
 添加WHERE条件
sql_builderwhere_eq (string field, string value)
 添加相等条件
sql_builderwhere_ne (string field, string value)
 添加不等条件
sql_builderwhere_gt (string field, string value)
 添加大于条件
sql_builderwhere_ge (string field, string value)
 添加大于等于条件
sql_builderwhere_lt (string field, string value)
 添加小于条件
sql_builderwhere_le (string field, string value)
 添加小于等于条件
sql_builderwhere_like (string field, string pattern)
 添加LIKE条件
sql_builderwhere_not_like (string field, string pattern)
 添加NOT LIKE条件
sql_builderwhere_in (string field, vector< string > values)
 添加IN条件
sql_builderwhere_not_in (string field, vector< string > values)
 添加NOT IN条件
sql_builderwhere_between (string field, string start, string end)
 添加BETWEEN条件
sql_builderwhere_not_between (string field, string start, string end)
 添加NOT BETWEEN条件
sql_builderwhere_is_null (string field)
 添加IS NULL条件
sql_builderwhere_is_not_null (string field)
 添加IS NOT NULL条件
sql_builderwhere_exists (string subquery)
 添加EXISTS条件
sql_builderwhere_not_exists (string subquery)
 添加NOT EXISTS条件
sql_builderor_where (string condition)
 添加OR条件(与上一个条件组合)
sql_buildergroup_by (string field)
 添加GROUP BY字段
sql_buildergroup_by (const vector< string > &fields)
 添加GROUP BY字段列表
sql_builderhaving (string condition)
 添加HAVING条件
sql_builderorder_by (string field, sql_order order=sql_order::ASC)
 添加ORDER BY子句
sql_builderorder_by_asc (string field)
 添加升序排序
sql_builderorder_by_desc (string field)
 添加降序排序
sql_builderlimit (int count)
 添加LIMIT限制
sql_builderoffset (int count)
 添加OFFSET偏移
sql_builderpage (int page_num, int page_size)
 添加分页
sql_builderinsert_into (string table, vector< string > fields)
 设置INSERT INTO表名和字段
sql_builderinsert_into (string table)
 设置INSERT INTO表名
sql_buildervalues (vector< string > values)
 设置VALUES占位符
sql_buildercolumns (vector< string > fields)
 设置INSERT字段列表
sql_builderupdate (string table)
 设置UPDATE表名
sql_builderset (string assignment)
 添加SET赋值
sql_builderset (string field, string value)
 添加SET赋值(字段=值形式)
sql_builderset_increment (string field, int value=1)
 添加自增赋值
sql_builderset_decrement (string field, int value=1)
 添加自减赋值
sql_builderremove ()
 设置DELETE操作
sql_builderdelete_from (string table)
 设置DELETE FROM表名
sql_builderselect_count (string field, string alias)
 COUNT聚合
sql_builderselect_count (string field)
 COUNT聚合(无别名)
sql_builderselect_count ()
 COUNT(*)
sql_builderselect_sum (string field, string alias)
 SUM聚合
sql_builderselect_sum (string field)
 SUM聚合(无别名)
sql_builderselect_avg (string field, string alias)
 AVG聚合
sql_builderselect_avg (string field)
 AVG聚合(无别名)
sql_builderselect_max (string field, string alias)
 MAX聚合
sql_builderselect_max (string field)
 MAX聚合(无别名)
sql_builderselect_min (string field, string alias)
 MIN聚合
sql_builderselect_min (string field)
 MIN聚合(无别名)
sql_builderselect_distinct (string field)
 添加DISTINCT字段
sql_builderselect_subquery (string subquery, string alias)
 添加子查询作为SELECT字段
sql_builderselect_subquery (string subquery)
 添加子查询作为SELECT字段(无别名)
sql_builderfrom_subquery (string subquery, string alias)
 使用子查询作为FROM表
sql_builderreset () noexcept
 重置构建器状态
NEFORCE_NODISCARD sql_operate type () const noexcept
 获取当前SQL操作类型
NEFORCE_NODISCARD string_view table () const noexcept
 获取当前表名
NEFORCE_NODISCARD bool is_empty () const noexcept
 检查构建器是否为空
NEFORCE_NODISCARD string build () const
 构建最终的SQL语句

详细描述

SQL语句构建器

提供流式API构建SQL语句:

  • 支持SELECT、INSERT、UPDATE、DELETE操作
  • 支持JOIN、WHERE、GROUP BY、ORDER BY、LIMIT等子句
  • 支持聚合函数(COUNT、SUM、AVG、MAX、MIN)
  • 支持子查询
  • 自动处理SQL语法

在文件 sql_builder.hpp94 行定义.

构造及析构函数说明

◆ sql_builder()

sql_builder::sql_builder ( const sql_builder & other)

拷贝构造函数

参数
other源对象

引用了 sql_builder().

成员函数说明

◆ build()

NEFORCE_NODISCARD string sql_builder::build ( ) const

构建最终的SQL语句

返回
完整的SQL字符串
异常
value_exception当SQL结构不完整时抛出

根据当前构建的状态生成完整的SQL语句。

◆ columns()

sql_builder & sql_builder::columns ( vector< string > fields)

设置INSERT字段列表

参数
fields字段列表
返回
自身引用

引用了 columns() , 以及 sql_builder().

被这些函数引用 columns().

◆ delete_from()

sql_builder & sql_builder::delete_from ( string table)

设置DELETE FROM表名

参数
table表名
返回
自身引用

引用了 delete_from(), sql_builder() , 以及 table().

被这些函数引用 delete_from().

◆ distinct()

sql_builder & sql_builder::distinct ( )

添加DISTINCT关键字

返回
自身引用

引用了 distinct() , 以及 sql_builder().

被这些函数引用 distinct().

◆ from() [1/2]

sql_builder & sql_builder::from ( string table)
noexcept

设置主表

参数
table表名
返回
自身引用

引用了 from(), sql_builder() , 以及 table().

被这些函数引用 from() , 以及 from().

◆ from() [2/2]

sql_builder & sql_builder::from ( string table,
string alias )
noexcept

设置主表并指定别名

参数
table表名
alias表别名
返回
自身引用

引用了 from(), sql_builder() , 以及 table().

◆ from_subquery()

sql_builder & sql_builder::from_subquery ( string subquery,
string alias )

使用子查询作为FROM表

参数
subquery子查询SQL
alias别名
返回
自身引用

引用了 from_subquery() , 以及 sql_builder().

被这些函数引用 from_subquery().

◆ full_join()

sql_builder & sql_builder::full_join ( string table,
string on_condition )

添加FULL JOIN子句

参数
table连接表名
on_conditionON条件
返回
自身引用

引用了 full_join(), sql_builder() , 以及 table().

被这些函数引用 full_join().

◆ group_by() [1/2]

sql_builder & sql_builder::group_by ( const vector< string > & fields)

添加GROUP BY字段列表

参数
fields字段列表
返回
自身引用

引用了 group_by() , 以及 sql_builder().

◆ group_by() [2/2]

sql_builder & sql_builder::group_by ( string field)

添加GROUP BY字段

参数
field字段名
返回
自身引用

引用了 group_by() , 以及 sql_builder().

被这些函数引用 group_by() , 以及 group_by().

◆ having()

sql_builder & sql_builder::having ( string condition)

添加HAVING条件

参数
condition条件表达式
返回
自身引用

引用了 having() , 以及 sql_builder().

被这些函数引用 having().

◆ inner_join()

sql_builder & sql_builder::inner_join ( string table,
string on_condition )

添加INNER JOIN子句

参数
table连接表名
on_conditionON条件
返回
自身引用

引用了 inner_join(), sql_builder() , 以及 table().

被这些函数引用 inner_join().

◆ insert_into() [1/2]

sql_builder & sql_builder::insert_into ( string table)

设置INSERT INTO表名

参数
table表名
返回
自身引用

引用了 insert_into(), sql_builder() , 以及 table().

◆ insert_into() [2/2]

sql_builder & sql_builder::insert_into ( string table,
vector< string > fields )

设置INSERT INTO表名和字段

参数
table表名
fields字段列表
返回
自身引用

引用了 insert_into(), sql_builder() , 以及 table().

被这些函数引用 insert_into() , 以及 insert_into().

◆ is_empty()

NEFORCE_NODISCARD bool sql_builder::is_empty ( ) const
inlinenoexcept

检查构建器是否为空

返回
未设置表名返回true

在文件 sql_builder.hpp624 行定义.

◆ join() [1/2]

sql_builder & sql_builder::join ( sql_join type,
string table,
string on_condition )

添加JOIN子句

参数
typeJOIN类型
table连接表名
on_conditionON条件
返回
自身引用

引用了 join(), sql_builder(), table() , 以及 type().

被这些函数引用 join() , 以及 join().

◆ join() [2/2]

sql_builder & sql_builder::join ( string table,
string on_condition )

添加INNER JOIN子句

参数
table连接表名
on_conditionON条件
返回
自身引用

引用了 join(), sql_builder() , 以及 table().

◆ left_join()

sql_builder & sql_builder::left_join ( string table,
string on_condition )

添加LEFT JOIN子句

参数
table连接表名
on_conditionON条件
返回
自身引用

引用了 left_join(), sql_builder() , 以及 table().

被这些函数引用 left_join().

◆ limit()

sql_builder & sql_builder::limit ( int count)

添加LIMIT限制

参数
count返回行数
返回
自身引用

引用了 count(), limit() , 以及 sql_builder().

被这些函数引用 limit().

◆ offset()

sql_builder & sql_builder::offset ( int count)

添加OFFSET偏移

参数
count偏移行数
返回
自身引用

引用了 count(), offset() , 以及 sql_builder().

被这些函数引用 offset().

◆ operator=()

sql_builder & sql_builder::operator= ( const sql_builder & other)

拷贝赋值运算符

参数
other源对象
返回
自身引用

引用了 sql_builder().

◆ or_where()

sql_builder & sql_builder::or_where ( string condition)

添加OR条件(与上一个条件组合)

参数
condition条件表达式
返回
自身引用

将当前条件与上一个条件用OR连接。

引用了 or_where() , 以及 sql_builder().

被这些函数引用 or_where().

◆ order_by()

sql_builder & sql_builder::order_by ( string field,
sql_order order = sql_order::ASC )

添加ORDER BY子句

参数
field字段名
order排序方向
返回
自身引用

引用了 order_by() , 以及 sql_builder().

被这些函数引用 order_by().

◆ order_by_asc()

sql_builder & sql_builder::order_by_asc ( string field)

添加升序排序

参数
field字段名
返回
自身引用

引用了 order_by_asc() , 以及 sql_builder().

被这些函数引用 order_by_asc().

◆ order_by_desc()

sql_builder & sql_builder::order_by_desc ( string field)

添加降序排序

参数
field字段名
返回
自身引用

引用了 order_by_desc() , 以及 sql_builder().

被这些函数引用 order_by_desc().

◆ page()

sql_builder & sql_builder::page ( int page_num,
int page_size )

添加分页

参数
page_num页码(从1开始)
page_size每页大小
返回
自身引用

引用了 page() , 以及 sql_builder().

被这些函数引用 page().

◆ remove()

sql_builder & sql_builder::remove ( )

设置DELETE操作

返回
自身引用

引用了 remove() , 以及 sql_builder().

被这些函数引用 remove().

◆ reset()

sql_builder & sql_builder::reset ( )
noexcept

重置构建器状态

返回
自身引用

引用了 reset() , 以及 sql_builder().

被这些函数引用 reset().

◆ right_join()

sql_builder & sql_builder::right_join ( string table,
string on_condition )

添加RIGHT JOIN子句

参数
table连接表名
on_conditionON条件
返回
自身引用

引用了 right_join(), sql_builder() , 以及 table().

被这些函数引用 right_join().

◆ select() [1/3]

sql_builder & sql_builder::select ( std::initializer_list< string > fields)

初始化列表设置SELECT字段

参数
fields字段列表
返回
自身引用

引用了 select() , 以及 sql_builder().

◆ select() [2/3]

sql_builder & sql_builder::select ( string field)

添加SELECT字段

参数
field字段名
返回
自身引用

引用了 select() , 以及 sql_builder().

◆ select() [3/3]

sql_builder & sql_builder::select ( vector< string > fields)

列表设置SELECT字段

参数
fields字段列表
返回
自身引用

引用了 select() , 以及 sql_builder().

被这些函数引用 select(), select() , 以及 select().

◆ select_all()

sql_builder & sql_builder::select_all ( )
noexcept

选择所有字段(SELECT *)

返回
自身引用

引用了 select_all() , 以及 sql_builder().

被这些函数引用 select_all().

◆ select_distinct()

sql_builder & sql_builder::select_distinct ( string field)

添加DISTINCT字段

参数
field字段名
返回
自身引用

引用了 select_distinct() , 以及 sql_builder().

被这些函数引用 select_distinct().

◆ select_subquery() [1/2]

sql_builder & sql_builder::select_subquery ( string subquery)

添加子查询作为SELECT字段(无别名)

参数
subquery子查询SQL
返回
自身引用

引用了 select_subquery() , 以及 sql_builder().

◆ select_subquery() [2/2]

sql_builder & sql_builder::select_subquery ( string subquery,
string alias )

添加子查询作为SELECT字段

参数
subquery子查询SQL
alias别名
返回
自身引用

引用了 select_subquery() , 以及 sql_builder().

被这些函数引用 select_subquery() , 以及 select_subquery().

◆ set() [1/2]

sql_builder & sql_builder::set ( string assignment)

添加SET赋值

参数
assignment赋值表达式(如"field = value")
返回
自身引用

引用了 set() , 以及 sql_builder().

被这些函数引用 set() , 以及 set().

◆ set() [2/2]

sql_builder & sql_builder::set ( string field,
string value )

添加SET赋值(字段=值形式)

参数
field字段名
value
返回
自身引用

引用了 set() , 以及 sql_builder().

◆ set_decrement()

sql_builder & sql_builder::set_decrement ( string field,
int value = 1 )

添加自减赋值

参数
field字段名
value减少量,默认为1
返回
自身引用

引用了 set_decrement() , 以及 sql_builder().

被这些函数引用 set_decrement().

◆ set_increment()

sql_builder & sql_builder::set_increment ( string field,
int value = 1 )

添加自增赋值

参数
field字段名
value增加量,默认为1
返回
自身引用

引用了 set_increment() , 以及 sql_builder().

被这些函数引用 set_increment().

◆ table()

NEFORCE_NODISCARD string_view sql_builder::table ( ) const
inlinenoexcept

获取当前表名

返回
表名视图

在文件 sql_builder.hpp618 行定义.

引用了 basic_string_view< CharT, Traits >::view().

被这些函数引用 delete_from(), from(), from(), full_join(), inner_join(), insert_into(), insert_into(), join(), join(), left_join(), right_join() , 以及 update().

◆ type()

NEFORCE_NODISCARD sql_operate sql_builder::type ( ) const
inlinenoexcept

获取当前SQL操作类型

返回
操作类型

在文件 sql_builder.hpp612 行定义.

引用了 type().

被这些函数引用 join() , 以及 type().

◆ update()

sql_builder & sql_builder::update ( string table)

设置UPDATE表名

参数
table表名
返回
自身引用

引用了 sql_builder(), table() , 以及 update().

被这些函数引用 update().

◆ values()

sql_builder & sql_builder::values ( vector< string > values)

设置VALUES占位符

参数
values值占位符列表(如"?"或实际值)
返回
自身引用

引用了 sql_builder() , 以及 values().

被这些函数引用 values(), where_in() , 以及 where_not_in().

◆ where()

sql_builder & sql_builder::where ( string condition)

添加WHERE条件

参数
condition条件表达式
返回
自身引用

引用了 sql_builder() , 以及 where().

被这些函数引用 where().

◆ where_between()

sql_builder & sql_builder::where_between ( string field,
string start,
string end )

添加BETWEEN条件

参数
field字段名
start起始值
end结束值
返回
自身引用

引用了 end(), sql_builder() , 以及 where_between().

被这些函数引用 where_between().

◆ where_eq()

sql_builder & sql_builder::where_eq ( string field,
string value )

添加相等条件

参数
field字段名
value
返回
自身引用

引用了 sql_builder() , 以及 where_eq().

被这些函数引用 where_eq().

◆ where_exists()

sql_builder & sql_builder::where_exists ( string subquery)

添加EXISTS条件

参数
subquery子查询
返回
自身引用

引用了 sql_builder() , 以及 where_exists().

被这些函数引用 where_exists().

◆ where_ge()

sql_builder & sql_builder::where_ge ( string field,
string value )

添加大于等于条件

参数
field字段名
value
返回
自身引用

引用了 sql_builder() , 以及 where_ge().

被这些函数引用 where_ge().

◆ where_gt()

sql_builder & sql_builder::where_gt ( string field,
string value )

添加大于条件

参数
field字段名
value
返回
自身引用

引用了 sql_builder() , 以及 where_gt().

被这些函数引用 where_gt().

◆ where_in()

sql_builder & sql_builder::where_in ( string field,
vector< string > values )

添加IN条件

参数
field字段名
values值列表
返回
自身引用

引用了 sql_builder(), values() , 以及 where_in().

被这些函数引用 where_in().

◆ where_is_not_null()

sql_builder & sql_builder::where_is_not_null ( string field)

添加IS NOT NULL条件

参数
field字段名
返回
自身引用

引用了 sql_builder() , 以及 where_is_not_null().

被这些函数引用 where_is_not_null().

◆ where_is_null()

sql_builder & sql_builder::where_is_null ( string field)

添加IS NULL条件

参数
field字段名
返回
自身引用

引用了 sql_builder() , 以及 where_is_null().

被这些函数引用 where_is_null().

◆ where_le()

sql_builder & sql_builder::where_le ( string field,
string value )

添加小于等于条件

参数
field字段名
value
返回
自身引用

引用了 sql_builder() , 以及 where_le().

被这些函数引用 where_le().

◆ where_like()

sql_builder & sql_builder::where_like ( string field,
string pattern )

添加LIKE条件

参数
field字段名
pattern模式
返回
自身引用

引用了 sql_builder() , 以及 where_like().

被这些函数引用 where_like().

◆ where_lt()

sql_builder & sql_builder::where_lt ( string field,
string value )

添加小于条件

参数
field字段名
value
返回
自身引用

引用了 sql_builder() , 以及 where_lt().

被这些函数引用 where_lt().

◆ where_ne()

sql_builder & sql_builder::where_ne ( string field,
string value )

添加不等条件

参数
field字段名
value
返回
自身引用

引用了 sql_builder() , 以及 where_ne().

被这些函数引用 where_ne().

◆ where_not_between()

sql_builder & sql_builder::where_not_between ( string field,
string start,
string end )

添加NOT BETWEEN条件

参数
field字段名
start起始值
end结束值
返回
自身引用

引用了 end(), sql_builder() , 以及 where_not_between().

被这些函数引用 where_not_between().

◆ where_not_exists()

sql_builder & sql_builder::where_not_exists ( string subquery)

添加NOT EXISTS条件

参数
subquery子查询
返回
自身引用

引用了 sql_builder() , 以及 where_not_exists().

被这些函数引用 where_not_exists().

◆ where_not_in()

sql_builder & sql_builder::where_not_in ( string field,
vector< string > values )

添加NOT IN条件

参数
field字段名
values值列表
返回
自身引用

引用了 sql_builder(), values() , 以及 where_not_in().

被这些函数引用 where_not_in().

◆ where_not_like()

sql_builder & sql_builder::where_not_like ( string field,
string pattern )

添加NOT LIKE条件

参数
field字段名
pattern模式
返回
自身引用

引用了 sql_builder() , 以及 where_not_like().

被这些函数引用 where_not_like().


该类的文档由以下文件生成: