データベース| SQLiteデータベース

SQLiteデータベース

データベースは、データベース管理システムの管理下にあるストレージメディアに格納されたデータの集まりです。一般的に使用されるデータは、大、中、小のデータベースに分かれています。

1. SQLiteデータベース

SQLiteは、非常に少ないリソースを使用する軽量の組み込みデータベースです。組み込みデバイスでは、数百Kのメモリで十分な場合があります。その処理速度は、MysqlとPostgreSQLの2つの有名なデータベースよりも高速です。SQLiteは、データベースの操作に使用できるいくつかのC関数インターフェースを提供します。これらのインターフェースを使用して、いくつかの標準SQLステートメント(char *型)をSQLite関数に渡すと、SQLiteがデータベースを操作します。

  • 構成不要、構成をインストールおよび管理する必要なし
  • 単一のディスクファイルに格納された完全なデータベース
  • データベースファイルは、バイトオーダーが異なるマシン間で自由に共有できます。
  • 最大2TBのデータベースサイズをサポート
  • 十分に小さく、ソースコード全体は約30,000行のCコード、250KBです。
  • 最も一般的なデータベースよりも高速にデータを操作します

2. SQLiteデータベースの使用

2.1データベースのインストール
本地安装:sudo dpkg -i *.deb
在线安装:sudo apt-get install sqlite3
2.2データベースシステムコマンド
启动SQLite3:sqlite
打开数据库文件:sqlite <*.db>   (若文件不存在则自动创建该文件)
显示所有命令:.help
退出sqlite3:.quit
显示当前打开的数据库文件:.database
显示数据库中所有表名:.tables
查看表的结构:.schema <table name>
2.3データベースsqlコマンド
//sql命令一定要以“;”结束
//以下以表stdinfo为例
创建表:	 create table stuinfo(id integer, name text, age integer, score float); 
插入记录:insert into stuinfo values(1, 'Andy', 30, 99.9);
         insert into stuinfo(id, name, score) values(2, 'Amy', 100);
查看记录:select * from stuinfo;
         select * from stuinfo where score = 100;
         select * from stuinfo where score = 99.9 and name = 'Andy';
         select * from stuinfo where score = 99.9 or name = 'Amy';
         select * from stuinfo where score > 80 and score < 100;
         select name,score from stuinfo; //查询指定的字段
删除记录:delete from stuinfo where id = 1 and name = 'Andy';
更新记录:update stuinfo set age = 20,score = 100 where id = 1;
增加一列:alter table stuinfo add column sex char;
删除一列:create table stu as select id, name, score from stuinfo;	//从stuinfo中复制新表(不包含要删除的列)
         drop table stuinfo; //删除老的表stuinfo
         alter table stu rename to stuinfo;	//将新表stu重命名为stuinfo,完成删除列的操作
删除表:  drop table stuinfo;
/***设置主键***/
设置主键: create table table_name(column1 datatype PRIMARY KEY, column2 datatype, ……);
//PRIMARY KEY表示该列为该表的“主关键字”,主关键字用于唯一索引表内的某一条记录,主关键字必须唯一且主关键字的列值不能为空
//一张表允许省略主关键字
2.4 SQLiteプログラミングインターフェイス
  • データベースsqlite3_open()を開きます
函数原型:int sqlite3_open(char *path, sqlite3 **db)
输 入 值:path 数据库文件路径
		 db 指向sqlite句柄的指针
返 回 值:成功返回0;失败返回错误码(非零值)
  • データベースsqlite3_close()を閉じます
函数原型:int sqlite3_close(sqlite3 *db)
输 入 值:db 指向sqlite句柄的指针
返 回 值:成功返回0;失败返回错误码(非零值)
  • エラーメッセージsqlite3_errmg()を返す
函数原型:const char *sqlite3_errmg(sqlite3 *db)
输 入 值:db 指向sqlite句柄的指针
返 回 值:返回错误信息
  • SQL操作を実行する(コールバック関数を使用)sqlite3_exec()
函数原型:typedef int (*sqlite3_callback)(void*,int,char**,char**);    //定义sqlite3_exec()需要的回调函数的函数指针类型
         int sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void* para, char **errmsg)
输 入 值:db 需要操作的数据库的句柄指针
		 sql 需要对数据库执行的SQL语句 
		 callback 回调函数,当执行SQL语句(第二个参数)成功后会自动运行该函数;如果不需要则设为NULL
		 para 传递给回调函数第一个参数的指针;如果不需要则设为NULL
		 errmsg 存储错误信息指针
返 回 值:成功返回0;失败返回错误码(非零值)
  • 折り返し電話
函数原型:int function(void *para, int f_num, char *f_value[], char *f_name[])
输 入 值:para 传递给回调函数的参数(即sqlite3_exec()的第四个参数)
		 f_num 记录中包含的字段数目(列数)
		 f_value 包含每个字段值的指针数组(列的值)
		 f_name 包含每个字段名称的指针数组(列的名称)
返 回 值:成功返回0;失败返回-1
  • (コールバック関数を使用せずに)SQL操作を実行するsqlite3_get_table()
函数原型:int sqlite3_get_table(
  sqlite3 *db,          /* 数据库句柄 */
  const char *zSql,     /* 需要对数据库执行的sql语句 */
  char ***pazResult,    /* 用来指向SQL执行结果的指针 */
  int *pnRow,           /* 满足条件的记录的数目 */
  int *pnColumn,        /* 每条记录包含的字段数目 */
  char **pzErrmsg       /* 错误信息指针的地址 */
)
返 回 值:成功返回0;失败返回错误码(非零值)

おすすめ

転載: blog.csdn.net/Chuangke_Andy/article/details/108471199