Sqltie数据库

一.Sqltie数据库介绍

1.Android 系统中集成的轻量级的数据库
2.特点:

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

3.在程序的内部可以通过数据库的名称访问, 其他应用不能访问
4.路径: data/data/应用程序包名/database/ ****.db
5.存放的类型:

NULL 空值
INTEGER 整型(不用int)
VARCHAR 可变长度的字符数据
TEXT 文本字符串
BOOLEAN 布尔
DATE

二.Sql基本语句

1.分类

(1)数据定义语言(Data Definition Language,简称为DDL):create/drop/alter
(2)数据操作语言(Data Manipulation Language,简称为DML):delete/insert/update/select
(3)数据控制语言(Data Control Language,简称为DCL):grant/revoke

2.表的操作

1.增:create table student( id int , name varchar(10), sex varchar(10), age int, teacher_id int , room_id int
);
2.删:drop table 表名;
3.改:alter (1)修改表名:alter table 旧表名 rename to 新表名;(to可以省略)
(2)增加字段:alter table 表名 add column 字段名 数据类型; 放首位:alter table 表名 add column 字段名 数据类型 first; 放到某个字段的后面:alter table 表名 add column 字段名 数据类型 after 字段名;
(3)删除字段:alter table 表名 drop column字段名;
(4)修改字段:alter table 表名 change 旧字段名 新字段名 新数据类型;
放首位:alter table 表名 change 旧字段名 新字段名 新数据类型 first;
放到某个字段的后面:alter table 表名 change 旧字段名 新字段名 新数据类型 after 字段名;
备注:如果只修改字段的数据类型可以用modify:alter table 表名 字段名 数据类型;
(5)查看字段:desc 表名;
4.查:show tables;

3.数据操作

1.增:insert
2.删:delete
3.改:update
4.查:select

三.数据库的使用

1.SQLiteOpenHelper

数据库的帮助类, “用于数据库的创建和版本更新”
使用方式:

(1)定义一个类, 继承SQLiteOpenHelper
(2)重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,Null,数据库的版本号
(3)重写父类的两个方法: onCreate(): onUpgrade()

public class MySqlLiteHelper extends SQLiteOpenHelper {


    public MySqlLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table student (id integer primary key autoincrement,name value(20))");
        db.execSQL("insert into student values(null,'wuwukai')");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

Activity代码

public class MainActivity extends AppCompatActivity {
    private Button but;
    private SQLiteDatabase readableDatabase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initViews();
    }

    private void initViews() {
        MySqlLiteHelper user = new MySqlLiteHelper(this, "user.db", null, 1);
        readableDatabase = user.getReadableDatabase();

        but = (Button) findViewById(R.id.but);
        final String sqlStr = "select * from student";
        but.setOnClickListener(new View.OnClickListener() {//查询
            @Override
            public void onClick(View v) {
                Cursor cursor = readableDatabase.rawQuery(sqlStr, new String[]{});
                //判断数据不为空
                if (cursor != null) {

                    //移动游标
                  while (cursor.moveToNext()){
                      String name = cursor.getString(cursor.getColumnIndex("name"));
                      Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
                  }
                }
            }
        });
    }
}

2.增加数据

insert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String sqlStr = "insert into student values(null,'PDD')";
                //原生
//                readableDatabase.execSQL(sqlStr);
                //系统提供
                ContentValues contentValues = new ContentValues();
                contentValues.put("name", "white");
                readableDatabase.insert("student", null, contentValues);
                Toast.makeText(MainActivity.this, "添加完成", Toast.LENGTH_SHORT).show();
            }
        });

3.删除数据

 del.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String sqlStr = "delete from student where id = 1";
                //原生
//                readableDatabase.execSQL(sqlStr);
                readableDatabase.delete("student", "id = ?", new String[]{"2"});
                Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();

            }
        });

4.查找数据

 but.setOnClickListener(new View.OnClickListener() {//查询
            @Override
            public void onClick(View v) {
                String sqlStr = "select * from student";
//                Cursor cursor = readableDatabase.rawQuery(sqlStr, new String[]{});
//                //判断数据不为空
//                if (cursor != null) {
//
//                    //移动游标
//                  while (cursor.moveToNext()){
//                      String name = cursor.getString(cursor.getColumnIndex("name"));
//                      Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
//                  }
//                }

                //相当于 select * from student
                Cursor cursor = readableDatabase.query("student", null, null, null, null, null, null);
//                判断数据不为空
                if (cursor != null) {

                    //移动游标
                    while (cursor.moveToNext()) {
                        String name = cursor.getString(cursor.getColumnIndex("name"));
                        Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });

5.更新数据

 updata.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String sqlStr = "update student set name = '五五开' where id = 1";
                //原生
//                readableDatabase.execSQL(sqlStr);
                ContentValues contentValues = new ContentValues();
                contentValues.put("name", "pdd");
                readableDatabase.update("student", contentValues, "id = ?", new String[]{"2"});
                Toast.makeText(MainActivity.this, "更新完成", Toast.LENGTH_SHORT).show();
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值