目录
嵌入式数据库
4.1 SQLite简介
4.2 SQLite数据库安装
下载地址
1. 把下载的文件sqlite-autoconf-3390000.tar.gz上传到开发板
2. tar xvf sqlite-autoconf-3390000.tar.gz 解压
3. cd sqlite-autoconf-3390000 进入文件夹
4. ./configure --prefix=/usr/local 配置安装路径在/usr/local
5. make 编译//比较久10分钟 6. sudo make install 安装
安装成功
SQLite的命令用法
创建一个数据库
方式一:
1. sqlite3 进入数据库 2. .open test.db 3. .quit 数据库退出后在命令当前路径创建数据库test.db
方式二:
sqlite3 test.db //在命令运行当前窗口创建数据库test.db 在数据库命令下 .databases 列出当前打开的数据库 .quit 退出
创建一张表格
create table stu2(id Integer,name char,score Integer);
插入一条记录
insert into stu values(18130106,'huang',99);//stu是库名字
insert into stu2 values(18130101,"gang",100); ''和""都行
insert into stu(name,score) values("huanggang",98); 插入部分字段内容
查看数据库的记录
select * from stu; //查询所有字段的结果
select name,score from stu; //查询数据库中部分字段的内容
删除一条记录
delete from stu where id = 18;//删除stu库中的id是18这组
更改一条记录
update stu set name = 'huangg' where id = 18;//找到id为18 这个 把name更改为huangg
删除一张表
drop table stu;
增加一列
alter table stu add column sex char;//往这个stu库中增加一个列 sex性别char型
sqlit3 c接口
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
//int callback(void *arg, int column_size, char *column_value[], char*column_name[])
// tata传的参数 字段数大小 列的值 列的名字
int sqlite_callback(void *arg,int column_size,char *column_value[],char *column_name[]){
// printf("column_size %d\n",column_size);//三行
int i=0;
for(i = 0;i < column_size;i++){
printf("%s = %s\n",column_name[i],column_value[i]);
}
printf("------------------------\n");
return 0;//必须返回0 返回0时 数据库有多少数据 调用多少次
}
int main(int argc,char **argv)
{
//sqlite3_open(const char *filename, sqlite3 **ppDb)
sqlite3 *db;//定义一个数据指针
int ret;
if(argc < 2){
printf("usage %s xxx.db\n",argv[0]);
exit(-1);
}
if((ret = sqlite3_open(argv[1],&db)) == SQLITE_OK){//数据库指针指向argv[1]的表
printf("open %s succeed ret = %d\n",argv[1],ret);//打印传的参数 和返回值
}
else{
printf("error:%s ret = %d\n",sqlite3_errmsg(db),ret);//errmsg获取错误原因
if(ret == 14){//如果没打开成功 返回值14 则是没有权限打开
printf("wu qian xian da kai\n");
}
exit(-1);
}
// sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)
// 数据库对象 数据库命令 回调函数 data作为第一个参数传给回调函数 errmsg二级用于存放错误信息
sqlite3_exec(db,"select * from stu",sqlite_callback,NULL,NULL);//
sqlite3_close(db);
printf("done!!\n");
return 0;
}
通过C接口增删改查
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
//int callback(void *arg, int column_size, char *column_value[], char*column_name[])
// tata传的参数 字段数大小 列的值 列的名字
int callback(void *arg,int column_size,char *column_value[],char *column_name[]){
printf("column_size %d\n",column_size);//三行
printf("%s\n",(char *)arg);//exec 传过来data的数据
int i=0;
for(i = 0;i < column_size;i++){
printf("%s = %s\n",column_name[i],column_value[i]);
}
printf("------------------------\n");
return 0;//必须返回0 返回0时 数据库有多少数据 调用多少次
}
int main(int argc,char **argv)
{
//sqlite3_open(const char *filename, sqlite3 **ppDb)
sqlite3 *db;//定义一个数据指针
int ret;
char *errmsg = NULL;
if(argc < 2){
printf("usage %s xxx.db\n",argv[0]);
exit(-1);
}
// 1 打开sqlite3中的argv[1]的数据库
if((ret = sqlite3_open(argv[1],&db)) == SQLITE_OK){// -- 1 --数据库指针指向argv[1]
printf("open %s succeed ret = %d\n",argv[1],ret);//打印传的参数 和返回值
printf("\n");
}
else{
printf("error:%s ret = %d\n",sqlite3_errmsg(db),ret);//errmsg获取错误原因
if(ret == 14){//如果没打开成功 返回值14 则是没有权限打开
printf("wu quan xian da kai\n");
}
exit(-1);
}
// 2 创建表
// sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)
// 数据库对象 数据库命令 回调函数 data作为第一个参数传给回调函数 errmsg二级用于存放错误信息
ret = sqlite3_exec(db,"create table Class01(id integer,name char,addr char)",\
callback,"this is db->Class01",&errmsg);//在stu这个数据库下创建Class01这个表
printf("create ret = %d \n",ret);
if(ret != 0){
printf("create error:%s\n",errmsg);//文件存在创建失败 不影响后面 错误原因存放在errmsg中
}
// 3 往表中插入数据
ret = sqlite3_exec(db,"insert into Class01 values(01,'aa','xiamen')",\
callback,"this is db->Class01",&errmsg);//往stu数据库下的Class01表中插入数据
ret = sqlite3_exec(db,"insert into Class01 values(02,'bb','fuzhou')",\
callback,"this is db->Class01",&errmsg);//往stu数据库下的Class01表中插入数据
printf("insert ret = %d \n",ret);
// 4 显示表中内容 每次插入会往后叠加
sqlite3_exec(db,"select * from Class01",callback,"this is sqlite-->stu-->Class01",&errmsg);//
printf("---------------------------------------------------------------------------------\n");
// 5 删除其中一项
sqlite3_exec(db,"delete from Class01 where id = 02",callback,"this is sqlite-->stu-->Class01",&errmsg);//
// 6 修改其中一项
sqlite3_exec(db,"update Class01 set addr = 'shanghai' where id = 01",callback,"this is sqlite-->stu-->Class01",&errmsg);//
// 7 删除02 修改完01 再显示表中内容 每次插入会往后叠加
sqlite3_exec(db,"select * from Class01",callback,"this is sqlite-->stu-->Class01",&errmsg);//
// 5 关闭
sqlite3_close(db);
printf("done!!\n");
return 0;
}
python环境搭建
=============================================orangepi Zero2 安装Python 3.9====================================== sudo apt update 安装编译Python需要用到的环境 sudo apt install -y build-essential zlib1g-dev \ libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \ libreadline-dev libffi-dev curl libbz2-dev 下载Python源码 wget \ https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz 解压源码包 tar xvf Python-3.9.10.tgz 配置 ./configure --enable-optimizations 编译 make -j4 安装 sudo make install =======================================================以上完成了python的安装,
路径默 认是/usr/local/bin================= 建立软连接,指定python指令找到刚安装的python3.9, 软连接理解成程序别名 sudo rm -f /usr/bin/python 删除原来的软连接 sudo ln -s /usr/local/bin/python3.9 /usr/bin/python 在/usr/bin/目录创建软连接 python,定向/usr/local/bin/python3.9 python --version 检查python版本是否是3.9 ================================================================================ =================================== Linux 系统 pip 默认使用的源为 Python 官方的源, 但是国内访问 Python 官方 的源速度是很慢的, 并且经常会由于网络原因导致 Python 软件包安装失败。 所以 在使用 pip 安装 Python 库时, 请记得更换下 pip 源。 更新pip pip有点像python环境中的apt-get,从服务器获得python开发用的第三方包 sudo apt install -y python-pip python3-pip 更新源 mkdir -p ~/.pip 建立pip工作文件夹 vim ~/.pip/pip.conf 添加pip服务器配置文件 内容如下: [global] timeout = 6000 index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn] =============================================orangepi Zero2 安装Python 3.9=====================================
python基于菜鸟教程学习实践:
Python for 循环语句 | 菜鸟教程 PythPython for 循环语句 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) 流程图: 实例: 实例 [mycode3 type='python'] #!/usr/bin/python # -*- coding: UTF-8 -*- f..https://www.runoob.com/python/python-for-loop.html