数据库:
列一般设计成最小的不可再分割的
最小单位是列中的字段 多个字段形成记录 多个记录形成表 多张表则构成库
关系型数据库 SQL(struct query language) //也有非关系型
ddl(data defination language) 建表
dml(data modifty) 新增 修改 删除一行
dql(data query language) 查询
数据库:
分类 : 大型(ORACLE) 中型(MYSQL/MSSQL) 小型 (SQLITE DBII powdb)
SQLITE--->移动式数据库
名词: DB 数据库
DBMS 数据库管理系统
MIS 管理信息系统
OA 办公自动化
嵌入式数据库: www.sqlite.org
gcc test.c -sqlite3 -lpthread
sqlite3 aaa.db
.help 显示指令
.databases 显示关联的文件名
.exit 退出
.headers on|off 显示表头和关闭显示表头
.quit
.schema 原理图 //显示这个表的建表语序,就是建表时的各个字段是什么的规则
.tables 和shell的ls有点像 //显示当前这个库有哪些表
ctrl + d 退出
建表: create table user(表名)(id int , name char , age int);
删除表: drop table (表名);
eg: drop table user;
向表中增加数据:
insert into 表名(字段名称) values(值名称);
eg: insert into user values(1,'关二爷',30); //顺着表字段的顺序给
//存非数字的内容 要加上‘’ /“” 来引起来
//所有的符号都是英文的
对着给
查询表中的数据:
select 列名 from 表名 条件;
eg: 1、 select * from user; //表示所有的列
2、 select id from user;
3、 select * from user where age!=25; // 满足条件的显示不满足的不显示
通配符 % _ 这两个
eg: name like “张%”;
如果有两个要求 可以 在这样: where id and age =34;
修改表中数据:
update 表名 set 表字段 = 值 满足条件;
删除表中数据:
delete from user where id =1 ;
插入时间列:
datetime("now","+* hours")
自动增长列:
INTEGER PRIMARY KEY ASC
插入的时候这个位置写入NULL就可以
数据的导出:
sqlite3 xxx.db .dump > xxx.sql
// 这个 > 指输出重定向
作用1 : 做备份
作用2 : 转换数据库时可以使用这个
导出之后可以rm掉aaa.db了
数据的导入:
sqlite3 xxx.db < xxx.sql
// 这个 < 指输入重定向
可视化工具安装:
sudo apt-get install sqlitebrowser
使用方法: sqlitebrowser xxx.db //打开这个图表
-----------------------------------------------------------------------
头文件: #include <sqlite3.h>
sqlite3* db;
int ret = sqlite3_open("aaa.db",&db);
if(SQLITE_OK != ret)
{
fprintf(stderr,"open db error : %s\n".sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
//执行非查询的语句
char * errmsg;
char sql_cmd[256] = "insert into user values(8,'zhaosi',12);";
sqlite3——exec(db,sql_cmd,NULL,NULL,&errmsg);
//注意在C语言中的双引号最好用单引号不然会匹配错误;
if(SQLITE_OK != ret)
{
fprintf(stderr," exec sqlcmd error: %s\n",errmsg);
sqlite3_free(errmsg);
sqlite3_close(db);
return 1;
}
//关闭db文件
sqlite3_close(db);
gcc 01sql.c -l sqlite3 //编译这个C程序
数据库!!!找函数!!!
www.sqlite.org www.sqlite.org www.sqlite.org www.sqlite.org
通过函数返回返回值; //定义一个回调函数 接收
int show(void*arg,int col,char**,cahr**)
char **result, char **title