广铁建设集团门户网站,怎么把东西发布到网上卖,老狼请客高清免费观看mx,中视频自媒体注册SQLite是一个轻量级的数据库解决方案#xff0c;它是一个嵌入式的数据库管理系统。SQLite的特点是无需独立的服务器进程#xff0c;可以直接嵌入到使用它的应用程序中。由于其配置简单、支持跨平台、服务器零管理#xff0c;以及不需要复杂的设置和操作#xff0c;SQLite非…SQLite是一个轻量级的数据库解决方案它是一个嵌入式的数据库管理系统。SQLite的特点是无需独立的服务器进程可以直接嵌入到使用它的应用程序中。由于其配置简单、支持跨平台、服务器零管理以及不需要复杂的设置和操作SQLite非常适用于移动应用、小型项目和桌面应用程序。 1.安装数据库
可以在官网http://www.sqlite.org/下载安装包我的安装包有点老就不给大家了 libsqlite3-0_3.7.2-1ubuntu0.1_i386.deb (.deb的安装包可以用dpkg -i 来进行安装) .deb 是linux 系统的应用程序的安装包文件 安装.deb文件 dpkg -i deb文件名 (dpkg -i 安装应用程序) 1.1 打开数据库 打开/新建数据库命令 sqlite3 my.db (如果my.db 存在就打开不存在就新建)创建成功后当前目录会有一个my.db的文件 数据库 一般 扩展名是.dbdatabase sqlite3分两种语言 sqlite3应用程序的选项语言一般以.开头 输入 .开头的命令(非sql语句命令) .help查看帮助 .tables 查看数据库有哪些表 .quit 退出sqlite 还有一种命令不是以 .开头的这种叫sql语句sql语句以 ; 结束 总结: sqlite3 以 . 开头的命令是 sqlite3命令 不是以 . 开头的是 sql语句一定以 ;结束 1.2数据库中的概念 数据库 将所有的数据各种类型描述各种事物的数据放到一起 如my.db文件就是一个数据库文件 数据表 描述某一个事物的基本信息的表 学生信息表 (stu_info) 编号 姓名 性别 年龄 班级 爱好 图书信息表 (book_info) 图书编号 书名 出版社 作者 分类 记录 表里面的一条信息 字段 列名 2.sql语句重点
sql语句: 是一个标准的数据库语言提供了对数据库操作的各种命令, 并且sql语句是所有数据库通用的。 2.1创建数据表
语句create table stu_info (number varchar(20), name varchar(50), age integer, sex varchar(10)); //后面会用到这个表大家了解一下 create table 关键字, 用来创建表 stu_info 自定义的表名 number name age sex 字段 varchar 可变字符串数据类型 默认50 integer 整数数据类型 2.2 删除表
drop table 表名; //执行前记得加分号
示例drop table stu_info; //删除stu_info表 2.3 插入记录到表中(重点) 1字段全部添加的语句insert into 表名 values(填入所有字段) //注意结尾有分号 insert into stu_info values (1001, zhangsan, 25, nan); //所有字段全都填入值 2只给某些字段添加值的语句insert into stu_info (age,number) values (26, 1002); //agenumber是不添加值的字段。 2.4查询表中的记录(重点) select * from stu_info; // * 是查看stu_info表里的所有字段 select age from stu_info; //查看age字段 select age,number from stu_info; //查看多个字段间用逗号隔开 sql命令 .header on 显示字段名 .mode column 列对齐 按一个条件查询
select * from stu_info where name lisi; //查询表里namelisi的记录 按多个条件查询 select * from stu_info where name lisi and age 25; select * from stu_info where name lisi or age 25; 其他各种查询 1 查询年龄 25的记录 select * from stu_info where age 25; 2 查询记录 只想看编号、姓名字段 select number, age from stu_info where age 25; //查询age25的记录只看numberage字段 3 按顺序输出所有记录 select * from stu_info order by age; //按年龄顺序输出默认情况是升序排列 select * from stu_info order by age desc; //降序排列 4 模糊查询(假设有一个人名我记不住了但能记住名字中的一个字 就可以用模糊查询) 示例:查询名字当中带li字符的人like select * from stu_info where name like %li%; // % 代替后续或者前面的内容 5 多条件查询 select * from stu_info where age 25 and number 1001; //查询年龄大于 25 编号 1001 的学生信息 6 统计记录条数 select count(*) from stu_info; select count(*) from stu_info where age 25; 练习 1. 创建学生成绩表(字段如下) 学生编号(number) 数学(math) 语文(ch) 英语(en) 2. 向学生成绩中添加三条记录 1001 100 90 80 1002 80 90 80 1003 90 90 80 3. 查询出编号1003的记录 create table score_info (number varchar(20), math integer, ch integer, en
integer);insert into score_info values (1001, 100, 90, 80); //所有字段全都填入值
insert into score_info values (1002, 80, 90, 80); //所有字段全都填入值
insert into score_info values (1003, 90, 90, 80); //所有字段全都填入值select * from score_info where number 1003; 2.5 删除表中记录(重点) 示例 delete from stu_info; //删除所有记录 delete from stu_info where number 1002; //删除number 1002的记录 2.6修改表中记录(重点)
示例把字段number为1004 的记录,该记录中name改成wangwu update stu_info set name wangwu where number 1004; 2.7多表联合查询
学生基本信息表: number name age sex 成绩表: nubmer math ch en 两个表number字段相同 示例查询数学成绩 90的所有学生的基本信息和成绩 select stu_info.*, score_info.math from stu_info, score_info where score_info.math 90 and stu_info.number score_info.number; //显示的字段有score_info1的math字段还有stu_info整个表的字段 必须有一个字段是相同的 3.用c语言操作数据库 3.1 打开数据库 头文件#include sqlite3.h 函数 int sqlite3_open(char *path, sqlite3 **db); 功能: 打开数据库,如果数据不存在则新建 参数: path [入参] 打开的数据库名称路径 db [出参] 打开数据库后它将指向数据库的指针给db 返回值: 执行成功返回SQLITE_OK(0)否则返回其他值 例如 sqlite3* db;//FILE* fp sqlite3_open(my.db, db); #include stdio.h
#include sqlite3.h
int main()
{sqlite3 *p; //如果打开成功将指向数据库的指针赋值给pif(sqlite3_open(my.db, p) 0) //如果数据库不存在就创建{printf(database open success\n);sqlite3_close(p);}
}编译gcc test.c -lsqlite3 3.2 执行数据库操作的sql语句 (只用于insert into create table update delete) int sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback,
void *, char **errmsg);
参数
db sqlite3_open 的第二个参数
sql 要执行的sql语句
NULL 默认为NULL (非NULL值用在查询中)
NULL 默认为NULL
errmsg [出参] 如果sql语句执行错误errmsg中保存错误字符串
返回值成功返回0不成功返回其他 #include stdio.h
#include sqlite3.h
int main()
{sqlite3 *p;if(sqlite3_open(my.db, p) 0) //如果数据库不存在就创建{printf(database open success\n);if(sqlite3_exec(p, delete from stu_info where name zhangsan, NULL,NULL, NULL) 0){printf(delete success\n);}}
} 3.3查询语句 函数 int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg); 功能执行SQL查询操作。 参数 db指向数据库指针(数据库句柄), open的第二个参数 sqlSQL语句 (select * from stu_info) resultp[出参]用来指向sql执行结果的指针 (跟errmsg类似) nrow[出参]满足条件的记录的数目, 包括字段名相当于行数表头会返回出来但表头不计入行 数所以打印时需要打印nrow1行 ncolumn[出参]每条记录包含的字段数目相当于列数 errmsg错误信息指针的地址 如果语句执行出错那么errmsg中是错误信息 返回值成功返回0失败返回错误码 示例 #include stdio.h
#include sqlite3.h
#include stdlib.h
int main()
{sqlite3 *db;char *errmsg;char **q;int nrow, ncolumn, i, j, index 0;if(sqlite3_open(my.db, db) 0){if(sqlite3_get_table(db, select * from stu_info, q, nrow,ncolumn, errmsg) ! 0){printf(error : %s\n, errmsg);exit(-1);}else{for (i0; i nrow 1; i) //nrow 是行 如果有1条记录那么值为1{for (j0; jncolumn; j){printf(%10s, q[index]); //printf(%10s,q[i*ncolumn j]);}printf(\n);}}}
} 4.结语
这就是sqlite数据库在Linux上使用教程感谢大家的观看希望大家点点赞点点关注后续会出用到sqlite的项目谢谢