zoukankan      html  css  js  c++  java
  • 嵌入式关系型SQLite数据库

         
      在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时,会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段的类型信息:
      CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))
    SQLite可以解析大部分标准SQL语句,如:
    查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句
    如:select * from person
            select * from person order by id desc
            select name from person group by name having count(*)>1
      分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录
      select * from Account limit 5 offset 3 或者 select * from Account limit 3,5
    插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘传智’,3)
    更新语句:update 表名 set 字段名=值 where 条件子句。如:update person set name=‘传智‘ where id=10
    删除语句:delete from 表名 where 条件子句。如:delete from person  where id=10
     

     MyDBOpenHelper.java

     1 public class MyDBOpenHelper extends SQLiteOpenHelper {
     2 
     3     /**
     4      * 
     5      * @param context 应用程序上下文
     6      * @param name    数据库的名字
     7      * @param factory 查询数据库的游标工厂 一般情况下 用sdk默认的
     8      * @param version  数据库的版本 版本号必须不小1 
     9      *  
    10      */
    11     public MyDBOpenHelper(Context context) {
    12         super(context, "itheima.db", null, 5);
    13     }
    14 
    15     // 在mydbOpenHelper 在数据库第一次被创建的时候  会执行onCreate();
    16     @Override
    17     public void onCreate(SQLiteDatabase db) {
    18         System.out.println("我被调用了 oncreate");
    19         db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))");
    20     }
    21 
    22     @Override
    23     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    24         System.out.println("on update ");
    25         db.execSQL("ALTER TABLE person ADD phone VARCHAR(12) NULL ");
    26     }
    27 }

      

  • 相关阅读:
    POJ 3710 Christmas Game#经典图SG博弈
    POJ 2599 A funny game#树形SG(DFS实现)
    POJ 2425 A Chess Game#树形SG
    LeetCode Array Easy 122. Best Time to Buy and Sell Stock II
    LeetCode Array Easy121. Best Time to Buy and Sell Stock
    LeetCode Array Easy 119. Pascal's Triangle II
    LeetCode Array Easy 118. Pascal's Triangle
    LeetCode Array Easy 88. Merge Sorted Array
    ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
    ASP.NET MVC 学习笔记之面向切面编程与过滤器
  • 原文地址:https://www.cnblogs.com/hacket/p/3114107.html
Copyright © 2011-2022 走看看