|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
SQL语句构建器 更多...
#include <sql_builder.hpp>
类 | |
| struct | select_data |
| SELECT语句的数据结构 更多... | |
| struct | insert_data |
| INSERT语句的数据结构 更多... | |
| struct | update_data |
| UPDATE语句的数据结构 更多... | |
| struct | column_definition |
| 列定义 更多... | |
| struct | create_table_data |
| CREATE TABLE语句的数据结构 更多... | |
| struct | create_view_data |
| CREATE VIEW语句的数据结构 更多... | |
| struct | alter_table_data |
| ALTER TABLE语句的数据结构 更多... | |
| struct | create_index_data |
| CREATE INDEX语句的数据结构 更多... | |
| struct | set_op_entry |
| 集合操作条目 更多... | |
| struct | cte_entry |
| CTE条目 更多... | |
Public 成员函数 | |
| sql_builder ()=default | |
| 默认构造函数 | |
| ~sql_builder ()=default | |
| 析构函数 | |
| sql_builder (const sql_builder &other) | |
| 拷贝构造函数 | |
| sql_builder & | operator= (const sql_builder &other) |
| 拷贝赋值运算符 | |
| sql_builder (sql_builder &&other) noexcept=default | |
| 移动构造函数 | |
| sql_builder & | operator= (sql_builder &&other) noexcept=default |
| 移动赋值运算符 | |
| sql_builder & | select (vector< string > fields) |
| 列表设置SELECT字段 | |
| sql_builder & | select (std::initializer_list< string > fields) |
| 初始化列表设置SELECT字段 | |
| sql_builder & | select (string field) |
| 添加SELECT字段 | |
| sql_builder & | select_all () noexcept |
| 选择所有字段(SELECT *) | |
| sql_builder & | distinct () |
| 添加DISTINCT关键字 | |
| sql_builder & | from (string table) noexcept |
| 设置主表 | |
| sql_builder & | from (string table, string alias) noexcept |
| 设置主表并指定别名 | |
| sql_builder & | join (sql_join type, string table, string on_condition) |
| 添加JOIN子句 | |
| sql_builder & | join (string table, string on_condition) |
| 添加INNER JOIN子句 | |
| sql_builder & | left_join (string table, string on_condition) |
| 添加LEFT JOIN子句 | |
| sql_builder & | right_join (string table, string on_condition) |
| 添加RIGHT JOIN子句 | |
| sql_builder & | inner_join (string table, string on_condition) |
| 添加INNER JOIN子句 | |
| sql_builder & | full_join (string table, string on_condition) |
| 添加FULL JOIN子句 | |
| sql_builder & | where (string condition) |
| 添加WHERE条件 | |
| sql_builder & | where_eq (string field, string value) |
| 添加相等条件 | |
| sql_builder & | where_ne (string field, string value) |
| 添加不等条件 | |
| sql_builder & | where_gt (string field, string value) |
| 添加大于条件 | |
| sql_builder & | where_ge (string field, string value) |
| 添加大于等于条件 | |
| sql_builder & | where_lt (string field, string value) |
| 添加小于条件 | |
| sql_builder & | where_le (string field, string value) |
| 添加小于等于条件 | |
| sql_builder & | where_like (string field, string pattern) |
| 添加LIKE条件 | |
| sql_builder & | where_not_like (string field, string pattern) |
| 添加NOT LIKE条件 | |
| sql_builder & | where_in (string field, vector< string > values) |
| 添加IN条件 | |
| sql_builder & | where_not_in (string field, vector< string > values) |
| 添加NOT IN条件 | |
| sql_builder & | where_between (string field, string start, string end) |
| 添加BETWEEN条件 | |
| sql_builder & | where_not_between (string field, string start, string end) |
| 添加NOT BETWEEN条件 | |
| sql_builder & | where_is_null (string field) |
| 添加IS NULL条件 | |
| sql_builder & | where_is_not_null (string field) |
| 添加IS NOT NULL条件 | |
| sql_builder & | where_exists (string subquery) |
| 添加EXISTS条件 | |
| sql_builder & | where_not_exists (string subquery) |
| 添加NOT EXISTS条件 | |
| sql_builder & | or_where (string condition) |
| 添加OR条件(与上一个条件组合) | |
| sql_builder & | group_by (string field) |
| 添加GROUP BY字段 | |
| sql_builder & | group_by (const vector< string > &fields) |
| 添加GROUP BY字段列表 | |
| sql_builder & | group_by_rollup (vector< string > fields) |
| 添加GROUP BY ROLLUP子句 | |
| sql_builder & | group_by_cube (vector< string > fields) |
| 添加GROUP BY CUBE子句 | |
| sql_builder & | having (string condition) |
| 添加HAVING条件 | |
| sql_builder & | order_by (string field, sql_order order=sql_order::ASC) |
| 添加ORDER BY子句 | |
| sql_builder & | order_by_asc (string field) |
| 添加升序排序 | |
| sql_builder & | order_by_desc (string field) |
| 添加降序排序 | |
| sql_builder & | limit (int count) |
| 添加LIMIT限制 | |
| sql_builder & | offset (int count) |
| 添加OFFSET偏移 | |
| sql_builder & | fetch_first (int row_count) |
| 添加FETCH FIRST分页 | |
| sql_builder & | page (int page_num, int page_size) |
| 添加分页 | |
| sql_builder & | insert_into (string table, vector< string > fields) |
| 设置INSERT INTO表名和字段 | |
| sql_builder & | insert_into (string table) |
| 设置INSERT INTO表名 | |
| sql_builder & | values (vector< string > values) |
| 设置VALUES占位符 | |
| sql_builder & | values (std::initializer_list< string > values) |
| 设置VALUES占位符 | |
| sql_builder & | values (vector< vector< string > > value_rows) |
| 设置多行VALUES(批量插入) | |
| sql_builder & | add_values (vector< string > values) |
| 追加一行VALUES(用于多行INSERT) | |
| sql_builder & | columns (vector< string > fields) |
| 设置INSERT字段列表 | |
| sql_builder & | update (string table) |
| 设置UPDATE表名 | |
| sql_builder & | set (string assignment) |
| 添加SET赋值 | |
| sql_builder & | set (string field, string value) |
| 添加SET赋值(字段=值形式) | |
| sql_builder & | set_increment (string field, int value=1) |
| 添加自增赋值 | |
| sql_builder & | set_decrement (string field, int value=1) |
| 添加自减赋值 | |
| sql_builder & | remove () |
| 设置DELETE操作 | |
| sql_builder & | delete_from (string table) |
| 设置DELETE FROM表名 | |
| sql_builder & | drop_table (string table) |
| 删除表 | |
| sql_builder & | drop_table_if_exists (string table) |
| 删除表(IF EXISTS) | |
| sql_builder & | union_ (string query) |
| 添加UNION集合操作 | |
| sql_builder & | union_all (string query) |
| 添加UNION ALL集合操作 | |
| sql_builder & | intersect (string query) |
| 添加INTERSECT集合操作 | |
| sql_builder & | intersect_all (string query) |
| 添加INTERSECT ALL集合操作 | |
| sql_builder & | except_ (string query) |
| 添加EXCEPT集合操作 | |
| sql_builder & | except_all (string query) |
| 添加EXCEPT ALL集合操作 | |
| sql_builder & | with_ (string name, string query) |
| 添加CTE(WITH子句) | |
| sql_builder & | with_recursive (string name, string query) |
| 添加递归CTE(WITH RECURSIVE子句) | |
| sql_builder & | cross_join (string table) |
| 添加CROSS JOIN子句 | |
| sql_builder & | select_row_number (string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加ROW_NUMBER窗口函数 | |
| sql_builder & | select_rank (string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加RANK窗口函数 | |
| sql_builder & | select_dense_rank (string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加DENSE_RANK窗口函数 | |
| sql_builder & | select_ntile (int buckets, string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加NTILE窗口函数 | |
| sql_builder & | select_lead (string field, string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加LEAD窗口函数 | |
| sql_builder & | select_lag (string field, string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加LAG窗口函数 | |
| sql_builder & | select_first_value (string field, string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加FIRST_VALUE窗口函数 | |
| sql_builder & | select_last_value (string field, string alias, const vector< string > &partition_by={}, const vector< string > &order_by={}) |
| 添加LAST_VALUE窗口函数 | |
| sql_builder & | create_table (string table) |
| 创建表 | |
| sql_builder & | create_table_if_not_exists (string table) |
| 创建表(IF NOT EXISTS) | |
| sql_builder & | create_temp_table (string table) |
| 创建临时表(TEMP TABLE) | |
| sql_builder & | create_temp_table_if_not_exists (string table) |
| 创建临时表(TEMP TABLE IF NOT EXISTS) | |
| sql_builder & | column (string name, string type) |
| 添加基础列定义 | |
| sql_builder & | column_not_null (string name, string type) |
| 添加带NOT NULL约束的列定义 | |
| sql_builder & | column_primary_key (string name, string type) |
| 添加PRIMARY KEY列定义 | |
| sql_builder & | column_unique (string name, string type) |
| 添加带UNIQUE约束的列定义 | |
| sql_builder & | column_default (string name, string type, string default_val) |
| 添加带DEFAULT值的列定义 | |
| sql_builder & | column_check (string name, string type, string check_expr) |
| 添加带CHECK约束的列定义 | |
| sql_builder & | column_auto_increment (string name, string type) |
| 添加自增主键列定义(事实标准:AUTO_INCREMENT) | |
| sql_builder & | table_primary_key (vector< string > columns) |
| 添加表级PRIMARY KEY约束 | |
| sql_builder & | table_foreign_key (string column, string ref_table, string ref_column) |
| 添加表级FOREIGN KEY约束 | |
| sql_builder & | table_unique (vector< string > columns) |
| 添加表级UNIQUE约束 | |
| sql_builder & | table_check (string expr) |
| 添加表级CHECK约束 | |
| sql_builder & | alter_table (string table) |
| 修改表 | |
| sql_builder & | add_column (string name, string type) |
| 添加列(ALTER TABLE ADD COLUMN) | |
| sql_builder & | drop_column (string name) |
| 删除列(ALTER TABLE DROP COLUMN) | |
| sql_builder & | alter_column_set_type (string name, string new_type) |
| 修改列数据类型(ALTER TABLE ALTER COLUMN SET DATA TYPE) | |
| sql_builder & | alter_column_set_default (string name, string default_val) |
| 设置列默认值(ALTER TABLE ALTER COLUMN SET DEFAULT) | |
| sql_builder & | alter_column_drop_default (string name) |
| 删除列默认值(ALTER TABLE ALTER COLUMN DROP DEFAULT) | |
| sql_builder & | alter_column_set_not_null (string name) |
| 设置列非空约束(ALTER TABLE ALTER COLUMN SET NOT NULL) | |
| sql_builder & | alter_column_drop_not_null (string name) |
| 删除列非空约束(ALTER TABLE ALTER COLUMN DROP NOT NULL) | |
| sql_builder & | rename_column (string old_name, string new_name) |
| 重命名列(ALTER TABLE RENAME COLUMN) | |
| sql_builder & | add_primary_key (vector< string > columns) |
| 添加主键约束(ALTER TABLE ADD PRIMARY KEY) | |
| sql_builder & | drop_constraint (string constraint_name) |
| 删除约束(ALTER TABLE DROP CONSTRAINT) | |
| sql_builder & | create_view (string view_name, string select_query) |
| 创建视图 | |
| sql_builder & | create_or_replace_view (string view_name, string select_query) |
| 创建视图(OR REPLACE) | |
| sql_builder & | drop_view (string view_name) |
| 删除视图 | |
| sql_builder & | drop_view_if_exists (string view_name) |
| 删除视图(IF EXISTS) | |
| sql_builder & | create_index (string index_name, string table, vector< string > columns) |
| 创建索引(CREATE INDEX) | |
| sql_builder & | create_unique_index (string index_name, string table, vector< string > columns) |
| 创建唯一索引(CREATE UNIQUE INDEX) | |
| sql_builder & | drop_index (string index_name) |
| 删除索引(DROP INDEX) | |
| sql_builder & | drop_index_if_exists (string index_name) |
| 删除索引(DROP INDEX IF EXISTS) | |
| sql_builder & | truncate (string table) |
| 截断表(TRUNCATE TABLE) | |
| sql_builder & | select_count (string field, string alias) |
| 添加COUNT聚合函数(带别名) | |
| sql_builder & | select_count (string field) |
| 添加COUNT聚合函数(无别名) | |
| sql_builder & | select_count () |
| 添加COUNT(*)聚合函数 | |
| sql_builder & | select_sum (string field, string alias) |
| 添加SUM聚合函数(带别名) | |
| sql_builder & | select_sum (string field) |
| 添加SUM聚合函数(无别名) | |
| sql_builder & | select_avg (string field, string alias) |
| 添加AVG聚合函数(带别名) | |
| sql_builder & | select_avg (string field) |
| 添加AVG聚合函数(无别名) | |
| sql_builder & | select_max (string field, string alias) |
| 添加MAX聚合函数(带别名) | |
| sql_builder & | select_max (string field) |
| 添加MAX聚合函数(无别名) | |
| sql_builder & | select_min (string field, string alias) |
| 添加MIN聚合函数(带别名) | |
| sql_builder & | select_min (string field) |
| 添加MIN聚合函数(无别名) | |
| sql_builder & | select_distinct (string field) |
| 添加DISTINCT字段 | |
| sql_builder & | select_subquery (string subquery, string alias) |
| 添加子查询作为SELECT字段 | |
| sql_builder & | select_subquery (string subquery) |
| 添加子查询作为SELECT字段(无别名) | |
| sql_builder & | from_subquery (string subquery, string alias) |
| 使用子查询作为FROM表 | |
| sql_builder & | reset () noexcept |
| 重置构建器状态 | |
| sql_operate | type () const noexcept |
| 获取当前SQL操作类型 | |
| string_view | table () const noexcept |
| 获取当前表名 | |
| bool | is_empty () const noexcept |
| 检查构建器是否为空 | |
| sql_builder & | set_dialect (const sql_dialect dialect) noexcept |
| 设置数据库方言 | |
| sql_dialect | dialect () const noexcept |
| 获取当前数据库方言 | |
| size_t | param_count () const noexcept |
| 获取当前语句的参数占位符数量 | |
| string | placeholder (const size_t index) const |
| 生成方言感知的参数占位符 | |
| string | next_placeholder () |
| 获取下一个参数占位符 | |
| sql_builder & | set_param (string field) |
| 添加 SET 赋值 | |
| string | build () const |
| 构建最终的SQL语句 | |
静态 Public 成员函数 | |
| static string | make_case_simple (string field, vector< pair< string, string > > when_then, string else_val="") |
| 构建简单CASE表达式(CASE field WHEN ... THEN ... ELSE ... END) | |
| static string | make_case_searched (vector< pair< string, string > > when_then, string else_val="") |
| 构建搜索CASE表达式(CASE WHEN condition THEN ... ELSE ... END) | |
| static string | make_cast (string expression, string target_type) |
| 构建CAST类型转换表达式 | |
SQL语句构建器
提供流式API构建SQL语句:
在文件 sql_builder.hpp 第 176 行定义.
| neforce::sql_builder::sql_builder | ( | const sql_builder & | other | ) |
|
defaultnoexcept |
| sql_builder & neforce::sql_builder::add_column | ( | string | name, |
| string | type ) |
| sql_builder & neforce::sql_builder::add_primary_key | ( | vector< string > | columns | ) |
| sql_builder & neforce::sql_builder::add_values | ( | vector< string > | values | ) |
追加一行VALUES(用于多行INSERT)
| values | 值占位符列表 |
引用了 add_values(), sql_builder() , 以及 values().
被这些函数引用 add_values().
| sql_builder & neforce::sql_builder::alter_column_drop_default | ( | string | name | ) |
| sql_builder & neforce::sql_builder::alter_column_drop_not_null | ( | string | name | ) |
| sql_builder & neforce::sql_builder::alter_column_set_default | ( | string | name, |
| string | default_val ) |
设置列默认值(ALTER TABLE ALTER COLUMN SET DEFAULT)
| name | 列名 |
| default_val | 默认值(需自行包含引号等) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::alter_column_set_not_null | ( | string | name | ) |
| sql_builder & neforce::sql_builder::alter_column_set_type | ( | string | name, |
| string | new_type ) |
| sql_builder & neforce::sql_builder::alter_table | ( | string | table | ) |
|
nodiscard |
构建最终的SQL语句
| value_exception | 当SQL结构不完整时抛出 |
根据当前构建的状态生成完整的SQL语句。
被这些函数引用 neforce::repository< T, Connect >::count(), neforce::sql_mapper< T >::create_table_sql(), neforce::sql_mapper< T >::delete_sql(), neforce::sql_mapper< T >::drop_table_sql(), neforce::repository< T, Connect >::find_all(), neforce::repository< T, Connect >::find_by_id(), neforce::repository< T, Connect >::find_page(), neforce::repository< T, Connect >::find_where(), neforce::sql_mapper< T >::insert_sql(), neforce::sql_mapper< T >::select_by_pk_sql(), neforce::sql_mapper< T >::select_sql() , 以及 neforce::sql_mapper< T >::update_sql().
| sql_builder & neforce::sql_builder::column | ( | string | name, |
| string | type ) |
添加基础列定义
| name | 列名 |
| type | 数据类型 |
引用了 sql_builder() , 以及 type().
被这些函数引用 neforce::sql_mapper< T >::create_table_sql() , 以及 table_foreign_key().
| sql_builder & neforce::sql_builder::column_auto_increment | ( | string | name, |
| string | type ) |
| sql_builder & neforce::sql_builder::column_check | ( | string | name, |
| string | type, | ||
| string | check_expr ) |
| sql_builder & neforce::sql_builder::column_default | ( | string | name, |
| string | type, | ||
| string | default_val ) |
| sql_builder & neforce::sql_builder::column_not_null | ( | string | name, |
| string | type ) |
| sql_builder & neforce::sql_builder::column_primary_key | ( | string | name, |
| string | type ) |
| sql_builder & neforce::sql_builder::column_unique | ( | string | name, |
| string | type ) |
| sql_builder & neforce::sql_builder::columns | ( | vector< string > | fields | ) |
设置INSERT字段列表
| fields | 字段列表 |
引用了 columns() , 以及 sql_builder().
被这些函数引用 add_primary_key(), columns(), create_index(), create_unique_index(), table_primary_key() , 以及 table_unique().
| sql_builder & neforce::sql_builder::create_index | ( | string | index_name, |
| string | table, | ||
| vector< string > | columns ) |
创建索引(CREATE INDEX)
| index_name | 索引名 |
| table | 表名 |
| columns | 索引列列表 |
引用了 columns(), sql_builder() , 以及 table().
| sql_builder & neforce::sql_builder::create_or_replace_view | ( | string | view_name, |
| string | select_query ) |
| sql_builder & neforce::sql_builder::create_table | ( | string | table | ) |
| sql_builder & neforce::sql_builder::create_table_if_not_exists | ( | string | table | ) |
| sql_builder & neforce::sql_builder::create_temp_table | ( | string | table | ) |
| sql_builder & neforce::sql_builder::create_temp_table_if_not_exists | ( | string | table | ) |
| sql_builder & neforce::sql_builder::create_unique_index | ( | string | index_name, |
| string | table, | ||
| vector< string > | columns ) |
创建唯一索引(CREATE UNIQUE INDEX)
| index_name | 索引名 |
| table | 表名 |
| columns | 索引列列表 |
引用了 columns(), sql_builder() , 以及 table().
| sql_builder & neforce::sql_builder::create_view | ( | string | view_name, |
| string | select_query ) |
| sql_builder & neforce::sql_builder::cross_join | ( | string | table | ) |
添加CROSS JOIN子句
| table | 表名 |
引用了 cross_join(), sql_builder() , 以及 table().
被这些函数引用 cross_join().
| sql_builder & neforce::sql_builder::delete_from | ( | string | table | ) |
设置DELETE FROM表名
| table | 表名 |
引用了 delete_from(), sql_builder() , 以及 table().
被这些函数引用 delete_from() , 以及 neforce::sql_mapper< T >::delete_sql().
|
inlinenodiscardnoexcept |
| sql_builder & neforce::sql_builder::distinct | ( | ) |
| sql_builder & neforce::sql_builder::drop_column | ( | string | name | ) |
| sql_builder & neforce::sql_builder::drop_constraint | ( | string | constraint_name | ) |
| sql_builder & neforce::sql_builder::drop_index | ( | string | index_name | ) |
| sql_builder & neforce::sql_builder::drop_index_if_exists | ( | string | index_name | ) |
| sql_builder & neforce::sql_builder::drop_table | ( | string | table | ) |
| sql_builder & neforce::sql_builder::drop_table_if_exists | ( | string | table | ) |
删除表(IF EXISTS)
| table | 表名 |
引用了 drop_table_if_exists(), sql_builder() , 以及 table().
被这些函数引用 drop_table_if_exists() , 以及 neforce::sql_mapper< T >::drop_table_sql().
| sql_builder & neforce::sql_builder::drop_view | ( | string | view_name | ) |
| sql_builder & neforce::sql_builder::drop_view_if_exists | ( | string | view_name | ) |
| sql_builder & neforce::sql_builder::except_ | ( | string | query | ) |
| sql_builder & neforce::sql_builder::except_all | ( | string | query | ) |
添加EXCEPT ALL集合操作
| query | 要排除的查询SQL |
引用了 except_all() , 以及 sql_builder().
被这些函数引用 except_all().
| sql_builder & neforce::sql_builder::fetch_first | ( | int | row_count | ) |
添加FETCH FIRST分页
| row_count | 返回行数 |
生成 FETCH FIRST n ROWS ONLY 语法,是 ANSI SQL:2008 标准分页方式。 调用此方法后,LIMIT 子句将被忽略(以 FETCH FIRST 为准)。 可与 offset() 组合生成 OFFSET m ROWS FETCH FIRST n ROWS ONLY。
引用了 fetch_first() , 以及 sql_builder().
被这些函数引用 fetch_first().
|
noexcept |
设置主表
| table | 表名 |
引用了 from(), sql_builder() , 以及 table().
被这些函数引用 neforce::repository< T, Connect >::count(), neforce::repository< T, Connect >::find_all(), neforce::repository< T, Connect >::find_by_id(), neforce::repository< T, Connect >::find_page(), neforce::repository< T, Connect >::find_where(), from(), from(), neforce::sql_mapper< T >::select_by_pk_sql() , 以及 neforce::sql_mapper< T >::select_sql().
|
noexcept |
| sql_builder & neforce::sql_builder::from_subquery | ( | string | subquery, |
| string | alias ) |
| sql_builder & neforce::sql_builder::full_join | ( | string | table, |
| string | on_condition ) |
添加FULL JOIN子句
| table | 连接表名 |
| on_condition | ON条件 |
引用了 full_join(), sql_builder() , 以及 table().
被这些函数引用 full_join().
| sql_builder & neforce::sql_builder::group_by | ( | const vector< string > & | fields | ) |
| sql_builder & neforce::sql_builder::group_by | ( | string | field | ) |
添加GROUP BY字段
| field | 字段名 |
引用了 group_by() , 以及 sql_builder().
被这些函数引用 group_by() , 以及 group_by().
| sql_builder & neforce::sql_builder::group_by_cube | ( | vector< string > | fields | ) |
添加GROUP BY CUBE子句
| fields | CUBE字段列表 |
生成 GROUP BY CUBE(field1, field2, ...) 语法, 产生所有维度组合的小计行。
引用了 group_by_cube() , 以及 sql_builder().
被这些函数引用 group_by_cube().
| sql_builder & neforce::sql_builder::group_by_rollup | ( | vector< string > | fields | ) |
添加GROUP BY ROLLUP子句
| fields | ROLLUP字段列表 |
生成 GROUP BY ROLLUP(field1, field2, ...) 语法, 在每一层级产生小计行。
引用了 group_by_rollup() , 以及 sql_builder().
被这些函数引用 group_by_rollup().
| sql_builder & neforce::sql_builder::having | ( | string | condition | ) |
| sql_builder & neforce::sql_builder::inner_join | ( | string | table, |
| string | on_condition ) |
添加INNER JOIN子句
| table | 连接表名 |
| on_condition | ON条件 |
引用了 inner_join(), sql_builder() , 以及 table().
被这些函数引用 inner_join().
| sql_builder & neforce::sql_builder::insert_into | ( | string | table | ) |
| sql_builder & neforce::sql_builder::insert_into | ( | string | table, |
| vector< string > | fields ) |
设置INSERT INTO表名和字段
| table | 表名 |
| fields | 字段列表 |
引用了 insert_into(), sql_builder() , 以及 table().
被这些函数引用 insert_into(), insert_into() , 以及 neforce::sql_mapper< T >::insert_sql().
| sql_builder & neforce::sql_builder::intersect | ( | string | query | ) |
| sql_builder & neforce::sql_builder::intersect_all | ( | string | query | ) |
添加INTERSECT ALL集合操作
| query | 要合并的查询SQL |
引用了 intersect_all() , 以及 sql_builder().
被这些函数引用 intersect_all().
|
inlinenodiscardnoexcept |
| sql_builder & neforce::sql_builder::join | ( | sql_join | type, |
| string | table, | ||
| string | on_condition ) |
| sql_builder & neforce::sql_builder::join | ( | string | table, |
| string | on_condition ) |
| sql_builder & neforce::sql_builder::left_join | ( | string | table, |
| string | on_condition ) |
添加LEFT JOIN子句
| table | 连接表名 |
| on_condition | ON条件 |
引用了 left_join(), sql_builder() , 以及 table().
被这些函数引用 left_join().
| sql_builder & neforce::sql_builder::limit | ( | int | count | ) |
|
static |
构建搜索CASE表达式(CASE WHEN condition THEN ... ELSE ... END)
| when_then | WHEN-THEN对列表,每对包含条件和结果 |
| else_val | ELSE默认值(可选,为空则省略ELSE子句) |
|
static |
构建简单CASE表达式(CASE field WHEN ... THEN ... ELSE ... END)
| field | CASE目标字段 |
| when_then | WHEN-THEN对列表 |
| else_val | ELSE默认值(可选,为空则省略ELSE子句) |
构建CAST类型转换表达式
| expression | 源表达式 |
| target_type | 目标类型 |
|
inlinenodiscard |
获取下一个参数占位符
每次调用后内部序号 +1,用于 UPDATE/SELECT 中按顺序分配占位符
在文件 sql_builder.hpp 第 1427 行定义.
被这些函数引用 set_param() , 以及 neforce::sql_mapper< T >::update_sql().
| sql_builder & neforce::sql_builder::offset | ( | int | count | ) |
| sql_builder & neforce::sql_builder::operator= | ( | const sql_builder & | other | ) |
|
defaultnoexcept |
| sql_builder & neforce::sql_builder::or_where | ( | string | condition | ) |
添加OR条件(与上一个条件组合)
| condition | 条件表达式 |
将当前条件与上一个条件用OR连接。
引用了 or_where() , 以及 sql_builder().
被这些函数引用 or_where().
| sql_builder & neforce::sql_builder::order_by | ( | string | field, |
| sql_order | order = sql_order::ASC ) |
| sql_builder & neforce::sql_builder::order_by_asc | ( | string | field | ) |
添加升序排序
| field | 字段名 |
引用了 order_by_asc() , 以及 sql_builder().
被这些函数引用 neforce::repository< T, Connect >::find_page() , 以及 order_by_asc().
| sql_builder & neforce::sql_builder::order_by_desc | ( | string | field | ) |
| sql_builder & neforce::sql_builder::page | ( | int | page_num, |
| int | page_size ) |
添加分页
| page_num | 页码(从1开始) |
| page_size | 每页大小 |
引用了 page() , 以及 sql_builder().
被这些函数引用 neforce::repository< T, Connect >::find_page() , 以及 page().
|
inlinenodiscardnoexcept |
获取当前语句的参数占位符数量
数量由内部计数器追踪,与占位符格式(? / $N / :N)无关。
在文件 sql_builder.hpp 第 1409 行定义.
生成方言感知的参数占位符
| index | 参数序号(1-based) |
在文件 sql_builder.hpp 第 1417 行定义.
被这些函数引用 neforce::sql_mapper< T >::delete_sql() , 以及 neforce::sql_mapper< T >::select_by_pk_sql().
| sql_builder & neforce::sql_builder::remove | ( | ) |
| sql_builder & neforce::sql_builder::rename_column | ( | string | old_name, |
| string | new_name ) |
|
noexcept |
| sql_builder & neforce::sql_builder::right_join | ( | string | table, |
| string | on_condition ) |
添加RIGHT JOIN子句
| table | 连接表名 |
| on_condition | ON条件 |
引用了 right_join(), sql_builder() , 以及 table().
被这些函数引用 right_join().
| sql_builder & neforce::sql_builder::select | ( | std::initializer_list< string > | fields | ) |
| sql_builder & neforce::sql_builder::select | ( | string | field | ) |
| sql_builder & neforce::sql_builder::select | ( | vector< string > | fields | ) |
列表设置SELECT字段
| fields | 字段列表 |
引用了 select() , 以及 sql_builder().
被这些函数引用 neforce::repository< T, Connect >::find_all(), neforce::repository< T, Connect >::find_by_id(), neforce::repository< T, Connect >::find_page(), neforce::repository< T, Connect >::find_where(), select(), select(), select(), neforce::sql_mapper< T >::select_by_pk_sql() , 以及 neforce::sql_mapper< T >::select_sql().
|
noexcept |
| sql_builder & neforce::sql_builder::select_avg | ( | string | field | ) |
| sql_builder & neforce::sql_builder::select_avg | ( | string | field, |
| string | alias ) |
| sql_builder & neforce::sql_builder::select_count | ( | ) |
| sql_builder & neforce::sql_builder::select_count | ( | string | field | ) |
| sql_builder & neforce::sql_builder::select_count | ( | string | field, |
| string | alias ) |
| sql_builder & neforce::sql_builder::select_dense_rank | ( | string | alias, |
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加DENSE_RANK窗口函数
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::select_distinct | ( | string | field | ) |
| sql_builder & neforce::sql_builder::select_first_value | ( | string | field, |
| string | alias, | ||
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加FIRST_VALUE窗口函数
| field | 目标字段名 |
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::select_lag | ( | string | field, |
| string | alias, | ||
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加LAG窗口函数
| field | 目标字段名 |
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::select_last_value | ( | string | field, |
| string | alias, | ||
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加LAST_VALUE窗口函数
| field | 目标字段名 |
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::select_lead | ( | string | field, |
| string | alias, | ||
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加LEAD窗口函数
| field | 目标字段名 |
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::select_max | ( | string | field | ) |
| sql_builder & neforce::sql_builder::select_max | ( | string | field, |
| string | alias ) |
| sql_builder & neforce::sql_builder::select_min | ( | string | field | ) |
| sql_builder & neforce::sql_builder::select_min | ( | string | field, |
| string | alias ) |
| sql_builder & neforce::sql_builder::select_ntile | ( | int | buckets, |
| string | alias, | ||
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加NTILE窗口函数
| buckets | 分桶数量 |
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::select_rank | ( | string | alias, |
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加RANK窗口函数
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 sql_builder().
| sql_builder & neforce::sql_builder::select_row_number | ( | string | alias, |
| const vector< string > & | partition_by = {}, | ||
| const vector< string > & | order_by = {} ) |
添加ROW_NUMBER窗口函数
| alias | 结果别名 |
| partition_by | PARTITION BY字段列表(可选) |
| order_by | ORDER BY字段列表(可选) |
引用了 select_row_number() , 以及 sql_builder().
被这些函数引用 select_row_number().
| sql_builder & neforce::sql_builder::select_subquery | ( | string | subquery | ) |
| sql_builder & neforce::sql_builder::select_subquery | ( | string | subquery, |
| string | alias ) |
| sql_builder & neforce::sql_builder::select_sum | ( | string | field | ) |
| sql_builder & neforce::sql_builder::select_sum | ( | string | field, |
| string | alias ) |
| sql_builder & neforce::sql_builder::set | ( | string | assignment | ) |
添加SET赋值
| assignment | 赋值表达式(如"field = value") |
引用了 set() , 以及 sql_builder().
被这些函数引用 set(), set() , 以及 set_param().
| sql_builder & neforce::sql_builder::set | ( | string | field, |
| string | value ) |
| sql_builder & neforce::sql_builder::set_decrement | ( | string | field, |
| int | value = 1 ) |
添加自减赋值
| field | 字段名 |
| value | 减少量,默认为1 |
引用了 set_decrement() , 以及 sql_builder().
被这些函数引用 set_decrement().
|
inlinenoexcept |
设置数据库方言
| dialect | 目标数据库方言 |
设置后 build() 会根据方言调整生成的 SQL 语法。
在文件 sql_builder.hpp 第 1390 行定义.
引用了 dialect() , 以及 sql_builder().
被这些函数引用 neforce::sql_mapper< T >::delete_sql(), neforce::sql_mapper< T >::insert_sql(), neforce::sql_mapper< T >::select_by_pk_sql() , 以及 neforce::sql_mapper< T >::update_sql().
| sql_builder & neforce::sql_builder::set_increment | ( | string | field, |
| int | value = 1 ) |
添加自增赋值
| field | 字段名 |
| value | 增加量,默认为1 |
引用了 set_increment() , 以及 sql_builder().
被这些函数引用 set_increment().
|
inline |
添加 SET 赋值
| field | 字段名 |
自动使用下一个参数占位符
在文件 sql_builder.hpp 第 1436 行定义.
引用了 neforce::move(), next_placeholder(), set() , 以及 sql_builder().
|
inlinenodiscardnoexcept |
获取当前表名
在文件 sql_builder.hpp 第 1375 行定义.
引用了 neforce::basic_string_view< CharT, Traits >::view().
被这些函数引用 alter_table(), create_index(), create_table(), create_table_if_not_exists(), create_temp_table(), create_temp_table_if_not_exists(), create_unique_index(), cross_join(), delete_from(), drop_table(), drop_table_if_exists(), from(), from(), full_join(), inner_join(), insert_into(), insert_into(), join(), join(), left_join(), right_join(), truncate() , 以及 update().
| sql_builder & neforce::sql_builder::table_check | ( | string | expr | ) |
| sql_builder & neforce::sql_builder::table_foreign_key | ( | string | column, |
| string | ref_table, | ||
| string | ref_column ) |
添加表级FOREIGN KEY约束
| column | 外键列名 |
| ref_table | 引用表名 |
| ref_column | 引用列名 |
引用了 column() , 以及 sql_builder().
| sql_builder & neforce::sql_builder::table_primary_key | ( | vector< string > | columns | ) |
| sql_builder & neforce::sql_builder::table_unique | ( | vector< string > | columns | ) |
| sql_builder & neforce::sql_builder::truncate | ( | string | table | ) |
|
inlinenodiscardnoexcept |
获取当前SQL操作类型
在文件 sql_builder.hpp 第 1369 行定义.
引用了 type().
被这些函数引用 add_column(), column(), column_auto_increment(), column_check(), column_default(), column_not_null(), column_primary_key(), column_unique(), join() , 以及 type().
| sql_builder & neforce::sql_builder::union_ | ( | string | query | ) |
| sql_builder & neforce::sql_builder::union_all | ( | string | query | ) |
| sql_builder & neforce::sql_builder::update | ( | string | table | ) |
设置UPDATE表名
| table | 表名 |
引用了 sql_builder(), table() , 以及 update().
被这些函数引用 update() , 以及 neforce::sql_mapper< T >::update_sql().
| sql_builder & neforce::sql_builder::values | ( | std::initializer_list< string > | values | ) |
| sql_builder & neforce::sql_builder::values | ( | vector< string > | values | ) |
设置VALUES占位符
| values | 值占位符列表(如"?"或实际值) |
引用了 sql_builder() , 以及 values().
被这些函数引用 add_values(), values(), values(), values(), where_in() , 以及 where_not_in().
| sql_builder & neforce::sql_builder::values | ( | vector< vector< string > > | value_rows | ) |
| sql_builder & neforce::sql_builder::where | ( | string | condition | ) |
添加WHERE条件
| condition | 条件表达式 |
引用了 sql_builder() , 以及 where().
被这些函数引用 neforce::repository< T, Connect >::find_where() , 以及 where().
| sql_builder & neforce::sql_builder::where_between | ( | string | field, |
| string | start, | ||
| string | end ) |
添加BETWEEN条件
| field | 字段名 |
| start | 起始值 |
| end | 结束值 |
引用了 neforce::end(), sql_builder() , 以及 where_between().
被这些函数引用 where_between().
| sql_builder & neforce::sql_builder::where_eq | ( | string | field, |
| string | value ) |
添加相等条件
| field | 字段名 |
| value | 值 |
引用了 sql_builder() , 以及 where_eq().
被这些函数引用 neforce::sql_mapper< T >::delete_sql(), neforce::repository< T, Connect >::find_by_id(), neforce::sql_mapper< T >::select_by_pk_sql(), neforce::sql_mapper< T >::update_sql() , 以及 where_eq().
| sql_builder & neforce::sql_builder::where_exists | ( | string | subquery | ) |
| sql_builder & neforce::sql_builder::where_ge | ( | string | field, |
| string | value ) |
| sql_builder & neforce::sql_builder::where_gt | ( | string | field, |
| string | value ) |
| sql_builder & neforce::sql_builder::where_in | ( | string | field, |
| vector< string > | values ) |
添加IN条件
| field | 字段名 |
| values | 值列表 |
引用了 sql_builder(), values() , 以及 where_in().
被这些函数引用 where_in().
| sql_builder & neforce::sql_builder::where_is_not_null | ( | string | field | ) |
添加IS NOT NULL条件
| field | 字段名 |
引用了 sql_builder() , 以及 where_is_not_null().
被这些函数引用 where_is_not_null().
| sql_builder & neforce::sql_builder::where_is_null | ( | string | field | ) |
| sql_builder & neforce::sql_builder::where_le | ( | string | field, |
| string | value ) |
| sql_builder & neforce::sql_builder::where_like | ( | string | field, |
| string | pattern ) |
| sql_builder & neforce::sql_builder::where_lt | ( | string | field, |
| string | value ) |
| sql_builder & neforce::sql_builder::where_ne | ( | string | field, |
| string | value ) |
| sql_builder & neforce::sql_builder::where_not_between | ( | string | field, |
| string | start, | ||
| string | end ) |
添加NOT BETWEEN条件
| field | 字段名 |
| start | 起始值 |
| end | 结束值 |
引用了 neforce::end(), sql_builder() , 以及 where_not_between().
被这些函数引用 where_not_between().
| sql_builder & neforce::sql_builder::where_not_exists | ( | string | subquery | ) |
添加NOT EXISTS条件
| subquery | 子查询 |
引用了 sql_builder() , 以及 where_not_exists().
被这些函数引用 where_not_exists().
| sql_builder & neforce::sql_builder::where_not_in | ( | string | field, |
| vector< string > | values ) |
添加NOT IN条件
| field | 字段名 |
| values | 值列表 |
引用了 sql_builder(), values() , 以及 where_not_in().
被这些函数引用 where_not_in().
| sql_builder & neforce::sql_builder::where_not_like | ( | string | field, |
| string | pattern ) |
添加NOT LIKE条件
| field | 字段名 |
| pattern | 模式 |
引用了 sql_builder() , 以及 where_not_like().
被这些函数引用 where_not_like().
| sql_builder & neforce::sql_builder::with_ | ( | string | name, |
| string | query ) |
| sql_builder & neforce::sql_builder::with_recursive | ( | string | name, |
| string | query ) |
添加递归CTE(WITH RECURSIVE子句)
| name | CTE名称 |
| query | CTE查询SQL |
引用了 sql_builder() , 以及 with_recursive().
被这些函数引用 with_recursive().