一、SQLite数据库简介

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。

二、SQLite数据库安装

目前,几乎所有版本的 Linux 操作系统都附带 SQLite。所以,只要使用下面的命令来检查您的机器上是否已经安装了 SQLite。

如果没安装在Ubuntu下输入如下命令:sudo  apt-get  install  sqlite3

三、SQLite数据库使用

1-- 安装数据库:

         sudo  apt-get  install  sqlite3

2-- 创建数据库

         sqlite3  stu.db

3-- sqlite命令

 系统命令 以 "."开头普通命令 ,以";"结束 .schema  查看表的结构.quit    退出数据库.exit    退出数据库.help    查看帮助信息.databases 查看数据库.tables  显示数据库中所有的表的表名

4-- sqlite3 的使用

1-- 创建一张表

create table 表名(字段名称1 字段类型,字段名称2 字段类型, ....);

       create table stu(id int, name char, sex char , score int);

2-- 向表中插入一条记录

insert into 表名 values (字段值1,字段值2,...);

       insert into stu values(1001, 'zhangsan', 'm', 89);insert into stu (id, name, sex,score) values(1002, 'lisi', 'm', 99);

3-- 查询记录

       select * from stu;                                    // 查找所有的记录select * from stu where id=1001;                      // 查找符号条件的记录select * from stu where id=1001 and name='zhangsan';  // 字符串需要加引号select * from stu where name = 'zhangsan' or score=92; 

4-- 删除记录

       delete from stu where id=1004;

5-- 更新记录

       update stu set score=98 where id=1003;

6-- 删除一张表

       drop  table  stu;

7-- 添加一列

        alter table stu add column score int;

8-- 删除一列

sqlite3 不允许直接删除一列

1)先创建一张新表

           create table stu1 as select id , name from stu;

2)删除原来的旧表

           drop table stu;

3)对新表重命名

           alter table stu1 rename to stu;

9-- 数据库主键(既设置的数据将会是唯一存在的)

        create table usr(name text primary key , passwd text);

5-- sqlite3 API 函数接口

 (1)int sqlite3_open(    const char *filename,   /* Database filename (UTF-8) */sqlite3 **ppDb          /* OUT: SQLite db handle */);功能:打开一个数据库参数:filename   数据库名字ppdb      操作数据库的指针,句柄。返回值:成功 SQLITE_OK , 失败 error_code(2)const char *sqlite3_errmsg(sqlite3* db);功能:获取错误信息描述(3)int sqlite3_close(sqlite3* db);功能:关闭一个数据库(4)int sqlite3_exec(sqlite3* db,                                  /* An open database */const char *sql,                           /* SQL to be evaluated */int (*callback)(void*,int,char**,char**),  /* Callback function */void * arg,                             /* 1st argument to callback */char **errmsg                          /* Error msg written here */);功能:执行一条sql语句参数:db  数据库的句柄指针sql  将要被执行sql语句callback 回调函数, 只有在查询语句时,才给回调函数传参arg  为callback 传参的errmsg 错误信息的地址返回值:成功 SQLITE_OK出错 errcode 错误码***********************************************************int (*callback)(void* arg ,int  ncolumn ,char** f_value,char** f_name)功能:得到查询结果参数:arg  为回调函数传递参数使用的ncolumn  记录中包含的字段的数目f_value  包含每个字段值的指针数组f_name   包含每个字段名称的指针数组返回值:成功 0,出错 非0*********************************************************(5)int sqlite3_get_table(sqlite3 *db,          /* An open database */const char *zSql,     /* SQL to be evaluated */char ***pazResult,    /* Results of the query */int *pnRow,           /* Number of result rows written here */int *pnColumn,        /* Number of result columns written here */char **pzErrmsg       /* Error msg written here */);功能:查询数据库,它会创建一个新的内存区域来存放查询的结果信息参数:db       数据库操作句柄sql      数据库的sql语句azResult 查询的结果nRow     行数nColumn  列数errmsg   错误消息返回值:成功 0出错 errcodenrow的值为查询到的符合条件的记录数(不包括字段名)。ncolumn的值为查询到的符合条件的字段数。注意:nrow的值不包括字段名,如果打印时用for (i = 0; i < nrow; i++)会打印出字段名,但是会少打印出一条符合条件的记录。因此打印时要用 for (i = 0; i <nrow + 1; i++);将包括字段名在内的数据都打印出来。(6)void sqlite3_free_table(char **result);功能:释放内存

备注:

