1、SQLite是什么

   基于文件的轻型数据库 无服务器  零配置  支持事务  开源

2、SQLite 怎么用

  2.1 安装

SQLite官网上下载对应的DLL 与工具

配置环境变量

安装完成以后 查看版本

2.2 创建数据库

sqlite的创建数据库和使用数据库都是一个命令,数据库存在则根据名字加载数据库,如果不存在则创建这个数据库,

然后会看到sqlite> 表示正在使用这个数据库

2.3 创建,删除数据表

创建:create table user

(

id int primary key not null, --id 主键 非空

name varchar(20) not null,

age int

);

删除:drop table table_name

2.4 sqlite 数据类型

每个存储在 SQLite 数据库中的值都具有以下存储类之一:

存储类

描述

NULL

值是一个 NULL 值。

INTEGER

值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。

REAL

值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。

TEXT

值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。

BLOB

值是一个 blob 数据,完全根据它的输入存储。

SQLite Affinity 及类型名称

下表列出了当创建 SQLite3 表时可使用的各种数据类型名称,同时也显示了相应的应用 Affinity:

数据类型

Affinity

INT
INTEGER
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
INT2
INT8

INTEGER

CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB

TEXT

BLOB
no datatype specified

NONE

REAL
DOUBLE
DOUBLE PRECISION
FLOAT

REAL

NUMERIC
DECIMAL(10,5)
BOOLEAN
DATE
DATETIME

NUMERIC

Boolean 数据类型

SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)。

Date 与 Time 数据类型

SQLite 没有一个单独的用于存储日期和/或时间的存储类,但 SQLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。

存储类

日期格式

TEXT

格式为 "YYYY-MM-DD
HH:MM:SS.SSS" 的日期。

REAL

从公元前 4714 年 11 月 24 日格林尼治时间的正午开始算起的天数。

INTEGER

从 1970-01-01 00:00:00 UTC 算起的秒数。

表中插入数据

格式1:INSERT INTO TABLE_NAME (column1, column2,
column3,...columnN)] VALUES (value1, value2, value3,...valueN);

格式2:INSERT INTO COMPANY VALUES (7, 'James',
24, 'Houston', 10000.00 );

导入其他表中的数据

INSERT INTO first_table_name [(column1,
column2, ... columnN)]

SELECT column1, column2, ...columnN

FROM second_table_name [WHERE
condition];

删除数据 delete

DELETE FROM table_name WHERE
[condition];

查找数据 select

SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。SQLite 的 SELECT 语句的基本语法如下:

SELECT column1, column2, columnN FROM
table_name;

更新数据 update

UPDATE table_name

SET column1 = value1, column2 =
value2...., columnN = valueN

WHERE [condition];

模糊查询 like

%:百分号 代表一个或者多个任意字符或者数据

_:下划线 代表单一的数字或者字符
并且2者可以组合使用

WHERE SALARY LIKE '200%'

查找以 200 开头的任意值

WHERE SALARY LIKE '%200%'

查找任意位置包含 200 的任意值

WHERE SALARY LIKE '_00%'

查找第二位和第三位为 00 的任意值

WHERE SALARY LIKE '2_%_%'

查找以 2 开头,且长度至少为 3 个字符的任意值

WHERE SALARY LIKE '%2'

查找以 2 结尾的任意值

WHERE SALARY LIKE '_2%3'

查找第二位为 2,且以 3 结尾的任意值

WHERE SALARY LIKE '2___3'

查找长度为 5 位数,且以 2 开头以 3 结尾的任意值

glob:SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值,与 LIKE 运算符不同的是,GLOB 是大小写敏感的

*:星号代表零个、一个或多个数字或字符

?:问号代表一个单一的数字或字符。这些符号可以被组合使用。

语句

描述

WHERE SALARY GLOB '200*'

查找以 200 开头的任意值

WHERE SALARY GLOB '*200*'

查找任意位置包含 200 的任意值

WHERE SALARY GLOB '?00*'

查找第二位和第三位为 00 的任意值

WHERE SALARY GLOB '2??'

查找以 2 开头,且长度至少为 3 个字符的任意值

WHERE SALARY GLOB '*2'

查找以 2 结尾的任意值

WHERE SALARY GLOB '?2*3'

查找第二位为 2,且以 3 结尾的任意值

WHERE SALARY GLOB '2???3'

查找长度为 5 位数,且以 2 开头以 3 结尾的任意值

SQLite Limit 子句 :限制返回的数据量

格式1:返回指定数量 的结果集

SELECT column1, column2, columnN

FROM table_name

LIMIT [no of rows]

格式2:从M行开始提取N行的值作为结果集返回

SELECT column1, column2, columnN

FROM table_name

LIMIT N OFFSET M

SQLite Order By 排序

语法格式:

SELECT
column-list

FROM table_name

[WHERE
condition]

[ORDER BY
column1, column2, .. columnN] [ASC | DESC];

SQLite Group By 分组

语法格式:

SELECT
column-list

FROM table_name

WHERE [
conditions ]

GROUP BY
column1, column2....columnN

ORDER BY
column1, column2....columnN

SQLite Having 子句 HAVING
子句允许指定条件来过滤将出现在最终结果中的分组结果。

语法

下面是 HAVING 子句在 SELECT 查询中的位置:

SELECT FROM WHERE GROUP BY HAVING ORDER
BY

SELECT column1, column2 FROM table1,
table2

WHERE [ conditions ] GROUP BY column1,
column2

HAVING [ conditions ]

ORDER BY column1, column2

SQLite Distinct 关键字 去重

语法

用于消除重复记录的 DISTINCT 关键字的基本语法如下:

