SQLIST数据库编程

数据库简介

1.常用数据库

大型数据库 :Oracle

中型数据库 :Server是微软开发的数据库产品,主要支持windows平台 

小型数据库 : mySQL是一个小型关系型数据库管理系统。开放源码

2. SQLite基础

 SQLite的源代码是C,其源代码完全开放。它是一个轻量级的嵌入式数据库。

 SQLite有以下特性: 

      1.零配置一无需安装和管理配置; 

      2.储存在单一磁盘文件中的一个完整的数据库; 

      3.数据库文件可以在不同字节顺序的机器间自由共享; 

      4.支持数据库大小至2TB(1024= 1TB);足够小,全部源码大致3万行c代码,250KB; 

      5.比目前流行的大多数数据库对数据的操作要快;

3.创建SQLite数据库

手工创建 

     使用sqlite3工具,通过手工输入SQL命令行完成数据库创建.

     用户在Linux的命令行界面中输入sqlite3可启动sqlite3工具 

代码创建 

在代码中常动态创建数据库 在程序运行过程中,当需要进行数据库操作时,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序则会自动建立数据库,然后再打开数据库 

虚拟中sqlite3安装

sqlite3 安装:
1. sudo dpkg -i *.deb  离线安装		
2. 在线安装
 1、设置能够上网
 2、更新更新源
	#apt-get update
		
 3、安装软件及开发环境
   # apt-get install sqlite3		--->sqlite3数据库软件
   # apt-get install libsqlite3-dev	--->sqlite3数据库开发支持库
   # apt-get install sqlite3-doc		--->sqlite3数据库说明文档
	--------------------------------		
   #apt-get install sqlitebrowser		
			--->sqlite3数据库操作软件

源码安装:

tar xf sqlite-autoconf-3140100.tar.gz
./configure
make
sudo make install

安装完成后,可以使用sqlite3 -version命令来测试是否安装成功

$ sqlite3 -version 
3.14.1 2016-08-11

基础SQL语句使用

命令的方式操作 

格式:sqlite3 数据库文件名(stu.db)

     (创建一个新的数据库)

两种命令:

1. sqlite3系统命令(类似Windows系统命令,开机关机等,都是以.开头的)

都是以 '.' 开头的

a.   .help  查看所有支持的命令

b.   .quit  退出 

c.   .tables  查看有哪些表

d.   .schema stu2  查看表结构

2. SQL命令 (具体对数据库怎样操作,对数据库增删改查用SQL命令)

SQL命令是以 “;” 结尾

在库当中创建一个表

(在数据库里面不严格检查数据类型,char可以表示字符,也可以表示字符串

1创建一个表

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

create table stu1(id int primary key, name char, score float);

注:把id字段设置为主键(在表中唯一);  

字符串:char string text

小数:float real

不支持严格的类型检查的;

2 删除一个表

drop  table  

...>;

3》 向表里面插入数据

insert  into    values(value1, value2,…);

insert into stu values(1,"xiaomingx",99.9);

//只插入部分字段    id  name  score 

insert into stu(id,name) values(4,xiaoming)

4 查找数据 

查询表中所有记录

select  *  from  ;

(*表示查询所有的值)

按指定条件查询表中记录

select  *  from    where  ;

select * from stu where id=2;

select * from stu where id=2 and name='lisi';

select * from stu where id=1 or name='zhangsan';

select score from stu where name='LiSi' or id=3; //满足条件的某列

select name,score from stu where name='LiSi' or id=3;

select * from stu limit 5;   //只查询前n条记录

select * from stu order by id desc; //按id从大到小进行排序

5 修改(更新)数据 

update    set  , …   where  ;  

update stu set  id=10 where id=1;

6 增加字段

alter table 

 add column   default  …; 

alter table stu add column class int default 1;

(表示添加了一列class,默认值为1)

7 删除字段(在数据库当中其实不支持直接删除一个字段(及一列),

如果就想删除一列,那么需要三步骤)

1)create table student as select id,name,score from stu;

创建一个student表,从stu表当中复制id,name,score

2) drop table stu;

删除原有的stu表

3) alter table student rename to stu;

重命名

最后一列为1的被删除掉了。

  8》删除一行

操作完以后可以图形华界面修改东西,然后在命令行去查看的时候就被修改了。

为什么不用图形化界面而是使用命令方式操作:

因为嵌入式里面用C写代码,C代码里面想实现对数据库进行操作,

用的就上上面的命令,而C里面你不能在里面嵌套图像化界面。

sqlite3编程

API接口文档

头文件:#include <sqlite3.h>
编译:gcc sqlite1.c -lsqlite3

1.int sqlite3_open(char  *path, sqlite3 **db);

功能:打开sqlite数据库,如果数据库不存在则创建它
path: 数据库文件路径
db: 指向sqlite句柄的指针
返回值:成功返回SQLITE_OK,失败返回错误码(非零值)

2.int sqlite3_close(sqlite3 *db);

功能:关闭sqlite数据库
返回值:成功返回SQLITE_OK,失败返回错误码

返回值:返回错误信息


3.执行sql语句接口
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:回调函数(满足一次条件,调用一次函数,用于查询)
    再调用查询sql语句的时候使用回调函数打印查询到的数据
arg:传递给回调函数的参数
errmsg:错误信息指针的地址
返回值:成功返回SQLITE_OK,失败返回错误码

回调函数:
typedef int (*sqlite3_callback)(void *para, int f_num, 
         char **f_value, char **f_name);

功能:select:每找到一条记录自动执行一次回调函数
para:传递给回调函数的参数(由 sqlite3_exec() 的第四个参数传递而来)
f_num:记录中包含的字段数目
f_value:包含每个字段值的指针数组(列值)
f_name:包含每个字段名称的指针数组(列名)
返回值:成功返回SQLITE_OK,失败返回-1,每次回调必须返回0后才能继续下次回调

4.不使用回调函数执行SQL语句(只用于查询)
int sqlite3_get_table(sqlite3 *db, const  char  *sql, 
   char ***resultp,  int *nrow,  int *ncolumn, char **errmsg);

功能:执行SQL操作
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的记录的数目(但是不包含字段名(表头 id name score))
ncolumn:每条记录包含的字段数目
errmsg:错误信息指针的地址

返回值:成功返回SQLITE_OK,失败返回错误码

5.返回sqlite3定义的错误信息
char *sqlite3_errmsg(sqlite3 *db);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WinCE是Windows CE(Windows嵌入式)的简称,是由微软公司开发的一种经典的嵌入式操作系统。其主要应用于低功耗、资源受限的嵌入式设备,例如智能手机、手持设备、工业控制器和汽车导航系统等。WinCE是专为嵌入式系统设计的,能够在有限的资源下提供足够的功能。 WinCE具有一些独特的特点。首先,它是一个可通过通用Windows API进行开发的操作系统,这使得开发人员可以使用熟悉的编程语言和工具进行应用程序的开发。其次,WinCE具有高度可配置性,可以根据具体的应用需求进行定制,减少了不必要的功能和复杂性。第三,WinCE具有良好的兼容性,可以在不同的硬件平台上运行。 WinCE支持多任务处理和多线程运行,可以同时运行多个应用程序,并通过线程间通信实现数据共享和协同工作。它提供了丰富的嵌入式设备支持,包括触摸屏、网络连接、多媒体功能等。同时,WinCE还提供了强大的安全功能,可以保护嵌入式设备的数据和系统安全。 总的来说,WinCE是一种成熟的嵌入式操作系统,具有广泛的应用领域和强大的开发支持。它在智能手机和手持设备等领域得到了广泛应用,并在工业自动化和汽车导航系统等领域也具有重要地位。随着物联网和嵌入式技术的发展,WinCE将继续发挥重要作用,为嵌入式设备提供稳定、可靠和高效的操作系统基础。 ### 回答2: Wince C是指Windows嵌入式核心操作系统上的C语言开发环境。Wince C是为嵌入式设备开发设计的一套标准的C编程工具。它包含了一系列的编译器、调试器、库文件和开发工具,可以帮助开发人员快速、高效地开发嵌入式设备的应用程序。 Wince C提供了丰富的API库和工具,可以方便地进行设备的驱动程序开发、应用程序开发、调试和测试。它支持多线程和多任务的并发处理,可以实现设备的高效运行。Wince C的开发过程相对简单,开发人员只需要掌握C语言的基本知识,就可以使用Wince C进行嵌入式设备的开发。 Wince C的应用非常广泛。它可以用于开发各种类型的嵌入式设备,例如智能手机、平板电脑、工业控制系统等。开发人员可以利用Wince C的强大功能,开发出高性能、高可靠性的嵌入式应用程序。同时,Wince C还提供了良好的用户界面和用户体验,可以满足用户对于设备的操作和交互需求。 总之,Wince C是一套强大的嵌入式C语言开发环境,可以帮助开发人员快速、高效地开发嵌入式设备的应用程序。它广泛应用于各种类型的嵌入式设备,并在市场上取得了良好的口碑。 ### 回答3: Wince是一种嵌入式操作系统,属于微软的产品。它主要用于低功耗、低内存和低处理能力的设备,如手持终端、智能手机、嵌入式系统等。 Wince C是在Wince平台下开发的C语言编程。C语言是一种高效、通用的编程语言,广泛用于系统级编程和嵌入式开发。在Wince C编程中,开发者可以利用C语言的强大特性,编写高效的、可移植的嵌入式应用程序。 Wince C提供了丰富的库函数和API接口,使开发者可以轻松地访问设备硬件和操作系统资源。开发者可以使用Wince C编写图形用户界面、网络通信、数据库操作等功能,为嵌入式设备提供各种应用。 在Wince C编程中,开发者需要了解Wince平台的特点和限制。由于Wince是一种低功耗、低内存和低处理能力的操作系统,开发者需要注意资源的合理分配和使用。同时,Wince平台对软件的稳定性和安全性要求较高,开发者需要编写健壮的程序并进行严格的测试。 总之,Wince C是一种在嵌入式操作系统Wince上使用C语言编程的方法。通过Wince C,开发者可以轻松地编写高效、可移植的嵌入式应用程序,为各种低功耗设备提供丰富的功能和服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值