常用sql语句

sqlite详解
1.SQLiteStatement提升多次操作的性能
2.删除表字段:sqlite不支持删除字段,只支持增加字段吗,只能重命名旧表 重建新表 导入数据 然后删除旧表这样

1.查询表中所有数据

select * from 表名

2.查询数据总数

select count(*) as total from 表名

3.where 用法

select * from Person where name = '小红'

4.like用法

查询Person表中name中带有‘小’字的数据
select * from Person where name like '%小%'

5.in的用法

表示某个字段中包含的情况
//age 为22,或者23的情况
select * from Person where age in (22,23)

7.limit与offset共用 分页

offset表示从哪个位置开始查询,可以用来分页查询
//从表中101条数据开始查询返回至少100条数据(如果有100以上的情况)
select * from Person limit 100 offset 101

8.order by 排序

默认为正序 asc
select * from Person order by id asc
倒序desc
select * from Person order by id desc

9.替代符 代替表名

有时表名太长,我们完全可用中间替代符
//下面用t直接代替guangzhou_person表,我们也可用其他字符,注意不要用特殊字符
select * from guangzhou_person t where t.name = '小红'










建表:
CREATE TABLE
IF NOT EXISTS
User(
id Integer primary key,
name varchar not null,
age Integer)

删表:
DROP TABLE IF EXISTS User

SQLiteStatement

private static final String INSERT_SQL = "insert or replace into " + CityItem.TABLE_NAME + "("
      + CityItem.CITYID + " , " + CityItem.CITYNAME + " , " + CityItem.ENGNAME + " , "
      + CityItem.CITYLEVEL + " , " + CityItem.PARENTID + " , " + CityItem.CITYFULLNAME + " , "
      + CityItem.INITIAL + ") values(?, ?, ?, ?, ?, ?,  ?)";
 
public void coverCityList(List<CityItem> list) {
      SQLiteStatement stmt = dbHandler.getDB().compileStatement(INSERT_SQL);
      dbHandler.beginTransaction();
      for (CityItem city : list) {
         stmt.bindString(1, city.getCityID());
         stmt.bindString(2, city.getCityName());
         stmt.bindString(3, city.getEngName());
         stmt.bindString(4, city.getCityLevel());
         stmt.bindString(5, city.getParentID());
         stmt.bindString(6, city.getCityFullName());
         stmt.bindString(7, city.getInitial());
         stmt.execute();
      }
      dbHandler.commitTransaction();
      dbHandler.endTransaction();
    }
  }

使用 SQLiteStatement。
普通的insert语句在执行过程过程中,是编译一次sql,再插入数据。
SQLiteStatement采取的方式是预编译一次sql,然后用编译好的语句,和设置的参数执行插入,
无形之中,减少了n-1次sql编译时间。

表的字段操作

SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。

  • 改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名

  • 增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型

      而修改一列无法像其他数据库那样直接以“ALTER TABLE 表名 ADD COLUMN 列名 数据类型”的方式来完成,所以要换种思路,具体步骤看下面
    
  • 将表名改为临时表

ALTER TABLE "Student" RENAME TO "_Student_old_20140409";

  • 创建新表

CREATE TABLE "Student" ( "Id" INTEGER PRIMARY KEY AUTOINCREMENT, "Name" Text);

  • 导入数据

NSERT INTO "Student" ("Id", "Name") SELECT "Id", "Title" FROM "_Student_old_20140409";

  • 更新sqlite_sequence

UPDATE "sqlite_sequence" SET seq = 3 WHERE name = 'Student';

由于在Sqlite中使用自增长字段,引擎会自动产生一个sqlite_sequence表,用于记录每个表的自增长字段的已使用的最大值,所以要一起更新下。如果有没有设置自增长,则跳过此步骤。

  • 删除临时表(可选)

DROP TABLE _Student_old_20140409;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容