SELECT DISTINCT column1,
column2,.....columnN

FROM table_name

WHERE [condition]

SQLite 常用函数

SQLite 有许多内置函数用于处理字符串或数字数据。下面列出了一些有用的 SQLite 内置函数,且所有函数都是大小写不敏感,这意味着您可以使用这些函数的小写形式或大写形式或混合形式。欲了解更多详情,请查看 SQLite 的官方文档:

序号

函数 & 描述

1

SQLite COUNT 函数
SQLite COUNT 聚集函数是用来计算一个数据库表中的行数。

2

SQLite MAX 函数
SQLite MAX 聚合函数允许我们选择某列的最大值。

3

SQLite MIN 函数
SQLite MIN 聚合函数允许我们选择某列的最小值。

4

SQLite AVG 函数
SQLite AVG 聚合函数计算某列的平均值。

5

SQLite SUM 函数
SQLite SUM 聚合函数允许为一个数值列计算总和。

6

SQLite RANDOM 函数
SQLite RANDOM 函数返回一个介于 -9223372036854775808 和
+9223372036854775807 之间的伪随机整数。

7

SQLite ABS 函数
SQLite ABS 函数返回数值参数的绝对值。

8

SQLite UPPER 函数
SQLite UPPER 函数把字符串转换为大写字母。

9

SQLite LOWER 函数
SQLite LOWER 函数把字符串转换为小写字母。

10

SQLite LENGTH 函数
SQLite LENGTH 函数返回字符串的长度。

sqlite 初的更多相关文章

  1. Android开发:第四日——SQLite初接触

    一.SQLite 介绍 SQLite一个非常流行的轻量级嵌入式数据库,SQLite支持多数的SQL92标准,在一些场合下其性能优于MySql等数据库引擎,并且只利用很少的内存就有很好的性能.此外它还是 ...

  2. 一些iOS高效开源类库

    因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活.不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作.笔者整理了一下在本人学习过程中用到的一些比较有用Objective-C开 ...

  3. IOS一些高效的第三方框架库

    MBProgressHUD ——进展指示符库 苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore.而 MBProgres ...

  4. iOS各种开源类库

    KissXml——xml解析库 相关教程:http://www.iteye.com/topic/625849 http://sencho.blog.163.com/blog/static/830562 ...

  5. ios开源项目(各种有用的第三方库)

    状态栏:MTStatusBarOverlay  下拉刷新:EGOTableViewPullRefresh  网络应用:ASIHTTPRequest  等待特效:MBProgressHUD  JSON解 ...

  6. iOS高效开源类库

    因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活.不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作.笔者整理了一下在本人学习过程中用到的一些比较有用Objective-C开 ...

  7. [IOS A] - 一些开源类库

    因 为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活.不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作.笔者整理了一下在本人学习过程 中用到的一些比较有用Objective- ...

  8. ios开发经常使用到的第三方库

    由于iOS SDK相对照较底层,所以开发人员就得受累多做一些体力活.只是幸运的是,有非常多第三方的类库能够用来简化非常多不必要的工作.经过作者团队的谨慎讨论.他们 评选出了10款可以极大提高iOS开发 ...

  9. 安卓初級教程(4):sqlite建立資料庫

    2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ...

随机推荐

  1. 微信小程序初步运营方案

    小程序的运营方案有很多种,目前我们遇到两个事情需要解决:1.问答的内容,这块也是大家比较关心的话题.内容的定位和细节. 2.预热与推广,就这两个问题,我列出了一些自己的想法和小程序初步运营方案,有不足 ...

  2. Android MediaScanner使用简单介绍

    1. 运行扫描 仅仅有系统开机的时候才会运行MediaScanner,其他情景下须要手动运行扫描(拍摄,下载等). 手动运行扫描的方法是发送MediaScanner广播: 1.1 扫描指定文件: In ...

  3. Google VR技术大揭秘

    VR 虚拟现实(Virtual Reality)技术是一种能够创建和体验虚拟世界的计算机仿真系统.它利用计算机生成一种模拟环境.是一种多源信息融合的.交互式的三维动态视景和实体行为的系统仿真, 使用户 ...

  4. ASP.NET 生命周期及管道事件

    Client(发送报文:请求行+请求头+空行+请求体) <------ Http 协议 ------> Server,由 Http.sys 监听 Http 请求 -> WAS+Met ...

  5. 【转】优先队列priority_queue 用法详解

    http://www.cnblogs.com/void/archive/2012/02/01/2335224.html 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的 ...

  6. luogu 3939 数颜色 - STL(vector)

    传送门 分析: 虽然颜色种类很多,但是所有颜色个数之和n是一定的,这时候就可以使用vector对每个颜色维护一个坐标集合,空间只占n个. 对于查询L,R:直接一行: upper_bound(col[c ...

  7. Everything starts with a dream(A day has only 24 hours and these things take time,所以要抓紧)

    There is the famous quote: "Everything starts with a dream" and many years ago, Michael Va ...

  8. sparksql 动态设置schema将rdd转换成dataset/dataframe

    java public class DynamicDemo { private static SparkConf conf = new SparkConf().setAppName("dyn ...

  9. 执行hdfs namenode -importCheckpoint时出现No image directories available!

    在https://issues.apache.org/jira/browse/HDFS-4705找到了答案需要在hdfs-site.xml中配置 <!--指定fsimage存储目录--> ...

  10. Tower与DevCloud对比分析报告

    1. 产品介绍 Tower是彩程设计公司出品的远程办公和团队协作工具,为小企业和小团队提供简单.靠谱的在线协作服务. DevCloud是集华为研发实践.前沿研发理念.先进研发工具为一体的研发云平台.D ...