SQlite3数据库相关相关命令

这篇具有很好参考价值的文章主要介绍了SQlite3数据库相关相关命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1)系统命令 以 ‘.’ 开头

.help 帮助手册
.exit  退出
.table  查看当前数据库的有的表格名
.databases 
.schema  查看表的结构属性

2)sql语句 以 ';'结尾

1. 创建表格

create table <table-name> (id integer, age integer, name char, score float);

2. 插入数据

insert into <table-name> values(1001, 15, zhangsan, 89);// 标准插入
insert into <table-name> values (id, age, name) values(1002, 18, lisi);//按列名插入

3. 查看数据库记录

select * from <table-name>; //查看全部
select * from <table-name> were age = 15;//按列名的信息 age=15 的查看
select * from <table-name> were age = 15 and name = lisi;//按多个列名的信息查看
select * from <table-name> were age = 15 or name = lisi;//age = 15 或 name = lisi满足一个条件就输出
select name, id from <table-name>;//指定字段查询
select * from <table-name> where score >= 90 and score <= 100;//查询score[90,100] 之间的信息

4. 删除信息

delete from <table-name> where id = 1005 and name = 'zhangsan';//删除id=1005和name=‘张三’的信息(同时满足)
delete from <table-name> where id = 1005 or name = 'zhangsan';//删除id=1005或name=‘张三’的信息(有一个条件满足就执行)

5. 更新数据

update <table-name> set name = 'wangwu' where id = 1002;//将id是1002的行信息中的name全部改成 'wangwu';

6. 增加一列

alter table <table-name> add column score float;//在<table-name>表名后面添加一列名: score属性为:float

7. 删除一列 (sqlite3 不支持直接删除一列)

1-- 创建一张新表
	create table <new-table-name> as select id, name, score from <table-name>;//从<table-name>表名中选择指定的列(id,name,score)为基础创建<new-table-name>新的表
2-- 删除原有的表
	drop table <table-name>;
3-- 将新表的名字改成原有的旧表的名字
	alter table <new-table-name> rename to <table-name>;//将<table-name>新表明改成<table-name>旧表明

3)sqlite3 数据库 C语言 API

1. 打开数据库

   int sqlite3_open (
      const char *filename,   /* Database filename (UTF-8) */
      sqlite3 **ppDb          /* OUT: SQLite db handle */
    );
    功能:打开数据库
    参数:filename  数据库名称
          ppdb      数据库句柄
    返回值:成功为0 SQLITE_OK ,出错 错误码

2. 关闭数据库

 int sqlite3_close(sqlite3* db);
    功能:关闭数据库
    参数:
    返回值:成功为0 SQLITE_OK ,出错 错误码

3. 错误信息

 const char *sqlite3_errmsg(sqlite3*db);
    功能:得到错误信息的描述

4. 执行一条sql语句

   int sqlite3_exec(
   	    sqlite3* db,                                  /* An open database */
 	    const char *sql,                           /* SQL to be evaluated */
	    int (*callback)(void* arg,int,char**,char**),  /* Callback function */
 	    void * arg,                                    /* 1st argument to callback */
  		char **errmsg                              /* Error msg written here */
  );
  功能:执行一条sql语句
  参数:db  数据库句柄
        sql 		sql语句
        callback    回调函数,只有在查询时,才传参
        arg         为回调函数传递参数
        errmsg      错误消息
  返回值:成功 SQLITE_OK

5. 查询回调函数

查询回调函数:
int (*callback)(void* arg,int ncolumns ,char** f_value,char** f_name),  /* Callback function */
功能:查询语句执行之后,会回调此函数
参数:arg   接收sqlite3_exec 传递来的参数
      ncolumns 列数
      f_value 列的值得地址
      f_name   列的名称
返回值:0

6. 查询函数

int sqlite3_get_table(
  sqlite3 *db,          /* An open database */
  const char *zSql,     /* SQL to be evaluated */
  char ***pazResult,    /* Results of the query */
  int *pnRow,           /* Number of result rows written here */
  int *pnColumn,        /* Number of result columns written here */
  char **pzErrmsg       /* Error msg written here */
);

