Sqlite数据库使用----语法强化

一、基本描述

在实际的工作中,需要管理较多的图片,并且每张图片有很多的状态,在其他标志变量控制复杂的情形下,想到了Sqlite数据库。在之前基础自我强化的时候,完成一个小Demo实现了Sqlite的基本使用。借用需求的基础上,强化了相关知识点,在此做一个笔记记录。

Sqlite数据库文件存放路径:/data/data/包名/databases。在真机中使用,手机没有root权限下,不能够获取文件。不能获取文件,也就比较安全,这也是Sqlite在Android中使用的原因之一。

数据库辅助工具有很多,最近在使用Navicat Premium。支持多种数据库类型,同时支持连接远程服务器控制,也支持本地文件查看。


二、Sql数据库sql语句语法

1,数据库操作

#查看所有数据库
SHOW DATABASES;
------连接服务器成功后,查看服务器中已经有的数据库

#创建数据库
CREATE DATABASE test1;

#删除数据库(如果存在)
DROP DATABASE
IF EXISTS test1;

#使用数据库
USE test1;
------ 创建数据库/删除数据库/使用数据库(前提是数据库已创建)

2,表的操作

#展示所有表格
SHOW TABLES;

#创建表格
CREATE TABLE contact (
	id INT auto_increment PRIMARY KEY,
	NAME VARCHAR (50),
	sex VARCHAR (20),
	birthday VARCHAR (50),
	content VARCHAR (100)
) DEFAULT CHARSET = utf8;

#删除表格
DROP TABLE contact;

#查看表结构
DESCRIBE contact;
-----使用数据库条件下,展示所有表格;

-----创建名为contact的表格【varchar 是内容限定,但并没有实际的意义】

-----删除指定名称的表格

-----查看表格的结构

3,增删改查

向表格中插入数据:【增】

insert into 表名(字段列表) values(值列表)

INSERT INTO contact
VALUES
	(
		NULL,
		'dd',
		'女',
		'1889-12-8',
		'......'
	);


从表格中查询数据:【查】

#查询表格数据
SELECT
	*
FROM
	contact;
SELECT
	id,
	NAME,
	birthday
FROM
	contact;
-----查询全部信息

-----筛选id,姓名,生日等信息


更新表格数据:【改】

update 表名 set 字段名=值 where 条件子句

#修改某条数据
UPDATE contact
SET content = "天下武功,无奇不破,唯快不破!"
WHERE
	id = 3;

删除表格中的数据:【删】

delete from 表名 where 条件子句

#删除数据
DELETE
FROM
	contact
WHERE
	id = 5;
----- 删除数据时,切记不要忘记条件限制,否则将清空所有数据。


增加限制条件的查询:
# and 且
SELECT
	*
FROM
	contact
WHERE
	birthday > '1988-1-2'
AND birthday < '1988-12-1';

#or 或者
SELECT
	*
FROM
	contact
WHERE
	birthday < '1988-11-2'
OR birthday > '1988-12-1';

#BETWEEN 
SELECT
	*
FROM
	contact
WHERE
	birthday BETWEEN '1988-1-2'
AND birthday < '1988-12-1';

#in
SELECT
	*
FROM
	contact
WHERE
	id IN (2, 4, 6);

#排序 ASC 升序  desc 降序
SELECT
	*
FROM
	contact
ORDER BY
	id DESC;

#分组查询  #聚合函数
SELECT
	MAX(id),
	NAME,
	sex
FROM
	contact
GROUP BY
	sex;

#按照性别分组,显示每组id最大的元
SELECT
	MIN(birthday)
FROM
	contact;

#最小
SELECT
	avg(id) AS '平均id'
FROM
	contact;

#平均
SELECT
	count(*)
FROM
	contact;

SELECT
	count(sex)
FROM
	contact;

#数量
SELECT
	SUM(id)
FROM
	contact;

#求和
SELECT
	*
FROM
	contact
LIMIT 2,
 2;

三、Sqlite的使用

SqliteDataBase使用exeSQL()方法执行insert,delete,update之类的sql语句;rawQuery()方法执行selector语句。

SqliteDataBase也提供了对应的方法专门用于添加。删除、更新、查询。


Insert()方法用于添加数据,各个字段的数据使用ContentValues进行存放。 ContentValues类似于MAP,相对于MAP,
它提供了存取数据对应的put(String key, Xxx value)和getAsXxx(String key)方法,  
key为字段名称,value为字段值,Xxx指的是各种常用的数据类型,如:String、Integer等。
SQLiteDatabase db = databaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "明明");
values.put("age", 4);
long rowid = db.insert(“person”, null, values);//返回新添记录的行号,与主键id无关



delete()方法的使用:
SQLiteDatabase db = databaseHelper.getWritableDatabase();
db.delete("person", "personid<?", new String[]{"2"});
db.close();
上面代码用于从person表中删除personid小于2的记录。



update()方法的使用:
SQLiteDatabase db = databaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(“name”, “明明”);//key为字段名,value为值
db.update("person", values, "personid=?", new String[]{"1"}); 
db.close();
上面代码用于把person表中personid等于1的记录的name字段的值改为“明明”。


query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit)方法各参数的含义:
table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。
columns:要查询出来的列名。相当于select语句select关键字后面的部分。
selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”
selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
groupBy:相当于select语句group by关键字后面的部分
having:相当于select语句having关键字后面的部分
orderBy:相当于select语句order by关键字后面的部分,如:personid desc, age asc;
limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。




源码



希望你有高跟鞋也有跑鞋,
喝茶也喝酒。

希望你有独立果敢的朋友,
也有意气风发的对手。

希望你对过往情深意重,
但下了决心就不回头。

希望你对理想抵死执着,
但当下却无急迫神色。

希望你特别美,特别敢,
特别温柔特别狠。

希望你穿起西装很帅,
烦心有人喝酒配串儿。

希望你为理想奋斗执着,
也有从头再来的气魄。

希望你会不动声色地活,
但从不将就。

希望你一身傲骨,
但也满怀慈悲。

希望你特别狠,特别准,
特别洒脱特别稳。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壹叁零壹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值