SQLite 使用
1、SQLite的SQL语句
SQLite引擎和一般的client/service数据库管理系统不同,没有一个应用程序与之通信的独立进程。SQLite库连接到程序中,成为了程序的一部分,应用程序可以直接使用api访问SQLite的功能可以减少延迟(没有进程间通信)
SQL语句
1.创建数据库
sqlite3 name.db
2.创建表
create [temp | temporary] table 表名 (字段1 类型 约束条件 , ... , 字段n 类型);
SQLite数据类型有 Null , Integer ,REAL(浮点数) , TEXT(字符) , BLOB 约束条件有 NOT NULL(非空) , UNIUE(唯一),PRIMARY KEY(主键),FOREIGN KEY(外键),CHECH(条件检查),DEFAULT(默认值)
create table stuents (
id integer primary key autoincrement, //主键 自动增长
name vchar(20) check(length(name) > 3), //条件检查名字字符大于3
tel_no vchar(11) not null unique, //不为空 ,电话号唯一
cls_id integer not null, // 班级号不为空
);
3.插入数据
insert into 表名 (字段列表) values(与字段列表对应的值)
4.查询数据
select [distinct] columns from table //distinct 去重
where predictatein //条件限制
group by columns
having predicate
order by columns //排序
limit count,offset; //数量限定
select * from book limit 1 offset 2; //得到ID为3的数据
select * from book where name like "l%" //找到名字以l开头的
5.更新数据
update table set update_list where predicate;
update book set name='bean' where name='cat'; //名字为cat的数据改为bean
6.删除数据
delete from table where predicate
Linux下使用sqlite实践
chenqain@chenqain-PC:/home/sqlite/test$ sqlite3 book.db
SQLite version 3.21.0 2017-08-03 15:50:10
Enter ".help" for usage hints.
sqlite> CREATE TABLE book (name text , age integer);
sqlite> insert into book values('leo',18);
sqlite> insert into book values('cat',18);
sqlite> select * from book where name='leo';
leo|18
sqlite>
2.SQLite的使用
2.1创建数据库
Android提供了SQLiteOpenHelper,我们可以很方便的使用它来进行数据库的创建和升级
public class SQLDataBaseHelper extends SQLiteOpenHelper {
private static final String TAG = "SQLDataBaseHelper";
//建表语句
public static final String CRATE_BOOK = "create table book(" +
"id integer primary key autoincrement," +
" author text," +
"price real," +
"pages integer," +
"name text)";
//表的名字
public static final String NAME = "Book.db";
//@parm name 数据库名字 @parm version 版本号 @parm factory 设为null
public SQLDataBaseHelper(Context context, String name, String factory, int version) {
super(context, name, factory, version);
}
//当数据库不存在时执行
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CRATE_BOOK) ; //创建数据库
Log.e(TAG, "onCreate: " + "create table ok" );
}
//在升级时使用,只有改变版本号就会执行,在里面先drop掉前面的表然后创建新的表
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
2.2.CURD
SQLDataBaseHelper dbHelper = new SQLDataBaseHelper(this , "Book.db" , null , 1);
//使用下面的方法当发现没有Book.db就会执行SQLDataBaseHelper的onCreate()方法创建出数据库
SQLiteDatabase db = dbHelper.getWritableDatabase();
Create
/**
*insert(String table, String nullColumnHack, ContentValues values)
* @parm table 表名
* @parm values 数据的一个包装体
**/
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name","a dog name bean");
values.put("author","leo");
values.put("price",12);
values.put("pages",345);
db.insert("Book",null,values);
Update
/**
*update(String table, ContentValues values, String whereClause, String[] whereArgs
* @parm table 表名 @value 要更新的值
* @parm whereClause 列名约束条件表达式 @parm whereArgs 具体约束值
*/
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("price",18);
db.update("Book",values1,"author = ?",new String[]{"leo"});
Retrieve
SQLiteDatabase db3 = dbHelper.getWritableDatabase();
//查询了所有数据
Cursor cursor = db3.query("Book",null,null,null,null,null,null);
Delete
SQLiteDatabase db2 = dbHelper.getWritableDatabase();
db2.delete("Book","id = ?",new String[]{"1"});
本文介绍SQLite的基本操作,包括数据库和表的创建、数据的增删改查等,并通过实例演示如何在Android环境中使用SQLiteOpenHelper进行数据库管理和操作。
-----SQLite使用&spm=1001.2101.3001.5002&articleId=77200558&d=1&t=3&u=8acec2f9d3f34146b5d6f246e771af40)
1738

被折叠的 条评论
为什么被折叠?



