freebasic sqlite数据库 实例

合集下载

sqlite 数据库使用说明

sqlite 数据库使用说明

sqlite 数据库使用说明SQLite是一种嵌入式关系型数据库管理系统,它占用非常少的资源并具有轻量级的特性。

以下是对SQLite数据库的使用说明。

我们需要在系统中安装SQLite。

可以从SQLite官方网站上下载并安装适合您的操作系统版本。

一旦安装完成,我们可以使用命令行工具或使用SQLite提供的GUI工具(如SQLite Studio、DB Browser for SQLite等)来管理和操作数据库。

创建数据库:我们可以使用以下命令创建一个新的SQLite数据库文件:```sqlite3 mydatabase.db```这将创建名为mydatabase.db的SQLite数据库文件。

如果文件已经存在,它将打开该文件。

创建数据表:通过命令行工具,我们可以使用SQL语句来创建数据表。

例如,以下是创建一个名为students的数据表的示例:```CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);```在这个示例中,我们创建了一个具有id、name和age列的students表。

插入数据:要将数据插入到数据表中,可以使用INSERT语句。

例如,以下是一个将数据插入到students表的示例:```INSERT INTO students (name, age) VALUES ('John Doe', 25);```这个示例将一个名为John Doe且年龄为25的学生插入到students表中。

查询数据:要从数据表中检索数据,可以使用SELECT语句。

例如,以下是检索所有学生记录的示例:```SELECT * FROM students;```这将返回students表中的所有记录。

更新和删除数据:要更新数据表中的记录,可以使用UPDATE语句。

例如,以下是将id为1的学生的年龄更新为30的示例:```UPDATE students SET age = 30 WHERE id = 1;```要删除数据表中的记录,可以使用DELETE语句。

sqlite real例题

sqlite real例题

SQLite real例题SQLite 是一个轻量级的数据库系统,常用于移动应用和桌面应用中。

下面是一个使用SQLite 的简单例子,这是一个记录销售交易的数据库设计。

需求:我们需要记录销售的商品、数量、销售日期和销售员。

数据库设计:1.创建数据库:sqlCREATE DATABASE SalesDB;2.创建表:sqlCREATE TABLE Sales (id INTEGER PRIMARY KEY AUTOINCREMENT,product TEXT NOT NULL,quantity INTEGER NOT NULL,sale_date TEXT NOT NULL,sales_rep TEXT NOT NULL);3.插入数据:sqlINSERT INTO Sales (product, quantity, sale_date, sales_rep)VALUES ('iPhone 14', 10, '2023-10-23', 'John Doe');4.查询数据:•查询所有销售记录:sqlSELECT * FROM Sales;•查询特定销售员的所有销售记录:sqlSELECT * FROM Sales WHERE sales_rep = 'John Doe';•查询特定日期的所有销售记录:sqlSELECT * FROM Sales WHERE sale_date = '2023-10-23';5.更新数据:假设我们要增加一个销售记录的数量:sqlUPDATE Sales SET quantity = 5 WHERE product = 'iPhone 14';6.删除数据:假设我们要删除一个销售记录:sqlDELETE FROM Sales WHERE id = 1; -- 根据id来删除记录,这里假设要删除id为1的记录。

实验五 使用SQLite数据库存储数据

实验五 使用SQLite数据库存储数据

实验五使用SQLite数据库存储数据实验目的:1、掌握SQLiteDatabase类和SQLiteOpenHelper类定义的常用操作方法2、掌握sqlite 3工具的使用3、熟练编写SQL语句完成数据CRUD操作实验步骤:1、定义布局管理器main.xml,分别定义三个按钮,以表示插入、更新和输出操作。

2、定义SQLiteOpenHelper的子类MyDatabaseHelper.java,主要指明数据库名称、版本、表名称;重写onCreate()方法,创建数据表;重写onUpdate()方法负责表的删除,并在删除后重新创建新数据表。

3、定义Activity程序,以调用MyDatabaseHelper类完成表的创建。

在MyDatabaseHelper类中的回调方法onCreate()只有在使用了SQLiteOpenHelper类中的getReadableDatabase()方法之后才会自动执行。

注:本程序运行后将在DDMS中的/data/data/<package name>/databases下创建数据库。

数据库创建后可通过abd.exe命令直接采用命令行的方式进入到数据库冰进行操作。

4、数据库创建完毕后,可以继续编写程序,完成数据的增加、修改、删除等操作。

