Day2_29_第九天 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();
                  }
                }
            }
        });
    }
}
发布了9 篇原创文章 · 获赞 0 · 访问量 239

猜你喜欢

转载自blog.csdn.net/weixin_45533623/article/details/104592936
今日推荐