Constructor
new QueryBuilder(Driver, Adapter)
Parameters:
Name | Type | Description |
---|---|---|
Driver |
Driver | The syntax driver for the database |
Adapter |
Adapter | The database module adapter for running queries |
- Source:
Extends
- QueryBuilderBase
Methods
delete(table, whereopt) → {Promise.<Result>}
Run the generated delete query
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
table |
String | The table to insert into | |
where |
Object |
<optional> |
Where clause for delete statement |
- Source:
Returns:
- Promise containing the result of the query
- Type
- Promise.<Result>
end() → {void}
Closes the database connection for the current adapter
- Source:
Returns:
- Type
- void
from(tableName) → {QueryBuilder}
Specify the database table to select from
Parameters:
Name | Type | Description |
---|---|---|
tableName |
String | The table to use for the current query |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
Examples
query.from('tableName');
query.from('tableName t'); // Select the table with an alias
get(tableopt, limitopt, offsetopt) → {Promise.<Result>}
Get the results of the compiled query
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
table |
String |
<optional> |
The table to select from |
limit |
Number |
<optional> |
A limit for the query |
offset |
Number |
<optional> |
An offset for the query |
- Source:
Returns:
- Promise containing the result of the query
- Type
- Promise.<Result>
Examples
query.get('table_name').then(promiseCallback); // Get all the rows in the table
query.get('table_name', 5); // Get 5 rows from the table
query.get(); // Get the results of a query generated with other methods
getCompiledDelete(table, resetopt) → {String}
Return generated delete query SQL
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
table |
String | the name of the table to delete from | ||
reset |
Boolean |
<optional> |
true | Whether to reset the query builder so another query can be built |
- Source:
Returns:
- The compiled sql statement
- Type
- String
getCompiledInsert(table, resetopt) → {String}
Return generated insert query SQL
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
table |
String | the name of the table to insert into | ||
reset |
Boolean |
<optional> |
true | Whether to reset the query builder so another query can be built |
- Source:
Returns:
- The compiled sql statement
- Type
- String
getCompiledSelect(tableopt, resetopt) → {String}
Return generated select query SQL
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
table |
String |
<optional> |
the name of the table to retrieve from | |
reset |
Boolean |
<optional> |
true | Whether to reset the query builder so another query can be built |
- Source:
Returns:
- The compiled sql statement
- Type
- String
getCompiledUpdate(table, resetopt) → {String}
Return generated update query SQL
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
table |
String | the name of the table to update | ||
reset |
Boolean |
<optional> |
true | Whether to reset the query builder so another query can be built |
- Source:
Returns:
- The compiled sql statement
- Type
- String
groupBy(field) → {QueryBuilder}
Group the results by the selected field(s)
Parameters:
Name | Type | Description |
---|---|---|
field |
String | Array | The name of the field to group by |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
groupEnd() → {QueryBuilder}
Ends a logical grouping started with one of the groupStart methods
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
groupStart() → {QueryBuilder}
Adds an open paren to the current query for logical grouping
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
having(key, valopt) → {QueryBuilder}
Add a 'having' clause
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
key |
String | Object | The name of the field and the comparision operator, or an object | ||
val |
String | Number |
<optional> |
null | The value to compare if the value of key is a string |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
insert(table, dataopt) → {Promise.<Result>}
Run the generated insert query
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
table |
String | The table to insert into | |
data |
Object |
<optional> |
Data to insert, if not already added with the 'set' method |
- Source:
Returns:
- Promise containing the result of the query
- Type
- Promise.<Result>
insertBatch(table, data) → {Promise.<Result>}
Insert multiple sets of rows at a time
Parameters:
Name | Type | Description |
---|---|---|
table |
String | The table to insert into |
data |
Array | The array of objects containing data rows to insert |
- Source:
Returns:
- Promise containing the result of the query
- Type
- Promise.<Result>
Example
query.insertBatch('foo',[{id:1,val:'bar'},{id:2,val:'baz'}])
.then(promiseCallback);
join(table, cond, typeopt) → {QueryBuilder}
Add a join clause to the query
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
table |
String | The table you are joining | ||
cond |
String | The join condition. | ||
type |
String |
<optional> |
'inner' | The type of join, which defaults to inner |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
like(field, val, posopt) → {QueryBuilder}
Add a 'like/ and like' clause to the query
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
field |
String | The name of the field to compare to | ||
val |
String | The value to compare to | ||
pos |
String |
<optional> |
both | The placement of the wildcard character(s): before, after, or both |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
limit(limit, offsetopt) → {QueryBuilder}
Put a limit on the query
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
limit |
Number | The maximum number of rows to fetch | |
offset |
Number |
<optional> |
The row number to start from |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
notLike(field, val, posopt) → {QueryBuilder}
Add a 'not like/ and not like' clause to the query
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
field |
String | The name of the field to compare to | ||
val |
String | The value to compare to | ||
pos |
String |
<optional> |
both | The placement of the wildcard character(s): before, after, or both |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orderBy(field, typeopt) → {QueryBuilder}
Order the results by the selected field(s)
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
field |
String | The field(s) to order by | ||
type |
String |
<optional> |
'ASC' | The order direction, ASC or DESC |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orGroupStart() → {QueryBuilder}
Adds an open paren to the current query for logical grouping,
prefixed with 'OR'
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orHaving(key, valopt) → {QueryBuilder}
Add an 'or having' clause
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
key |
String | Object | The name of the field and the comparision operator, or an object | ||
val |
String | Number |
<optional> |
null | The value to compare if the value of key is a string |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orLike(field, val, posopt) → {QueryBuilder}
Add an 'or like' clause to the query
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
field |
String | The name of the field to compare to | ||
val |
String | The value to compare to | ||
pos |
String |
<optional> |
both | The placement of the wildcard character(s): before, after, or both |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orNotGroupStart() → {QueryBuilder}
Adds an open paren to the current query for logical grouping,
prefixed with 'OR NOT'
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orNotLike(field, val, posopt) → {QueryBuilder}
Add an 'or not like' clause to the query
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
field |
String | The name of the field to compare to | ||
val |
String | The value to compare to | ||
pos |
String |
<optional> |
both | The placement of the wildcard character(s): before, after, or both |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orWhere(key, valopt) → {QueryBuilder}
Set a 'or where' clause
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
key |
String | Object | The name of the field and the comparision operator, or an object | |
val |
String | Number |
<optional> |
The value to compare if the value of key is a string |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orWhereIn(key, values) → {QueryBuilder}
Set a 'or where in' clause
Parameters:
Name | Type | Description |
---|---|---|
key |
String | the field to search |
values |
Array | the array of items to search in |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orWhereIsNotNull(field) → {QueryBuilder}
Field is not null prefixed with 'OR'
Parameters:
Name | Type | Description |
---|---|---|
field |
String | The name of the field |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orWhereIsNull(field) → {QueryBuilder}
Field is null prefixed with 'OR'
Parameters:
Name | Type | Description |
---|---|---|
field |
String | The name of the field |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
orWhereNotIn(key, values) → {QueryBuilder}
Set a 'or where not in' clause
Parameters:
Name | Type | Description |
---|---|---|
key |
String | the field to search |
values |
Array | the array of items to search in |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
query(sql, paramsopt) → {Promise}
Run an arbitrary sql query. Run as a prepared statement.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
sql |
string | The sql to execute | |
params |
Array |
<optional> |
The query parameters |
- Source:
Returns:
- Promise with result of query
- Type
- Promise
queryFile(file, separatoropt) → {Promise}
Run a set of queries from a file
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
file |
string | The path to the sql file | ||
separator |
string |
<optional> |
';' | The character separating each query |
- Source:
Returns:
- The result of all the queries
- Type
- Promise
resetQuery() → {void}
Reset the object state for a new query
- Source:
Returns:
- Type
- void
select(fields) → {QueryBuilder}
Specify rows to select in the query
Parameters:
Name | Type | Description |
---|---|---|
fields |
String | Array | The fields to select from the current table |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
Examples
query.select('foo, bar'); // Select multiple fields with a string
query.select(['foo', 'bar']); // Select multiple fileds with an array
set(key, valopt) → {QueryBuilder}
Set values for insertion or updating
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
key |
String | Object | The key or object to use | |
val |
String |
<optional> |
The value if using a scalar key |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
Examples
query.set('foo', 'bar'); // Set a key, value pair
query.set({foo:'bar'}); // Set with an object
truncate(table) → {void|Promise}
Empties the selected database table
Parameters:
Name | Type | Description |
---|---|---|
table |
string | the name of the table to truncate |
- Source:
Returns:
- Returns a promise if no callback is supplied
- Type
- void | Promise
update(table, dataopt) → {Promise.<Result>}
Run the generated update query
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
table |
String | The table to insert into | |
data |
Object |
<optional> |
Data to insert, if not already added with the 'set' method |
- Source:
Returns:
- Promise containing the result of the query
- Type
- Promise.<Result>
updateBatch(table, data, updateKey) → {Number}
Creates a batch update sql statement
Parameters:
Name | Type | Description |
---|---|---|
table |
String | The table to update |
data |
Object | Batch insert data |
updateKey |
String | The field in the table to compare against for updating |
- Source:
Returns:
Number of rows updated
- Type
- Number
where(key, valopt) → {QueryBuilder}
Set a 'where' clause
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
key |
String | Object | The name of the field and the comparision operator, or an object | |
val |
String | Number |
<optional> |
The value to compare if the value of key is a string |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
whereIn(key, values) → {QueryBuilder}
Set a 'where in' clause
Parameters:
Name | Type | Description |
---|---|---|
key |
String | the field to search |
values |
Array | the array of items to search in |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
whereIsNotNull(field) → {QueryBuilder}
Specify that a field IS NOT NULL
Parameters:
Name | Type | Description |
---|---|---|
field |
String | The name so the field that is not to be null |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
whereIsNull(field) → {QueryBuilder}
Select a field that is Null
Parameters:
Name | Type | Description |
---|---|---|
field |
String | The name of the field that has a NULL value |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder
whereNotIn(key, values) → {QueryBuilder}
Set a 'where not in' clause
Parameters:
Name | Type | Description |
---|---|---|
key |
String | the field to search |
values |
Array | the array of items to search in |
- Source:
Returns:
- The Query Builder object, for chaining
- Type
- QueryBuilder