FarelDB 关系数据库命令 数据库操作类(database) 之 Insert into
用于向二维表中插入数据。
语法
方法1 插入一条记录,只指定表中某几列:
insert into [数据库名.]二维表名(列1名称,列2名称,…列n名称) values (列1值,列2值,…列n值) |
---|
方法2 插入一条记录,指定表中所有列:
insert into [数据库名.]二维表名 values (列1值,列2值,…列n值) |
---|
方法3 批量插入多条数据
insert into [数据库名.]二维表名 values (行1列1值,行1列2值,…行1列n值),(行2列1值,行2列2值,…行2列n值) ,…n |
---|
说明:方法2必须指定二维表所有列的数据,对于为空的列,需要以NULL 关键字指定
返回值
成功返回大于0的操作影响数 ,失败则返回 错误原因 。
命令实例
打开一个命令行窗口,启动FarelDB服务端,再打开一个命令行窗口,启动FarelDB客户端,输入以下命令:
```javascript
//插入Student 一条记录 ,只插入主键和非空列
FarelDb 10.7.6.209:6800 >insert into studentDB.Student(ID,Name) values(1,'Alex');
success, affected count: 1
// 插入Student 一条记录 ,插入所有列数据
FarelDb 10.7.6.209:6800 >insert into studentDB.Student values(1,'Alex',22,1,1598889600000,679,1000,NULL,'Alex note: Address is apartment1');
success, affected count: 1
// 插入Student 多条记录 ,插入所有列数据
FarelDb 10.7.6.209:6800 >insert into studentDB.Student(ID,Name) values(1,'Alex'),(2,'Tom'),(3,'Jane');
success, affected count: 3
API 说明
函数原型
FarelDbRes* query(std::string Command) |
---|
输入参数说明
输入参数 | 描述 | 可选 |
---|---|---|
Command | 符合语法的命令字符串 | 否 |
返回参数说明
调用成功返回
返回参数 | 值 | 含义 |
---|---|---|
FarelDbRes->errorInfos.size() | 0 | 调用成功,无错误信息 |
调用异常返回
返回参数 | 值 | 含义 |
---|---|---|
FarelDbRes->errorInfos.size() | 大于0 | 调用失败,errorInfos对象数组包含1个或多个错误信息 |
FarelDbRes->errorInfos[0]->resCode | 大于0的数值 | 调用失败,返回错误代码 |
FarelDbRes->errorInfos[0]->resInfo | 非空字符串 | 调用失败,返回错误信息字符串 |
返回数据获取方法
FarelDbRes* query(std::string Command)接口调用成功后,接口将根据不同种类的Sql语句返回不同的结果,具体不同Sql语句返回结果的获取方法,请参考下面的样例代码。
样例代码
#include <iostream>
#include <functional>
#include <memory>
#include "fareldb_connection.h"
using namespace std;
using namespace fareldb_connection;
int main(int argc,char *argv[])
{
//创建连接
FarelDbConnection conn;
//连接
std::tuple<int, string> resConn = conn.connect("127.0.0.1", 6800, "root", "root");
//连接失败
if (0 != get<0>(resConn))
{
printf("连接失败,错误代码:%d : 错误信息:%s\n", get<0>(resConn), get<1>(resConn).c_str());
return;
}
//连接成功,可以开始进行后续操作
//向学生表中插入数据, 命令需要使用utf8字符串
string Command = u8"insert into studentDB.student(ID,Name,Age,Gender,Enrollment_Date,Score,Scholarship,Note) values (0,'Alex',19,1, 1598889600000,98.12,1000.1,'Come from New England region ')";
//执行命令
std::shared_ptr<FarelDbRes> res(conn.query(Command));
//判断执行命令返回是否失败
if (res->errorInfos.size() > 0)
{
printf("%s 调用失败,错误代码:%d ; 错误信息: %s \n\n",Command.c_str(), res->errorInfos[0]->resCode, res->errorInfos[0]->resInfo.c_str());
return;
}
printf("%s 调用成功 \n\n", Command.c_str());
}
补充说明:
- 方括号 [ ]
方括号 ( [ ] ) 表示里面的元素(参数、值或信息)是可选的。 您可以选择一个或多个条目,也可以不选。 不要将方括号本身也输入到命令行中。 - 尖括号 < >
尖括号 ( < > ) 表示里面的元素(参数、值或信息)是必需的。 您需要用相应的信息来替换尖括号里面的文本。 不要将尖括号本身也输入到命令行中。 - [ ,…n ] 表示前面的项可重复 n 次。每一项由逗号分隔。
- [ …n ] 表示前面的项可重复 n 次。每一项由空格分隔。
- | (竖线) 分隔括号或大括号内的语法项目。只能选择一个项目。