0227 数据库sqlite3概念 (个人)

目录

一、知识点

二、SQL语句 

三、sqlite3简单函数

四、C文件补充


一、知识点

1.冗余是提高数据可靠性最好的方法;

   热备用(??带电拔插的USB U盘)

2.数据库三级模式、两层映射、两个独立性(逻辑独立性/物理独立性 )

   1)用户级数据库、概念级数据库、物理级数据库

   2)外模式是模式的子集,保证数据库安全性;

         一个模式有多个外模式,一个应用程序只能有一个外模式;

3.数据库相当于一个文件夹子;database.db需要建立文件才有意义即数据库至少要一个表;

 【相当于github建立文件夹的方式】

二、SQL语句 

1)外键概念:说明数据库里至少有两个表了

2)select-基本结构

   

3)update-基本结构

4)create-基本结构:【temp创建临时表,会自动删除,不常用】【使用时加:if not exists】

5)查询条件:<>  等同于  !=

6)空值不是一个确定的值,所以不可以用等于或不等于来比较,空值只能说是空值(IS NULL);

   insert into contract values (NULL, 'name');  // 这里NULL是数据类型,主键自增写法;

7)字符匹配LIKE

8)ASC升序

9)SQL提供计算函数:count(sno) sno不为空值的记录数

  

三、sqlite3简单函数

1.C语言使用数据库   

  1)#include <sqlite3.h>       

  2)gcc -lm -lsqlite3 -lpthread

2.sqlite3_open()

3.sqlite3_exec()

   1)para可以传一个值给callback,用户可以在不改变原型callback(),而自定义回调函数;

   2)回调函数每次处理一条记录,select找到一条回调函数处理一条;

         所以回调函数末尾要加一个return SQLITE_OK,每次都判断一下;

4.不带回调函数的使用方法,相当于malloc一个二维表再free(这里二维表实际是一维数组);

   sqlite3_get_table()和sqlite3_free_table()

四、C文件补充

1. fgets() 和 gets() 一样,最后的回车都会从缓冲区中取出来。只不过 gets() 是取出来丢掉,而 fgets() 是取出来自己留着。但总之缓冲区中是没有回车了!所以与 gets() 一样,在使用 fgets() 的时候,如果后面要从键盘给字符变量赋值,那么同样不需要清空缓冲区。下面写一个程序验证一下。

# include <stdio.h>
int main(void)
{
    char str[30];
    char ch;
    printf("请输入字符串:");
    fgets(str, 29, stdin);
    printf("%s", str);  //后面不要加'\n'
    scanf("%c", &ch);
    printf("ch = %c\n", ch);
    return 0;
}

转载自:fgets使用规范http://c.biancheng.net/view/235.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值