a)定义数据表的操作类MyTabOperate.java,加入数据库的更新操作(如insert()、update()和delete())。

当用户调用这三个方法时,必须使用getWriteableDatabase()方法取得SQLiteDatabase类可以更新的操作对象;b)继续编写第三步中的Activity程序。

为了简化程序,所有的数据不采用用户自己输入的形式,当增加新数据时,将采用一个static整型变量进行计数操作,以保证姓名不重复,以此类推更新和删除数据也需要指定固定编号的记录。

注:SQLite数据库使用UTF-8编码,记录中涉及中文保存后,如果直接利用sqlite 3查看,会显示乱码,命令行所采用的编码方式是GBK。

SQLite数据库(来自菜鸟教程)

SQLite数据库(来自菜鸟教程)

SQLite数据库(来⾃菜鸟教程)SQLite是什么?为什么要⽤SQLite?SQLite有什么特点?答:下⾯请听⼩猪娓娓道来:①SQLite是⼀个轻量级的关系型数据库,运算速度快,占⽤资源少,很适合在移动设备上使⽤,不仅⽀持标准SQL语法,还遵循ACID(数据库事务)原则,⽆需账号,使⽤起来⾮常⽅便!②前⾯我们学习了使⽤⽂件与SharedPreference来保存数据,但是在很多情况下,⽂件并不⼀定是有效的,如多线程并发访问是相关的;app要处理可能变化的复杂数据结构等等!⽐如银⾏的存钱与取钱!使⽤前两者就会显得很⽆⼒或者繁琐,数据库的出现可以解决这种问题,⽽Android⼜给我们提供了这样⼀个轻量级的SQLite,为何不⽤?③SQLite⽀持五种数据类型:NULL,INTEGER,REAL(浮点数),TEXT(字符串⽂本)和BLOB(⼆进制对象) 虽然只有五种,但是对于varchar,char等其他数据类型都是可以保存的;因为SQLite有个最⼤的特点: 你可以各种数据类型的数据保存到任何字段中⽽不⽤关⼼字段声明的数据类型是什么,⽐如你可以在Integer类型的字段中存放字符串,当然除了声明为主键INTEGER PRIMARY KEY 的字段只能够存储64位整数!另外, SQLite 在解析CREATE TABLE 语句时,会忽略 CREATE TABLE 语句中跟在字段名后⾯的数据类型信息如下⾯语句会忽略 name字段的类型信息: CREATE TABLE person (personid integer primary keyautoincrement, name varchar(20))⼩结下特点:SQlite通过⽂件来保存数据库,⼀个⽂件就是⼀个数据库,数据库中⼜包含多个表格,表格⾥⼜有多条记录,每个记录由多个字段构成,每个字段有对应的值,每个值我们可以指定类型,也可以不指定类型(主键除外)主要的类SQLiteOpenHelper:抽象类,我们通过继承该类,然后重写数据库创建以及更新的⽅法,我们还可以通过该类的对象获得数据库实例,或者关闭数据库!SQLiteDatabase:数据库访问类:我们可以通过该类的对象来对数据库做⼀些增删改查的操作Cursor:游标,有点类似于JDBC⾥的resultset,结果集!可以简单理解为指向数据库中某⼀个记录的指针!基本流程Step 1:⾃定义⼀个类继承SQLiteOpenHelper类Step 2:在该类的构造⽅法的super中设置好要创建的数据库名,版本号Step 3:重写onCreate( )⽅法创建表结构Step 4:重写onUpgrade( )⽅法定义版本号发⽣改变后执⾏的操作。

sqlite数据库 c语言

sqlite数据库 c语言

sqlite数据库 c语言SQLite 是一个 C 语言库,用于轻量级的磁盘文件数据库。

它的特点是数据库文件是单个磁盘文件,可以通过常规的读写文件系统来访问。

SQLite 提供了 SQL 语言接口,可以执行 SQL 查询和更新。

