数据库文件管理
创始人
2024-11-13 03:06:22
0

数据库文件与普通文件区别:

    1.普通文件对数据管理(增删改查)效率低
    2.数据库对数据管理效率高,使用方便

常用数据库:

   1.关系型数据库:

        将复杂的数据结构简化为二维表格形式
        大型:Oracle、DB2
        中型:MySql、SQLServer
        小型:Sqlite

    2.非关系型数据库

        以键值对存储,且结构不固定 
        Redis
        MongoDB

嵌入式数据库:

    sqlite3:
    stu.db
    1.开源免费, c语言开发
    2.代码量少,1万行左右,总大小10M以内
    3.文件型数据库,可以移动
    4.数据容量最大2T

 sqlite3   xxx.db

  1.sqlite3相关命令

   .help            查看相关手册
   .databases    查看当前数据库所在的路径和名称
   .tables          查看当前数据库中的表
   .schema        查看创建表的结构
   .mode column  列设置位左对齐
   .width 列宽1 列宽2  列宽3   设置各列的宽度

2. sqlite3相关sql语句


       增删改查
     create  table  表名(列名1 数据类型,列名2 数据类型,列名3 数据类型);

    create table class1(id integer, name text, age integer, score real);

     insert into 表名 values(值1, 值2, 值3);

     insert into class1 values(1, "张三", 17, 89.5);

     select 列名 from 表名;
     select 列名1,列名2 from 表名;
     select * from 表名;
    
     select * from 表名 order by 列名 ASC;             //升序排序
     select * from 表名 order by 列名 DESC;             //降序排序
       


     条件查找:

     select * from 表名 where 列名 运算符 值;
     select * from class1 where score>=90;
    
    运算符:
           =
          >
          <
          >=
          <=
          !=


          and
          or

         like

    模糊查找:

    select * from 表名 where 列名 like  "值%";
    模糊查找和"值****"匹配的行
     % 可以模糊匹配多个字符
    _只能模糊匹配一个字符

   select * from 表名 where 列名 like  "值_";


   delete from 表名 where 条件;
   delete from class1 where score>90;


   update 表名 set 列名=新值 where 列名=值;
   update class1 set score= 99 where name="张三";


   datetime("now", "+8 hours");
    
   insert into class2 values(1, "zhangsan", 68, datetime("now", "+8 hours"));


   自动增长列:


   主键值   INTEGER

   create table 表名(id INTEGER PRIMARY KEY AUTOINCREMENT, XXXXX);
   drop table 表名;

   顺序显示

       selete * form 表名称 order by 列名 ASC;  //升序查询
       selete * form 表名称 order by 列名 DESC;  //降序查询
        
       select * from class1 order by score ASC; 升序查询
       select * from class1 order by score DESC;降序查询

   delete

删除表中信息
      DELETE FROM 表名称 WHERE 列名称 = 值

   update

 改表中信息 
      UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

   datetime

datetime('now', '+8 hours');
      select datetime('now', '+8 hours');
      查询当前东八区时间

     insert into class3 values(1, 'zhangsan', 99, datetime('now', '+8 hours'));
     insert into class3 values(2, 'lisi', 100, datetime('now', '+8 hours'));
     insert into class3 values(3, 'wanger', 98, datetime('now', '+8 hours'));


   drop table 表名称

 删除一张表

3. sqlite3相关c函数接口

 1.sqlite3_open():

  int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);
功能:打开一个数据库,如果不存在则创建
参数:
        filename : 数据库名称
        ppDb :    sqlite3句柄的地址    
返回值:
          成功: SQLITE_OK
          失败:错误码

2.sqlite3_exec:

  int sqlite3_exec(
  sqlite3*pdb,                                  /* 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语句
参数:
          pdb : 数据库句柄
          sql : 要被执行的sql语句的首地址
         callback : 当使用查询方式时,每查询到一条结果,该回调函数会被触发
                          int (*callback)(void*arg,int column,char**value,char**title);
                          arg : sqlite3_exec第4个参数
                          column :查询到的数据的列数
                           value  :查询到的一行数据多列值的首地址集合
                            title : 查询到的一行数据多列标题的首地址集合

                         注意:1. 回调函数必须要return;
                                    2. 每查找到一条,都会触发一次回调

         arg : 回调函数的第一个参数
          

返回值:成功: SQLITE_OK

3.sqlite3_close();

  int sqlite3_close(sqlite3*);
      功能:
        关闭数据库句柄,释放空间

4.sqlite3_errmsg():

  const char *sqlite3_errmsg(sqlite3*);
      功能:
        获得出错原因
 

使用linux调用sqlite3函数,将英文字典写入sqlite数据库中,并使用相关函数直接查找打印:

相关内容

热门资讯

秒懂教程!微信的牛牛房卡怎么弄... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享受...
一分钟推荐“拼三张金花房卡找谁... 新七喜是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来...
秒懂教程!拼三张房卡购买联系方... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
正版授权“微信炸金花房间怎么创... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
秒懂教程!微信群牛牛房间怎么开... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享受...
秒懂教程“微信金花群怎么买房卡... 冷酷大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
秒懂教程!微信群拼三张房间卡买... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
一分钟了解“炸金花房卡专卖店联... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
安卓系统彩蛋怎么开的,揭秘隐藏... 你有没有发现,安卓系统里藏着不少小秘密呢?今天,就让我来带你一探究竟,揭秘安卓系统里的那些彩蛋吧!一...
秒懂教程!炸金花房卡如何购买,... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
一分钟推荐“微信金花链接房卡怎... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
秒懂教程!微信怎么开炸金花房间... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享...
房卡必备教程“微信炸金花房卡在... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
魅族系统属于安卓系统吗,深度解... 魅族系统属于安卓系统吗?亲爱的读者们,你是否曾好奇过魅族手机所搭载的魅族系统,它究竟是不是安卓系统呢...
秒懂教程!怎么创建拼三张房间卡... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
秒懂教程“牛牛链接房卡找谁购买... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
秒懂教程!微信的拼三张房卡怎么... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
秒懂教程“牛牛金花房卡是如何购... 牛牛大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
一分钟实测分享”新果汁大厅怎么... 一分钟实测分享”新果汁大厅怎么买房卡“炸金花房间卡怎么购买游戏中心打开微信,添加客服【1138577...
秒懂教程!微信牛牛房卡如何购买... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享受...