功能:不需要回调函数的查询函数
参数:
	db  数据库句柄
	zSql 存放sqlite3的语句
	pazResult  存放表中的数据
	pnRow 行
	pnColumn 列
	pzErrmsg 错误信息

小知识:如果结构体中定义的是一级指针,那么你要定义变量取地址的形式,如果是二级指针函数,你要定义一级指针取地址的形式

学生信息实例

student.c

#include <stdio.h>
#include <sqlite3.h>
#include <string.h>
#include <stdlib.h>

#define N 128
#define DATABASE "student.db"
int do_insert(sqlite3 *db);
int do_query(sqlite3 *db);
int do_query_1(sqlite3 *db);
int do_delete(sqlite3 *db);
int do_update(sqlite3 *db);

int main (int argc, char *argv[]) {
	sqlite3 *db;
	char *errmsg;
	int n;

	//打开SQlite数据库文件.db
	if (sqlite3_open(DATABASE, &db) != SQLITE_OK) 
		printf("%s\n", errmsg);
	else 
		printf("open DATABASE success.\n");

	//创建一张数据库的表格 stu
	if (sqlite3_exec(db, "create table stu(id integer, name char, sex char, score integer);", 
															NULL, NULL, &errmsg) != SQLITE_OK) {
		printf("%s\n", errmsg);
	} else {
		printf("Create of open table success.\n");
	}
	
	while (1) {
		printf("************************************************\n");
		printf("1: insert  2:query  3: delete  4: update 5: quit\n");
		printf("************************************************\n");
		printf("Please select:");
		scanf("%d", &n);
		getchar();

		switch(n) {
		case 1:
			do_insert(db);//插入信息
			break;
		case 2:
			//do_query(db);//查询
			do_query_1(db);
			break;
		case 3:
			do_delete(db);//删除
			break;
		case 4:
			do_update(db);//更新
			break;
		case 5:
			printf("main exit.\n");
			sqlite3_close(db);
			exit(0);
			break;
		default:
			printf("Invalid data n.\n");
		}
	}
	return 0;
}

int  do_insert(sqlite3 *db)
{
	int id;
	char name[32] = {};
	char sex;
	int score;
	char sql[N] = {};
	char *errmsg;

	printf("Input id: ");
	scanf("%d", &id);

	printf("Input name: ");
	scanf("%s", name);
	getchar();//回收掉垃圾字符

	printf("Input sex: ");
	scanf("%c", &sex);

	printf("Input score: ");
	scanf("%d", &score);

	sprintf(sql, "insert into stu values(%d, '%s','%c', %d )", id, name, sex, score );

	if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
		printf("%s\n", errmsg);
	else 
		printf("Insert done.\n");

	return 0;
}

int callback(int* arg,int f_num ,char** f_value,char** f_name) {
	int i;

	for (i = 0; i < f_num; i++) {
		printf("%-8s", f_value[i]);
	}

	putchar(10);

	return 0;
}

int do_query(sqlite3 *db)
{
	char sql[N] = {};
	char *errmsg;

	sprintf(sql, "select * from stu");

	if(sqlite3_exec(db, sql, callback, NULL, &errmsg) != SQLITE_OK)
		printf("%s\n", errmsg);
	else 
		printf("Query done.\n");

	return 0;
}

int do_query_1(sqlite3 *db)
{
	char *errmsg;
	char ** resultp;
	int nrow;
	int ncolumn;

	if(sqlite3_get_table(db, "select * from stu", &resultp, &nrow, &ncolumn, &errmsg) != SQLITE_OK)
		printf("%s\n", errmsg);
	else
		printf("query done.\n");

	int i = 0;
	int j = 0;
	int index = ncolumn;

	for(j = 0; j < ncolumn; j++)
	{
		printf("%-10s", resultp[j]);
	}
	putchar(10);

	for(i = 0; i < nrow; i++)
	{
		for(j = 0; j < ncolumn; j++)
		{
			printf("%-10s ", resultp[index++]);
		}
		putchar(10);
	}

	return 0;
}

int do_delete(sqlite3 *db)
{
	char sql[N] = {};
	char *errmsg;
	int id;

	printf("Invalid id:");
	scanf("%d", &id);
	getchar();

	sprintf(sql, "delete from stu where id = %d;", id);

	if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
		printf("%s\n", errmsg);
	else 
		printf("Delete done.\n");


	return 0;
}

