Sqltie数据库
SQLite数据库介绍
1.Android 系统中集成的轻量级的数据库
2.特点:
轻量级 只用一个动态的库, 是以单个文件的形式进行存取
跨平台 支持多个操作系统
零配置 无需安装, 直接使用
嵌入式 内嵌到手机中
3.在程序的内部可以通过数据库的名称访问, 其他应用不能访问
4.路径: data/data/应用程序包名/database/ ****.db
5.存放的类型:
NULL 空值
INTEGER 整型(不用int)
VARCHAR 可变长度的字符数据
TEXT 文本字符串
BOOLEAN 布尔
DATE
SQL语句复习
1.创建表:
create table student(_id integer primary key autoincrement,name varchar(30),age integer,address varchar(30));
2.添加数据:
insert into student values(null,‘冯’,17,‘北京市海淀区’);
3.修改数据:
update student set age=18,address=‘河北省北京市’ where name=‘sgf’
4 查询数据:
select * from student where 字段 = ‘值’
模糊查询: select * from 表名 where name like ‘%小%’
select * from student order by age desc 降序查询
sum(列名) 求和
max(列名) 最大值
min(列名) 最小值
avg(列名) 求平均值
count(列名) 统计记录数
5.删除数据:
delete from student where id=1;
数据库使用及两个核心类
一, SQLiteOpenHelper
数据库的帮助类, “用于数据库的创建和版本更新”
使用方式:
(1)定义一个类, 继承SQLiteOpenHelper
(2)重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,Null,数据库的版本号
(3)重写父类的两个方法:
onCreate(): onUpgrade()
public class MySqlHelper extends SQLiteOpenHelper {
/**
* 构造
* @param context 上下文
* @param name 数据库名称
* @param factory 创建数据的工厂对象
* @param version 数据版本号
*/
public MySqlHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
/**
* 注意:onCreate方法只会执行一次,如果想要修改表的字段,
* 修改oncreate方法的话是不行的,需要删除之前生成的数据库
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table User(_id integer primary key autoincrement,Name varchar(20))");
}
/**
* 更新数据 --- 如果数据库的 版本号发生变化, 执行该方法 --- 执行多次
* @param db
* @param oldVersion 老版本号
* @param newVersion 新版本号
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
二. SQLiteDatabase
用于数据库的操作类, “操作数据库: 执行sql语句/增/删/改/查”
通过SQLiteOpenHelper获取SQLiteDatabase对象
package com.example.day009.util;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.example.day009.MySqlHelper;
/**
-
封装增删改成的方法
*/
public class UserDao {
private SQLiteDatabase db;
//通过构造创建一个db;
public UserDao(Context context){
MySqlHelper mySqlHelper = new MySqlHelper(context,“user.db”,null,1);
//可读可写.磁盘满了在尝试打开.(推荐使用)
db = mySqlHelper.getReadableDatabase();