Sqltie数据库简单理解

本文介绍了SQLite数据库,包括其轻量级、跨平台、零配置和嵌入式的特点,以及数据存储类型。同时,回顾了SQL语句的基础操作,如创建、修改、查询和删除数据。接着,讨论了如何在Android中使用SQLiteOpenHelper类来操作数据库,并介绍了SQLiteDatabase的常用方法。最后,详细解释了query()方法的各个参数含义。
摘要由CSDN通过智能技术生成

第9天Sqltie数据库

SQLite数据库介绍

轻量级 只用一个动态的库, 是以单个文件的形式进行存取
跨平台 支持多个操作系统
零配置 无需安装, 直接使用
嵌入式 内嵌到手机中

存放的类型

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重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,Null,数据库的版本号重写父类的两个方法: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();
        //可读可写.磁盘满了,打开报错.
//        db = mySqlHelper.getWritableDatabase();
    }
}
//在Activity中执行命令,即可创建出来数据库
UserDao userDao = new UserDao(this);

操作数据中的值分下面两种:

(1)执行sql 语句
void execSQL(String sql,String[] bindArgs); 执行增删改
Cusor rawQuery(String sql,String[] selectionArgs); 执行查询
(2)执行方法 – 封装好的方法insert() 插入数据update() 修改数据delete() 删除数据query() 查询数据在UserDao中添加一个插入方法.

  public void insert(User user){
   
        //方法1,占位符的形式
        String sql = "insert into user(name,age,address) values(?,?,?)";
//        db.execSQL(sql,new Object[]{user.getName(),user.getAge(),user.getAddress()});
        //方法2,系统的insert方法
        ContentValues contentValues = new ContentValues();
        contentValues.put("name",user.getName());
        contentValues.put("age",user.getAge());
        contentValues.put("address",user.getAddress());
        db.insert("user",null,contentValues);
    }

在UserDao中添加一个update()方法.

// 注意 参数不在是user,而是要跟新的字段和字段值
 public void update(String age , int id){
   
        //方法1
        String sql = "update user set age = ? where _id=?";
//        db.execSQL(sql,new Object[]{user.getAge(),user.get_id()});
        //方式2
        ContentValues contentValues = new ContentValues();
        contentValues.put("age",age);
        db.update("user",contentValues,"_id = ?",new String[]{
   id+""}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值