SQLite 粗浅学习

SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。Android提供了创建和适用SQLite数据库的API。

SQLite的特点

1.轻量级
2.与Android集成,使用方便

SQLite数据类型

VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。
CHAR(n):长度固定为n的字串,n不能超过 254。
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 值为文本字符串
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改 变格式。
DATA :包含了 年份、月份、日期。
TIME: 包含了 小时、分钟、秒。

常用的方法
方法
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语句
    // 继承SQLiteOpenHelper
    public class WeatherDBHelper extends SQLiteOpenHelper {

        // super 传入上下文,DB Name , null, 版本号
        public WeatherDBHelper(Context context) {
            super(context, "weather.db", null, 1);
        }

        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            //在数据库创建的时候执行的代码
            sqLiteDatabase.execSQL("");
        }

        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
            // 此方法用于数据库升级
        }
    }
插入数据

insert(String table,String nullColumnHack,ContentValues values)方法,
参数1 表名称,
参数2 空列的默认值
参数3 ContentValues类型的一个封装了列名称和列值的Map;

    ContentValues cValue = new ContentValues();   
    //添加用户名   
    cValue.put("sname","xiaoming");   
    //添加密码   
    cValue.put("snumber","01005");   
    //调用insert()方法插入数据   
    db.insert("t_student",null,cValue); 
删除数据

delete(String table,String whereClause,String[] whereArgs)方法
参数1 表名称
参数2 删除条件
参数3 删除条件值的数组

    //删除条件   
    String whereClause = "id=?";   
    //删除条件参数   
    String[] whereArgs = {String.valueOf(2)};   
    //执行删除   
    db.delete("t_student",whereClause,whereArgs);   
修改数据

update(String table,ContentValues values,String whereClause, String[] whereArgs)方法
参数1 表名称
参数2 跟行列ContentValues类型的键值对Key-Value
参数3 更新条件(where字句)
参数4 更新条件数组

    ContentValues values = new ContentValues();   
    //在values中添加内容   
    values.put("snumber","101003");   
    //修改条件   
    String whereClause = "id=?";   
    //修改添加参数   
    String[] whereArgs={String.valuesOf(1)};   
    //修改   
    db.update("t_user",values,whereClause,whereArgs);   
查询数据

public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit);

各个参数的意义说明:
参数table:表名称
参数columns:列名称数组
参数selection:条件字句,相当于where
参数selectionArgs:条件字句,参数数组
参数groupBy:分组列
参数having:分组条件
参数orderBy:排序列
参数limit:分页查询限制
参数Cursor:返回值,相当于结果集ResultSet

    // 这是查询t_user中的所有数据
    // 需要注意的是可以通过 cursor.getColumnNames() 查询表中的所有数据列
    Cursor cursor = db.query ("t_user",null,null,null,null,null,null);

Cursor游标常用方法

方法名称方法描述
getCount()获得总的数据项数
isFirst()判断是否第一条记录
isLast()判断是否最后一条记录
moveToFirst()移动到第一条记录
moveToLast()移动到最后一条记录
move(int offset)移动到指定记录
moveToNext()移动到下一条记录
moveToPrevious()移动到上一条记录
getColumnIndexOrThrow(String columnName)根据列名称获得列索引
getInt(int columnIndex)获得指定列索引的int类型值
getString(int columnIndex)获得指定列缩影的String类型值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值