以下是一个简单的 C 语言示例,使用 SQLite 进行数据库操作:```cinclude <>include <>int main() {sqlite3 db;char err_msg = 0;int rc;char sql;rc = sqlite3_open("", &db);if (rc) {fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return(0);} else {fprintf(stderr, "成功打开数据库\n");}// 创建表格sql = "CREATE TABLE Friends (Id INT, Name TEXT);"rc = sqlite3_exec(db, sql, 0, 0, &err_msg);if (rc != SQLITE_OK) {fprintf(stderr, "SQL错误: %s\n", err_msg);sqlite3_free(err_msg);} else {fprintf(stdout, "表格创建成功\n");}// 插入数据sql = "INSERT INTO Friends (Id, Name) VALUES (1, 'Tom');" rc = sqlite3_exec(db, sql, 0, 0, &err_msg);if (rc != SQLITE_OK) {fprintf(stderr, "SQL错误: %s\n", err_msg);sqlite3_free(err_msg);} else {fprintf(stdout, "数据插入成功\n");}// 查询数据sql = "SELECT FROM Friends;"rc = sqlite3_exec(db, sql, callback, 0, &err_msg);if (rc != SQLITE_OK) {fprintf(stderr, "SQL错误: %s\n", err_msg);sqlite3_free(err_msg);} else {fprintf(stdout, "查询成功\n");}sqlite3_close(db);return 0;}```这个示例首先打开一个名为 "" 的数据库,然后创建一个名为 "Friends" 的表格,插入一行数据,然后查询所有的数据。

freebasic 编程

freebasic 编程

FreeBASIC编程简介FreeBASIC是一种开源、免费的编程语言,它是BASIC语言的一个现代化的扩展。

本文将介绍FreeBASIC编程的基本概念、语法结构和使用方法,以及一些常见的编程技巧和应用场景。

什么是FreeBASICFreeBASIC是一种结构化的编程语言,它基于BASIC语言,并添加了许多现代化的特性和功能。

它可以在多个操作系统上运行,包括Windows、Linux和Mac OS X。

FreeBASIC具有简单易学的语法,适合初学者入门,同时也提供了丰富的功能和灵活性,可以满足高级程序员的需求。

FreeBASIC的语法结构FreeBASIC的语法结构类似于其他结构化的编程语言,例如C和Pascal。

它包括变量声明、条件语句、循环语句、函数和子程序等基本元素。

下面是一些常用的语法结构示例:变量声明在FreeBASIC中,可以使用关键字Dim来声明变量。

例如:Dim age As Integer这里声明了一个整型变量age。

条件语句FreeBASIC提供了If...Then...Else语句用于条件判断。

例如:If age >= 18 ThenPrint "You are an adult."ElsePrint "You are a teenager."End If这里根据age的值判断是否成年,并输出相应的提示信息。

循环语句FreeBASIC提供了多种循环语句,例如For...Next和Do...Loop。

例如:For i = 1 To 10Print iNext i这里使用For...Next循环输出1到10的数字。

函数和子程序FreeBASIC支持函数和子程序的定义和调用。

例如:Function Add(a As Integer, b As Integer) As IntegerReturn a + bEnd FunctionPrint Add(3, 4)这里定义了一个加法函数Add,并在主程序中调用并输出结果。

玩转SQLite系列SQLite数据库应用案例实现历史搜索记录

玩转SQLite系列SQLite数据库应用案例实现历史搜索记录玩转SQLite系列SQLite数据库应用案例实现历史搜索记录一.编写一个历史搜索记录实例对象package cn.bluemobi.dylan.sqlite;import java.util.Date;/*** 搜索记录的操作对象* Created by Administrator on 2016-11-20.*/public class History {/*** id 主键,自增*/private int id;/*** 搜索的内容*/private String content;/*** 搜索的时间*/private String time;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}}二.编写一个操作数据库的管理工具类package cn.bluemobi.dylan.sqlite;import android.content.ContentValues; import android.database.Cursor;import android.database.sqlite.SQLiteDatabase; import android.os.Environment;import java.io.File;import java.util.ArrayList;import java.util.List;/*** 数据库操作管理类* Created by Administrator on 2016-11-19.*/public class DBManager {private static volatile DBManager dbManager; private SQLiteDatabase sqLiteDatabase; private DBManager() {openDataBase();createTable();}public static DBManager getDBManager() {if (dbManager == null) {synchronized (DBManager.class) {if (dbManager == null) {dbManager = new DBManager();}}}return dbManager;}/*** 数据库名称*/private final String DA TABASE_NAME = "info.db"; /*** 表名*/private final String TABLE_NAME = "history";/*** 表格所包含的字段*/private class HistoryDbColumn {/*** 字段一id*/public static final String ID = "id";/*** 字段二内容*/public static final String CONTENT = "name";/*** 字段三时间*/public static final String TIME = "time";}/*** 1.创建或打开数据库连接**/private void openDataBase() {File dataBaseFile = new File(Environment.getExternalStorageDirectory() + "/sqlite", DA TABASE_NAME);if (!dataBaseFile.getParentFile().exists()) {dataBaseFile.mkdirs();}sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase(dataBaseFile, null);}/***** 2.创建表*/private void createTable() {String sql = "CREATE TABLE " +"IF NOT EXISTS " +TABLE_NAME + "(" +HistoryDbColumn.ID + " Integer PRIMARY KEY AUTOINCREMENT," +HistoryDbColumn.CONTENT + " varchar," +HistoryDbColumn.TIME + " datetime)";sqLiteDatabase.execSQL(sql);}/*** 插入一条数据** @param history* @return*/public long insert(History history) {ContentV alues contentValues = new ContentValues();contentValues.put(HistoryDbColumn.CONTENT,history.getContent());contentValues.put(HistoryDbColumn.TIME,history.getTime());long num = sqLiteDatabase.insert(TABLE_NAME, null, contentValues);return num;}/*** 根据id删除一条数据** @param id* @return*/public long delete(int id) {long num = sqLiteDatabase.delete(TABLE_NAME, HistoryDbColumn.ID + "=?", new String[]{String.valueOf(id)});return num;}/*** 根据id修改一条数据** @param id* @return*/public long update(History history, int id) {ContentV alues contentValues = new ContentValues();contentValues.put(HistoryDbColumn.CONTENT,history.getContent());contentValues.put(HistoryDbColumn.TIME,history.getTime());long num = sqLiteDatabase.update(TABLE_NAME, contentValues, HistoryDbColumn.ID + "=?", new String[]{String.valueOf(id)});return num;}/*** 根据id查询一条数据** @param id* @return*/public History qurey(int id) {History history = null;Cursor cursor = sqLiteDatabase.query(TABLE_NAME, null, HistoryDbColumn.ID + "=?", new String[]{String.valueOf(id)}, null, null, null);if (cursor != null) {if (cursor.moveToNext()) {history = new History();history.setId(cursor.getInt(cursor.getColumnIndex(HistoryDb Column.ID)));history.setContent(cursor.getString(cursor.getColumnIndex(Hist oryDbColumn.CONTENT)));history.setTime(cursor.getString(cursor.getColumnIndex(Hist oryDbColumn.TIME)));}}return history;}/*** 根据id查询一条数据* 倒序** @return*/public List queryAll() {List historys = new ArrayList<>();Cursor cursor = sqLiteDatabase.query(TABLE_NAME, null, null, null, null, null, HistoryDbColumn.TIME + " desc");if (cursor != null) {while (cursor.moveToNext()) {History history = new History();history.setId(cursor.getInt(cursor.getColumnIndex(HistoryDb Column.ID)));history.setContent(cursor.getString(cursor.getColumnIndex( HistoryDbColumn.CONTENT)));history.setTime(cursor.getString(cursor.getColumnIndex(Hist oryDbColumn.TIME)));historys.add(history);}}return historys;}/*** 根据内容查询一条数据** @return*/public History queryByContent(String content) {History history = null;Cursor cursor = sqLiteDatabase.query(TABLE_NAME, null, HistoryDbColumn.CONTENT + "=?", new String[]{content}, null, null, null);if (cursor != null) {if (cursor.moveToNext()) {history = new History();history.setId(cursor.getInt(cursor.getColumnIndex(HistoryDb Column.ID)));history.setContent(cursor.getString(cursor.getColumnIndex(Hist oryDbColumn.CONTENT)));history.setTime(cursor.getString(cursor.getColumnIndex(Hist oryDbColumn.TIME)));}}return history;}}三.搜索对话框的布局文件<="" bdsfid="276" p="" xmlns:android="/doc/4d5ff8e1710abb68a9827 1fe910ef12d2af9a92a.html /apk/res/android">android:layout_width="match_parent"android:layout_height="match_parent"android:minHeight="250dp"android:orientation="vertical"><cn.bluemobi.dylan.sqlite.searchview< bdsfid="282" p=""></cn.bluemobi.dylan.sqlite.searchview<>android:id="@+id/sv"android:padding="10dp"android:background="@color/colorPrimaryDark"android:layout_width="match_parent"android:layout_height="wrap_content"><listview< bdsfid="290" p=""></listview<>android:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"><textview< bdsfid="295" p=""></textview<>android:id="@+id/tv"android:layout_gravity="center"android:gravity="center"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="match_parent"android:text="暂无搜索记录" />四.编写功能代码package cn.bluemobi.dylan.sqlite;import android.app.Dialog;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.Gravity;import android.view.View;import android.view.WindowManager;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.Date;import java.util.List;import/doc/4d5ff8e1710abb68a98271fe910ef12d2af9 a92a.html monAdapter;import/doc/4d5ff8e1710abb68a98271fe910ef12d2af9 a92a.html monViewHolder;/*** SQLite应用案例实现搜索记录* Created by Administrator on 2016-11-20.*/public class SearchActivity extends AppCompatActivity implements View.OnClickListener { private EditText et;private ListView lv;private TextView tv;private Dialog dialog;private SearchView sv;private Button bt;private List histories;private CommonAdapter commonAdapter;private final int MAX_ITME = 5;private void assignViews() {et = (EditText) findViewById(R.id.et);}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);getSupportActionBar().setTitle("SQLite应用案例实现搜索记录");setContentView(/doc/4d5ff8e1710abb68a9 8271fe910ef12d2af9a92a.html yout.ac_search);assignViews();intiDialog();addListener();initData();}/*** 添加按钮监听*/private void addListener() {et.setOnClickListener(this);}/**** 初始化搜索对话框*/private void intiDialog() {dialog = new Dialog(this, R.style.Dialog_FullScreen);dialog.setContentView(/doc/4d5ff8e1710a bb68a98271fe910ef12d2af9a92a.html yout.dialog_search);dialog.getWindow().setGravity(Gravity.TOP);dialog.setCanceledOnTouchOutside(true);dialog.setCancelable(true);/doc/4d5ff8e1710abb68a98271fe910ef12d 2af9a92a.html youtParams lp = dialog.getWindow().getAttributes();lp.width = /doc/4d5ff8e1710abb68a98271fe910ef12d2af9 a92a.html youtParams.MATCH_PARENT;lp.height = /doc/4d5ff8e1710abb68a98271fe910ef12d2af9 a92a.html youtParams.WRAP_CONTENT;dialog.getWindow()/doc/4d5ff8e1710abb6 8a98271fe910ef12d2af9a92a.html ttributes(lp);lv = (ListView) dialog.findViewById(R.id.lv);tv = (TextView) dialog.findViewById(/doc/4d5ff8e1710abb68a9 8271fe910ef12d2af9a92a.html );sv = (SearchView) dialog.findViewById(R.id.sv);bt = (Button) dialog.findViewById(R.id.bt);bt.setOnClickListener(this);lv.setEmptyView(tv);}/*** 初始化数据*/private void initData() {commonAdapter = new CommonAdapter(this, histories,/doc/4d5ff8e1710abb68a98271fe910ef12d2af9 a92a.html yout.item_for_search) {@Overrideprotected void convertView(CommonViewHolder commonViewHolder, History history) {TextView tv = commonViewHolder.get(R.id.textView);tv.setText(history.getContent());}};lv.setAdapter(commonAdapter);notifyAdapter();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.et:if (!dialog.isShowing()) {dialog.show();}break;case R.id.bt:addHistory();break;}}/*** 点击搜索按钮新增一条记录*/private void addHistory() {String inputText = sv.getInputText();if (inputText.isEmpty()) {Toast.makeText(this, "请输入内容进行搜索", Toast.LENGTH_SHORT).show();return;}/**1.先判断数据库当中有没有这条历史记录,如果有则修改其搜索的时间即可*/ History history = DBManager.getDBManager().queryByContent(inputT ext);if (history != null) {history.setTime(new Date().toString());DBManager.getDBManager().update(history, history.getId());} else {/**2.判断搜索记录是否达到限值,达到极限则删除一条数据**/if (histories != null && histories.size() == MAX_ITME) {DBManager.getDBManager().delete(histories.get(histories.si ze() - 1).getId());}/**3.插入一条数据**/history = new History();history.setContent(sv.getInputText());history.setTime(new Date().toString());long num = DBManager.getDBManager().insert(history);if (num != -1) {Log.d(Contacts.TAG, "插入成功");} else {Log.d(Contacts.TAG, "插入失败");}}notifyAdapter();}/*** 更新数据库当中的数据*/private void notifyAdapter() {histories = DBManager.getDBManager().queryAll(); commonAdapter.notifyDataSetChanged(histories); }}。

SQLite数据库利用详解程序

1.SQLite数据库的优势:1.1 轻量级SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,利用SQLite一样只需要带上它的一个动态库。

以版本为例,Windows下487KB、Linux下347KB。

1.2 绿色软件它的核心引擎本身不依托第三方的软件1.3 单一文件确实是数据库中所有的信息(比如表、视图、触发器、等)都包括在一个文件内。

那个文件能够copy到其它目录或其它机械上,也照用不误。

CSV也是单一文件格式。

它本身确实是用来表示二维的数据信息的。

一个CSV文件能够明白得为数据库的一张表。

CSV的缺点要紧在于:不便于存储非文本的数据信息(比如BLOB类型的信息);若是需要同时存储多张表的信息,就需要对应有多个CSV文件(文件一多,就嫌麻烦)。

1.4 跨平台/可移植性除主流操作系统,SQLite还支持了很多其他的操作系统。

如对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。

Access数据库最要紧的缺点确实是不能跨平台。

另外还有几个小缺点:文件大小有限制(2GB)、不支持内存数据库。

1.5 内存数据库(in-memory database)现在内存愈来愈廉价,很多一般PC都开始以GB为单位来衡量内存(效劳器就更甭提了)。

这时,SQLite的内存数据库特性就越发显得好用。

SQLite的API不区分当前操作的数据库是在内存仍是在文件(关于存储介质是透明的)。

因此若是你感觉磁盘I/O有可能成为瓶颈的话,能够考虑切换为内存方式。

切换的时候,操作SQLite的代码大体不用大改,只要在开始时把文件Load到内存,终止时把内存的数据库Dump回文件就OK了。

1.6 编程语言接口由于SQLite本身是C写的,它自带的API也是C接口的。

2.SQLite数据库的缺点:2.1并发访问的锁机制SQLite在并发(包括多进程和多线程)读写方面的性能不太理想。

利用 SQLiteDatabase 进行数据库操作和管理(高级)

利用 SQLiteDatabase 进行数据库操作和管理(高级)利用 SQLiteDatabase 进行数据库操作和管理(高级)数据库是在开发应用程序中常用的一种数据存储方式。

利用数据库,我们可以有效地组织、存储和检索数据。

在Android开发中,SQLiteDatabase是一个内置的数据库工具,提供了许多功能和方法来进行数据库的操作和管理。

本文将深入探讨如何使用SQLiteDatabase进行高级数据库操作和管理。

一、SQLiteOpenHelper类的使用SQLiteOpenHelper是一个帮助创建和管理数据库的类。

它提供了如下几个方法:1. onCreate(SQLiteDatabase db):在首次创建数据库时调用,用于执行创建表和初始化数据的操作。

2. onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion):在数据库版本更新时调用,用于执行表结构的修改或数据的迁移。

二、打开、创建和升级数据库在使用SQLiteDatabase进行数据库操作之前,需要先打开或创建数据库。

可以通过以下步骤完成:1. 创建一个继承自SQLiteOpenHelper的子类,重写onCreate()和onUpgrade()方法。

2. 在子类的构造方法中传入数据库名称和版本号,通过super调用父类的构造方法。

3. 调用getWritableDatabase()或getReadableDatabase()方法获取一个SQLiteDatabase对象,用于执行数据库操作。

三、数据的增删改查操作1. 插入数据:可以使用SQLiteDatabase的insert()方法插入数据,示例代码如下:```javaContentValues values = new ContentValues();values.put("name", "张三");values.put("age", 20);db.insert("student", null, values);```2. 删除数据:可以使用SQLiteDatabase的delete()方法删除数据,示例代码如下:```javaString whereClause = "name=?";String[] whereArgs = new String[]{"张三"};db.delete("student", whereClause, whereArgs);```3. 修改数据:可以使用SQLiteDatabase的update()方法修改数据,示例代码如下:```javaContentValues values = new ContentValues();values.put("age", 21);String whereClause = "name=?";String[] whereArgs = new String[]{"张三"};db.update("student", values, whereClause, whereArgs);```4. 查询数据:可以使用SQLiteDatabase的query()方法查询数据,示例代码如下:```javaString[] columns = {"name", "age"};String selection = "age>20";String[] selectionArgs = null;String groupBy = null;String having = null;String orderBy = null;Cursor cursor = db.query("student", columns, selection, selectionArgs, groupBy, having, orderBy);if (cursor != null && cursor.moveToFirst()) {do {String name = cursor.getString(cursor.getColumnIndex("name"));int age = cursor.getInt(cursor.getColumnIndex("age"));// 处理查询结果} while (cursor.moveToNext());}```四、事务处理在进行大量数据库操作时,为了保证数据的完整性和一致性,可以使用事务进行操作。

sqlite案例小项目

sqlite案例小项目SQLite是一种轻量级的数据库管理系统,广泛应用于移动设备、嵌入式系统和小型应用程序。

它具有简单易用、快速高效、可嵌入等特点,适合于处理小型数据库。

下面是一些基于SQLite的案例小项目。

1. 学生管理系统该项目可以实现学生信息的管理,包括学生的基本信息(姓名、学号、性别、年龄等)和成绩信息(科目、成绩等)。

通过SQLite数据库存储学生信息,可以实现学生信息的增删改查操作。

2. 电子书管理系统该项目可以实现对电子书的管理,包括电子书的名称、作者、出版日期等信息。

通过SQLite数据库存储电子书信息,可以实现电子书的添加、删除、修改和查询功能。

3. 联系人管理系统该项目可以实现对联系人的管理,包括联系人的姓名、电话号码、邮箱等信息。

通过SQLite数据库存储联系人信息,可以实现联系人的增删改查操作。

4. 任务管理系统该项目可以实现对任务的管理,包括任务的名称、描述、截止日期等信息。

通过SQLite数据库存储任务信息,可以实现任务的添加、删除、修改和查询功能。

5. 记账管理系统该项目可以实现对个人的收入和支出的管理,包括收入和支出的类型、金额、日期等信息。

通过SQLite数据库存储记账信息,可以实现记账信息的增删改查操作。

6. 考试成绩管理系统该项目可以实现对考试成绩的管理,包括学生的姓名、科目、成绩等信息。

通过SQLite数据库存储考试成绩信息,可以实现考试成绩的添加、删除、修改和查询功能。

7. 图书馆管理系统该项目可以实现对图书的管理,包括图书的名称、作者、出版日期等信息。

通过SQLite数据库存储图书信息,可以实现图书的添加、删除、修改和查询功能。

8. 餐厅订单管理系统该项目可以实现对餐厅订单的管理,包括订单的编号、菜品、数量、价格等信息。

通过SQLite数据库存储订单信息,可以实现订单的添加、删除、修改和查询功能。

9. 个人日程管理系统该项目可以实现对个人日程的管理,包括日程的日期、时间、内容等信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FreeBasic 是一种免费的、开源的编程语言,它支持多种数据库,包括SQLite。

下面是一个使用FreeBasic 连接SQLite 数据库的示例代码:
freebasic复制代码
#include <sqlite3.h>
DECLARE_DB_HANDLE(db_handle)
sub main()
db_init()
db_open(db_handle, "test.db", sqlite3_OPEN_READWRITE)
IF NOT db_handle IS NOT DB_OK THEN
print "Failed to open database: " + db_error(db_handle)
db_close(db_handle)
RETURN
END IF
-- 执行 SQL 查询
db_exec(db_handle, "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)")
db_exec(db_handle,"INSERTINTOusers(name,email)VALUES('JohnDoe','********************')")
-- 获取查询结果
Dim stmt As sqlite3_stmt
db_prepare(db_handle, stmt, "SELECT * FROM users")
Dim row As sqlite3_stmt, col As Integer
WHILE sqlite3_step(stmt) = sqlite3_ROW DO
row = stmt
FOR col = 0 TO sqlite3_column_count(stmt) - 1 DO
print sqlite3_column_text(row, col) + " | "
NEXT col
print ""
END WHILE
sqlite3_finalize(stmt)
-- 关闭数据库连接
db_close(db_handle)
END sub
在这个示例中,我们首先使用db_init()初始化SQLite 库,然后使用db_open()打开一个名为test.db的SQLite 数据库。

如果打开失败,则输出错误信息并退出程序。

接下来,我们使用db_exec()执行SQL 查询语句来创建一个名为users的表,并向其中插入一条记录。

然后,我们使用db_prepare()和sqlite3_step()函数来执行一个查询语句,并使用sqlite3_column_text()函数获取查询结果中的文本数据。

最后,我们使用db_close()关闭数据库连接。

相关文档
最新文档