int do_update(sqlite3 *db)
{
	char *errmsg;
	char sql[N] = {};
	char name[32] = "zhangsan";
	int id;

	printf("Input id:");
	scanf("%d", &id);

	sprintf(sql, "update stu set name = '%s' where id = %d;",name, id);

	if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
		printf("%s\n", errmsg);
	else 
		printf("Delete done.\n");

	return 0;
}

输出结果:
SQlite3数据库相关相关命令,数据库,sqlite,oracle
SQlite3数据库相关相关命令,数据库,sqlite,oracle
SQlite3数据库相关相关命令,数据库,sqlite,oracle文章来源地址https://www.toymoban.com/news/detail-579101.html

到了这里,关于SQlite3数据库相关相关命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

    02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

    目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 (1)安装SQLite3软件 sudo apt-get install sqlite3 (2)安装库文件 sudo apt-get install libsqlite3-dev 安装成功后输入sqlite3查看 (3)安装sqlite3可

    2024年02月11日
    浏览(17)
  • sqlite3数据库的实现

    sqlite3代码实现数据库的插入、删除、修改、退出功能

    2024年02月12日
    浏览(14)
  • sqlite3将词典导入数据库

    使用sqlite3代码实现将词典导入数据库中

    2024年02月12日
    浏览(10)
  • 嵌入式数据库之sqlite3

    嵌入式数据库之sqlite3

            数据:能够输入计算机并能被计算机程序识别和处理的信息集合。         数据库:数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。 1.大型数据库         Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作

    2024年02月10日
    浏览(11)
  • 【嵌入式数据库之sqlite3】

    目录 一.数据库基本概念(理解) 1.数据 2.数据库 二.常用的数据的数据库(了解) 1.大型数据库 2.中型数据库 3.小型数据库 三.基于嵌入式的数据库(了解) 四.SQLite基础(了解) 五.创建数据库(熟练) 1.手工创建 2.代码创建 六.SQLite编程接口 七.代码示例(学生管理系统) 八

    2024年02月09日
    浏览(8)
  • 【C++】开源:sqlite3数据库配置使用

    【C++】开源:sqlite3数据库配置使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍sqlite3数据库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/sqlite/sqlite SQLite 是一种嵌入式

    2024年02月14日
    浏览(7)
  • SQLite3数据库的介绍和使用(面向业务编程-数据库)

    SQLite是一种用C语言实现的的SQL数据库 它的特点有:轻量级、快速、独立、高可靠性、跨平台 它广泛应用在全世界范围内的手机电脑应用的内建数据库 官网地址:https://www.sqlite.org/index.html SQLite因为其采用文件存储,且容易移植。在嵌入式中应用非常广泛,可以说是嵌入式业

    2024年02月02日
    浏览(14)
  • 10.1 嵌入式数据库之sqlite3

    【1】数据库    1, 数据库的安装        sudo dpkg -i  *.deb    2, 数据库命令:       1)系统命令 , 都以\\\'.\\\'开头          .exit           .quit          .table   查看表          .schema  查看表的结构                  2)sql语句, 都以‘;’结尾         1-- 创建一张表

    2024年02月12日
    浏览(11)
  • sqlite3 关系型数据库语言 SQL 语言

    sqlite3 关系型数据库语言 SQL 语言

            SQL(Structured Query Language)语言是一种结构化查询语言,是一个通用的,功能强大的关系型数据库操作语言. 包含 6 个部分: 1.数据查询语言(DQL:Data Query Language)         从数据库的二维表格中查询数据,保留字 SELECT 是 DQL 中用的最多的语句 2.数据操作语言(DML)       

    2024年02月07日
    浏览(11)
  • Python数据库模块sqlite3操作实例(非常实用)

    当使用Python进行SQLite数据库操作时, sqlite3 模块是一个非常常用和强大的工具。它提供了一系列函数和方法,用于创建、连接、查询和管理数据库。下面是一些常见的用法示例:   sqlite-utils 、 sqlitebiter 和其他类似的库可以提供更高级的功能,包括预编译语句的执行优化和数

    2024年02月13日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包