您的位置:首页 > 数据库

数据库3

2020-03-30 07:48 405 查看

数据库的导入及导出
若想将sqlite3里的数据导入及导出sqlserver

数据库导出:

linux@ubuntu:~/sqlite3$ sqlite3 kaka.db .dump > yuanyuan.sql
linux@ubuntu:~/sqlite3$ vi yuanyuan.sql

数据库导入:

linux@ubuntu:~/sqlite3$ sqlite3 oo.db < yuanyuan.sql
linux@ubuntu:~/sqlite3$ sqlite3 oo.db
sqlite> .table
student time zizeng
sqlite> select * from time;
1|王源|19|2020-03-08 12:19:31
2|王俊凯|20|2020-03-08 20:19:45
3|王俊凯|23|2019-03-08 20:20:52
1|王源|19|2020-03-08 12:29:18
|王俊凯|20|2020-03-08 12:30:02

为方便观看表格:

网络配置:

网络配置:
linux ->虚拟机设置 -> 网络配置 ->NAT(地址转换)
sudo vim/etc/network/interfaces
保留如下两句
auto eth0
ifface etho inet dhcp

sudo reboot 重启虚拟机
或者
sudo.etc/init.d/networking restart 重启网络
ping www,baidu.com
看是否可以上网

可视化工具sqliteman安装:

sudo apt-get install sqliteman
打开工具:
linux@ubuntu:~/sqlite3$ sqliteman
vim编译器左上角选择file -> open 选择要打开的文件
选择一张表打开:

从左到右
1:写入一行记录
2:删除记录
4:保存
5:取消
查找在上方框中输入命令按第一个绿色右箭头执行即可。

sqlite3_exec 函数执行查询功能并显示

只有命令执行后有表中有可选择的记录才会触发调用get_result函数,出现几条记录调用几次,回调一次指显示一条记录,第二次回调会显示下一条记录,依次类推,直至显示完。

#include <stdio.h>
#include <sqlite3.h>

//返回命令结果col,列,result 正文,title,标题
int get_result(void *arg,int col ,char **result ,char **title)
{
int i = 0 ;
static int flag =  0;
//添加标志为保证只打印一个表头
if(0 == flag)
{
for(i = 0 ;i < col ;i++)
{
printf("%s\t",title[i]);
}

printf("\n");
flag = 1;
}
//插入每一列信息
for(i = 0 ;i < col ; i++)
{
printf("%s\t",result[i]);
}
printf("\n");
return 0;
}
int main(void)
{
sqlite3 *db;
int ret;
ret = sqlite3_open("/home/linux/sqlite3/kaka.db",&db);
if(SQLITE_OK != ret)
{
fprintf(stderr,"open db error:%s\n",sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
char *errmsg = NULL;

char sql_cmd[] = "select * from time;";

ret = sqlite3_exec(db,sql_cmd,get_result,NULL,&errmsg);
if(SQLITE_OK!=ret)
{
fprintf(stderr,"sql cmd  error:%s\n",errmsg);
sqlite3_free(errmsg);
return 1;
}
sqlite3_close(db);
printf("Hello World!\n");
return 0;
}

yongsqlite3_exec();验证登录用户名是否正确

include <stdio.h>
#include <sqlite3.h>
int get_result(void * arg,int col ,char**result ,char**title)
{
/* demo1   not use arg
int i = 0 ;
static int flag =  0;
if(0 == flag)
{
for(i = 0 ;i < col ;i++)
{
printf("%s\t",title[i]);
}

printf("\n");
flag = 1;
}

for(i = 0 ;i < col ; i++)
{
printf("%s\t",result[i]);
}
printf("\n");
*/
//我们是要给内容复制为1,所以对其取*
*(int*)arg = 1;
return 0;
}
int main(void)
{
sqlite3 *db;
int ret;
ret = sqlite3_open("/home/linux/sqlite3/kaka.db",&db);
if(SQLITE_OK!=ret)
{
fprintf(stderr,"open db error:%s\n",sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
char * errmsg=NULL;

char sql_cmd[] = "select * from student where name ='王一博' and age ='23';";
//定义标志为,验证用户名及密码是否存在
//flag_exists标志位传递给get_result()的第一个参数即arg,若用户名和密码匹配,则会调用get_result函数
//标志位传过来之前是整形,接回去为指针型变量*arg
int flag_exists  = 0 ;
ret = sqlite3_exec(db,sql_cmd,get_result,&flag_exists,&errmsg);
if(SQLITE_OK!=ret)
{
fprintf(stderr,"sql cmd  error:%s\n",errmsg);
sqlite3_free(errmsg);
return 1;
}
if(0 == flag_exists)
{
printf("user and passwd error\n");
}
else
{
printf("user and passwd correct\n");
}
sqlite3_close(db);
printf("Hello World!\n");
return 0;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
卡卡and源源 发布了15 篇原创文章 · 获赞 1 · 访问量 177 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: