sqlite的使用
1.sqlite 简介
-
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
-
轻量化
-
无需安装 ,sqlite核心引擎不需依赖第三方,使用也不需要安装
-
单一文件 表、视图等都包含在同一个文件里
-
跨平台 可移植性高
-
开源 免费使用
2.sqlite数据类型
数据类型 | 描述 |
---|---|
NULL | 空值 |
INTEGER | 带符号的整型,具体取决有存入数字的范围大小。 |
REAL | 浮点数字,存储为8-byte IEEE浮点数。 |
TEXT | 字符串文本。 |
BLOB | 二进制对象。 |
3.sqlite常用语法
语法 | 名称|
-- | - | -
openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)|打开或创建数据库
insert(String table,String nullColumnHack,ContentValues values)|插入一条记录
delete(String table,String whereClause,String[] whereArgs)|删除一条记录
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)|查询一条记录
update(String table,ContentValues values,String whereClause,String[] whereArgs)|修改记录
execSQL(String sql)|执行一条SQL语句
close()|关闭数据库
4.具体语法实现
- 创建一个数据表
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
- 创建一个索引
CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);
- 插入一条记录
INSERT INTO tablename VALUES(?,?,?)
SELECT * FROM tablename;
- 更改一条记录
UPDATE tablename SET column1='newname';
SELECT * FROM Teachers;
- 根据字段删除一条记录
DELETE FROM tablename WHERE id='1';
SELECT * FROM tablename;
5.安卓代码的实现
- 定义数据表字段
public static final class Cols {
public static final String UUID = "uuid";
public static final String TITLE = "title";
public static final String DATE = "date";
public static final String SOLVED = "solved";
public static final String SUSPECT = "suspect";
}
- 创建数据表
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + CrimeTable.NAME + "(" +
" _id integer primary key autoincrement, " +
CrimeTable.Cols.UUID + ", " +
CrimeTable.Cols.TITLE + ", " +
CrimeTable.Cols.DATE + ", " +
CrimeTable.Cols.SOLVED + ", "+
CrimeTable.Cols.SUSPECT +
")"
);
}
- 写入数据库
public static ContentValues getContentValues(Crime crime){
ContentValues values=new ContentValues();
values.put(CrimeDbSchema.CrimeTable.Cols.UUID,crime.getId().toString());
values.put(CrimeDbSchema.CrimeTable.Cols.TITLE,crime.getTitle());
values.put(CrimeDbSchema.CrimeTable.Cols.DATE,crime.getDate().getTime());
values.put(CrimeDbSchema.CrimeTable.Cols.SOLVED,crime.isSolved()?1:0);
values.put(CrimeDbSchema.CrimeTable.Cols.SUSPECT,crime.getSuspect());
return values;
}
-插入数据
mDatabase.insert(CrimeDbSchema.CrimeTable.NAME,null,values);
-更新数据
mDatabase.update(CrimeDbSchema.CrimeTable.NAME,values,
CrimeDbSchema.CrimeTable.Cols.UUID + " = ?",new String[]{uuidString});
6.使用AndroidStudio 自带工具查看创建的数据表
-
在FileExplorer视图下 找到data文件夹 并打开 打不开data文件夹解决办法
-
然后找到对应的安卓项目文件名
-
找到databases文件夹 数据库在下面
-
选中我们创建的数据库,然后在右上角把他导出到本地
-
我们在可视化工具里可以看到创建的数据库
-
到这里 sqlite数据库就完成了