## 什么是拼接SQL
就是框架的通过简单传参的方式,将传递过来的参数组合成完整的SQL语句进行执行操作,然后将最终的结果返回到模型层。这也是现在大多数的系统底层所具备的快速编程方式,而本框架则以【轻快】为宗旨,尽量的做到精简化,只保留了【增删改查】四个最基本、最常用的拼接。以下则通过讲解来解析这四种的组合方式。
## 首先是 —— 增
**代码格式**
~~~
self::upData([table], [data]);
~~~
**参数描述**
| 参数名 | 参数描述 | 参数类型 |
| --- | --- | --- |
| table | 被操作的数据表名 | 字符串 |
| data | 被 UPDATA 的数据 | 字符串、数组 |
**实例**
1、单一添加
~~~
$data = ['username'=>'abc','password'=>'123'];
return self::upData($this->_table, $data);
~~~
2、批量添加
~~~
$data = [
['username'=>'abc','password'=>'123'],
['username'=>'def','password'=>'456']
];
return self::upData('user', $data);
~~~
## 其次是 —— 删
**代码格式**
~~~
self::delete([table], [where])
~~~
**参数描述**
| 参数名 | 参数描述 | 参数类型 |
| --- | --- | --- |
| table | 被操作的数据表名 | 字符串 |
| where | 删除数据的条件 | 字符串、数组 |
**实例**
~~~
self::delete('user', ['id'=>5]);
~~~
## 然后是 —— 改
**代码格式**
~~~
self::upData([table], [data], [where]);
~~~
**参数描述**
| 参数名 | 参数描述 | 参数类型 |
| --- | --- | --- |
| table | 被操作的数据表名 | 字符串 |
| data | 被 UPDATA 的数据 | 字符串、数组 |
| where | 修改数据的条件 | 字符串、数组 |
**实例**
~~~
$data = ['username'=>'abc','password'=>'789'];
self::upData('user', $data, ['id'=>5]);
~~~
## 最后是 —— 查
### 1、统计个数查询
**代码格式**
~~~
self::total([table], [where], [field]);
~~~
**参数描述**
| 参数名 | 参数描述 | 参数类型 |
| --- | --- | --- |
| table | 被操作的数据表名 | 字符串 |
| where | 要查询数据的条件 | 字符串、数组 |
| field | 要查询的字段 | 字符串、数组 |
**实例**
~~~
$data = self::total($this->_table);
~~~
### 1、单一查询
**代码格式**
~~~
self::alone([table], [where], [field]);
~~~
**参数描述**
| 参数名 | 参数描述 | 参数类型 |
| --- | --- | --- |
| table | 被操作的数据表名 | 字符串 |
| where | 要查询数据的条件 | 字符串、数组 |
| field | 要查询的字段 | 字符串、数组 |
**实例**
~~~
$data = self::alone('user', ['id'=>6]);
~~~
### 3、列查询
**代码格式**
~~~
self::select([table], [where], [field], [order], [limit])
~~~
**参数描述**
| 参数名 | 参数描述 | 参数类型 |
| --- | --- | --- |
| table | 被操作的数据表名 | 字符串 |
| where | 要查询数据的条件 | 字符串、数组 |
| field | 要查询的字段 | 字符串、数组 |
| order | 按某个字段进行升序或降序的排列,如(id DESC 或者 id ASC) | 字符串 |
| limit | 返回行数(及起始行),如(10 或者 10, 10) | 字符串 |
**实例**
~~~
$data = self::select('user', null, "*", "id DESC");
~~~
### 4、按组查询
这个查询则需要在执行 self::select 之间,先
**代码格式**
~~~
self::groupBy([group_by]);
~~~
**参数描述**
| 参数名 | 参数描述 | 参数类型 |
| --- | --- | --- |
| group_by | 要求按分组查询的字段 | 字符串 |
**实例**
~~~
self::groupBy('sex');
~~~