数据库
1、分类: 大型 中型 小型
ORACLE MYSQL/MSSQL SQLITE DBII powdb
关系型数据库
2、名词:
DB 数据库 select update database
DBMS 数据库管理体系
MIS 管理信息体系
OA 办公自动化
3、嵌入式数据库:
sqlite3 www.sqlite.org www.kernal.org
GNU
特点:
1、开源 C语言开发
2、代码量少 1万行左右,总巨细10M以内
3、文件型数据库,可以移动。
4、数据容量最大 2T
4、sqlite3的安装: LTS long term support
1、在线安装 :
sudo apt-get install sqlite3 (安装软件)
sudo apt-get install libsqlite3-dev (安装sqlite3的库)
gcc test.c -lsqlite3 -lpthread
2、验证是否安装乐成:
sqlite3 --version
sqlite3 --help
5、sqlite3的使用:
启动sqlite3
sqlite3 xxx.db
===>用sqlite3 来打开一个名称为test.db的本地数据库。
出现如下提示符:表明数据库管理体系启动。
sqlite>
退出数据库:
.q 命令
注意:如果一直出现如下符号:
...>
则写';'竣事。
1、体系维护命令:===> .help
出现所有相关的体系维护命令,都是以 "."开头。
.database 列出当前库和体系中谁人文件在关联
.tables 列出当期数据库中的所有表
.schema xxx 列出当前指定的xxx表结构
.dump user ===>导出数据库
重定向
sqlite3 test.db .dump > 123.sql
sqlite3 xxx.db < test.sql ===>导入数据库
2、标准SQL语句:===》通用语法在其他平台可以直接使用。
注意:所有的sql语句都以';'结尾。
创建一个表:
create table 表名(表字段1,表字段2,...);
eg: create table user(id,name,age); char
注意:以上表的表字段,支持如下数据范例。int text real blob
默认是text范例。char; //text不限制长度,char限制长度,最大为1kb
//这里的char是字符串的意思
create table 表名 (表字段 范例,表字段 范例,。。。。);
eg:
create table user(id int ,name char,age int);
删除一个表:
drop table 表名;
eg:drop table user;
数据库通例操作: 增加 删除 修改 查询
增:
向表中增加数据:
insert into 表名 (字段名称 ) values (值名称);
eg:insert into user (id,age) values (1,10);
insert into user values(3,"wang",11); //省略user的字段名称
insert into user (age) values ( 12); //不省略
查:
查询表中的数据:
select 列名 from 表名 条件;
eg:select * from user ;
select id,name from user;
select id,name from user where not age <30
where name like '三一' % _ 通配符
(like,字符串专用)
(%省略没限制)
(下划线,省略一个字符)
asc
select *from user where age>20 or age<50 order by age desc limit 2 ;
&& ||(可写为 and 和 or)
改:
修改表中数据:
update 表名 set 表字段 = 值 满足条件:
like:给字符串用的,模糊查找
eg: update user set id = 1 where name = 'li';
update user set id = 1 where name = "li" and passwd = "123";
update user set id = 2 where name = "li" or name = "zhao";
删:
删除表中数据:
delete from 表名 满足条件:
eg:delete from user ; ///删除表中所有数据
delete from user where id = 1; ///删除id=1 的数据;
delete from user where id =1 and name = "zhang";
delete from user where id = 1 or id = 2;
(select * from user,delate from user(where),insert into user value)
sqlite3 数据库编程
1、须要的头文件
sqlite3.h
2、编译过程
-lsqlite3(参加sqlite3头文件)
3、编程框架:
打开数据库 ==》读写数据库(增,删,改,查) ==》关闭数据库
sqlite3.h
sqlite3_open()
3.1 打开数据库: sqlite3_open
int sqlite3_open(char * path,sqlite3 ** db);
功能:打开指定path路径+文件名称的数据库,并将
打开的地址指向db变量的句柄。
参数:path 要打开的数据库路径+名称
db 要打开的数据库地址指针
返回值:乐成 0
失败 -1;
sqlite3_close()
3.2 关闭数据库: sqlite3_close
int sqlite3_close(sqlite3 *db);
功能:关闭指定的数据库
参数:要关闭的数据库地址
返回值:乐成 0
失败 -1;
sqlite3_exec()
int sqlite3_exec(sqlite3 *db,char *sql,callback fun,
void * arg,char ** errmsg);
功能:在db数据库上执行sql 非查询语句。
并将效果返回。
参数:db 要执行sql的数据库
sql 要执行的非查询sql语句。
fun 如果该函数要执行查询语句,则该回调函数
用来采取查询的效果。
arg 回调函数的参数,如果没有回调函数则该参数为NULL;
errmsg 执行过程中的错误信息。
返回值:执行乐成 0
失败 非0 ;
int fun(void *arg ,int f_num,char ** f_value,
char ** f_name)
功能:该函数用于sqlite3_exec执行select语句的
效果集返回数据。
参数:arg 由sqlite3_exec传入的参数
f_num 执行该命令所返回测效果集的字段个数。
f_value 查询效果集中的字段的值。
f_name 查询效果集中的字段的名称。
返回值:乐成 0
失败 非0
注:该回调函数正常退出必须有返回0,否则大概导致查询非常。
(如果sqlite3_exec()回调返回非零,则sqlite3_exec()例程返回SQLITE_ABORT,
(SQLITE_ERROR中的一个错误,请求中断)而不再次调用回调,也不运行任何后续的SQu语句。)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |