SQLite详解0

简介: 1.SQLite简介 SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备(如手机、PDA、MP3)提供的一种高效的数据库引擎。它有如下特征:轻量级、独立性、隔离性、跨平台、多语言接口、安全性。

1.SQLite简介
SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备(如手机、PDA、MP3)提供的一种高效的数据库引擎。它有如下特征:轻量级、独立性、隔离性、跨平台、多语言接口、安全性。SQLite数据库没有服务器进程。所有的内容包含在同一个单文件中。该文件是跨平台的,可以自由复制。基于其自身的先天优势,SQLite在嵌入式领域得到广泛应用。


2.SQLite数据类型
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:
NULL: 这个值为空值
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改 变格式.


3.sqlite命令行工具的使用

打开或创建数据库
$sqlite3 test.db3
这样就能打开或者创建一个新的数据库文件
$sqlite3 test.db3
SQLite version 3.6.23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

创建表
sqlite>create table Artists (
--->ArtistID INTEGER PRIMARY KEY,
--->ArtistName TEXT);
sqlite 对SQL语句大小写不敏感,所以大写小写随便
sqlite>create table CDs (
--->CDID INTEGER PRIMARY KEY,
--->ArtistID INTEGER NOT NULL,
--->Title TEXT NOT NULL,
--->Date TEXT);

表查询
来看看现在这两张表里都有那些内容,执行
sqlite>select * from Artists;


4.Android中使用SQLite

public class DBHelper extends SQLiteOpenHelper {
	
	//数据库的属性信息
	private final static String DATABASE_NAME = "student_db";
	private final static int DATABASE_VERSION = 1;
	private final static String TABLE_NAME = "T_student";
	//数据库表的字段 默认会有一个_id字段
	private final static String FIELE_ID = "_id";
	private final static String FIELD_NAME = "name";
	
	//默认的构造方法 用于创建数据库
	public DBHelper(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}
	
	//数据库的语句在拼接时要注意空格!
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		String sql="CREATE TABLE "+TABLE_NAME+"("+
		FIELE_ID+" integer primarykey autoincrement,"+
		FIELD_NAME+" text);";
		db.execSQL(sql);
	}
	
	//数据库版本更新时调用
	@Override
	public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
		// TODO Auto-generated method stub
		String sql="DROP TABLE IF EXISTS "+TABLE_NAME;
		db.execSQL(sql);
		onCreate(db);
	}
	
	//查询
	public Cursor select() {
		SQLiteDatabase db=this.getReadableDatabase();
		Cursor cursor=db.query(TABLE_NAME,null,null,null,null,null,"_id desc");
		return cursor;
	}
	//新增
	//返回插入行的id 错误返回-1
	public long insert(String name) {
		SQLiteDatabase db=this.getWritableDatabase();
		ContentValues cv=new ContentValues();
		cv.put(FIELD_NAME, name);
		long row=db.insert(TABLE_NAME, null, cv);
		return row;
	}
	//删除
	//delete(TABLE_NAME, where, whereValue) where:可选的WHERE语句 whereValue取代where中的?占位符
	//返回 若传入正确的where语句 则被删除的行数将被返回 若传入null 返回0 若要删除所有行并返回删除的行数 则需要在where语句的地方传入字符串1
	public void delete(int id){
		SQLiteDatabase db=this.getWritableDatabase();
		String where=FIELE_ID+"=?";
		String[] whereValue={Integer.toString(id)};
		db.delete(TABLE_NAME, where, whereValue);
	}
	//更新
	public void update(int id,String name){
		SQLiteDatabase db=this.getWritableDatabase();
		String where=FIELD_NAME+"=?";
		String[] whereValue={Integer.toString(id)};
		ContentValues cv=new ContentValues();
		cv.put(FIELD_NAME, name);
		db.update(TABLE_NAME, cv, where, whereValue);
	}
}

目录
相关文章
|
24天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
173 15
|
2月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
51 8
|
3月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
50 4
|
3月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
77 3
|
3月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
4月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
104 2
|
4月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
241 1
|
3月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
58 0
|
5月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
669 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
5月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
219 3
C#winform中使用SQLite数据库