于作者水平,难免有理解和描述上有疏漏或者错误的地方,欢迎共同交流;部分参考已经在正文和参考文献中列表注明,但仍有可能有疏漏的地方,有任何侵权或者不明确的地方,欢迎指出,必定及时更正或者删除;文章供于学习交流,转载注明出处。

sqlite3 select查询一列_一眼就会的sqlite3数据库相关推荐

  1. sqlite3 select查询一列_Python成为专业人士笔记–Sqlite3 模块

    "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com Sqlite3 -一个不需要独立服务器进程的 ...

  2. 双表查询java代码_什么是JDBC?Java数据库连接性简介

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...

  3. oracle 前导列_通过 PL/SQL Developer (Oracle)-数据库(26)

    本篇文章介绍了跟SQL语句性能提升有关的执行计划,工作时间长了,或者说高手的进阶途径之一,就是如何能够在数据量很大的情况下,数据库的查询效率还能保持良好的性能. 感兴趣的朋友,可以收藏这篇文章哦,未来 ...

  4. python sql查询返回记录_干货!Python与MySQL数据库的交互实战

    安装PyMySQL库 如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接使用pip install pymysql:假如这种方式还是安装不上,就用 ...

  5. mysql 的新建查询怎么弄_在Navicat中如何新建数据库和表并做查询

    上一篇文章,小编给大家分享了在Navicat中如何远程连接数据库,没有来得及上车的小伙伴可以戳这篇文章:在Ubuntu14.04中配置mysql远程连接教程.今天小编给大家分享一下如何在Navicat ...

  6. mysql查询名字中第2个字为丽,数据库技术课程复习5---MySQL语言(2)(单表查询)

    0.学习前言 单表查询理解起来是比较简单的,关键要注意格式化指令的使用方法,一起加油鸭! 1.语句格式 语句格式 SELECT [ALL|DISTINCT] [,] - FROM [, ] - [ W ...

  7. mysql超长sql查询_超长SQL怎么查询?MySQL列长度限制有哪些 | 学步园

    MySQL字符串的限制长度看似重要性不要,其实和整个MySQL数据库的安全性是息息相关的,很值得我们去深入研究分析.SQL注入攻击一直都在被广泛的讨论,然而人们却忽略了今天我将要介绍的这两个安全隐患, ...

  8. 查询时拼接两列数据_如何用VBA代码查询两列数据差异?

    爱就一个字,我只说一次-- 北京市第三交通委提醒您:代码千万条,注释第一条,命名不规范,修订两行泪-- 咳,给大家拜晚年了,再提前祝大家元宵快乐-- 我们今天和大家分享的内容是如何用VBA代码查询两列 ...

  9. mysql 去除重复 Select中DISTINCT关键字的用法(查询两列,只去掉重复的一列)

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...

最新文章

  1. arcpy 批量投影_使用ArcPy对栅格数据进行批量投影坐标转换
  2. 【ES6】Proxy对象
  3. 如何选择高性价比的控件产品
  4. Channel的几种状态
  5. 心中有“树”:数据结构之树详解
  6. Android 博客园客户端 (八) 下拉刷新、分页,AsyncTask
  7. go调用ethereum_Go语言爱好者周刊:第 76 期 — 新年计划做了吗?
  8. JavaScript学习杂记--对象和数组
  9. 【C/C++开发】C++库大全
  10. 替换Oracle,从阿里巴巴到亚马逊-他们在逃离什么?
  11. OLE-只读性质的EXCEL
  12. 翻译的艺术 —— 名著的翻译
  13. 【学习Spring框架】依赖注入和控制反转异同?
  14. 复数(Complex Number)
  15. 《必然》二、奔跑吧,所有人都是菜鸡
  16. 谱密度 matlab,功率谱密度估计方法的matlab实现.doc
  17. 学习超市管理系统的搭建与实现
  18. python:求出歌手的得分
  19. 计算机类ei期刊,【2017年整理】电子类通信类和计算机类EI期刊(大部分免费).docx...
  20. 蓝精灵事件来袭: 深受喜爱的蓝色角色来 Web3 啦!

热门文章

  1. WebRTCon 2018 Day Two精彩回顾
  2. 数据上报痛点解决方案
  3. Golang 单元测试详尽指引
  4. 微信扫一扫识物的技术揭秘:抠图与检索
  5. nginx学习十 ngx_cycle_t 、ngx_connection_t 和ngx_listening_t
  6. SSH原理与运用(一):远程登录
  7. 实现lua面向对象的private属性
  8. 每日两SQL(6),欢迎交流~
  9. leetcode 994. Rotting Oranges | 994. 腐烂的橘子(BFS)
  10. 【Python】忘记登录密码?遍历数字字母组合密码+模拟提交表单