Ø  简介

SQLite 是一款轻量级的关系型数据库,同时也是一种嵌入式数据库,与 Oracle、MySQL、SQL Server 等数据库不同,它可以内嵌在程序中,是程序中的一个组成部分。所以,经常被应用在 Android、IOS、Html5 等移动设备上,而且它运行速度非常快,占用资源也较少,通常只需要几百 KB 的内存就够了。SQLite 不仅支持标准的 SQL 语法,还遵循了数据库的 ACID 事务,在功能上基本能满足数据库的常见操作。因为它是轻量级的本地存储数据库,完成本地数据的持久化,所以要求就不能向 Oracle、DB2 等关系型数据库那么高了。下面,分为以下几点来了解 SQLite 数据库:

1.   SQLite 的优点

2.   SQLite 的数据类型

3.   SQLite 常用的 DDL 语法

4.   SQLite 常用的 CRUD 语法

5.   SQLite 的系统表

1.   SQLite 的优点

1)   轻量级、内嵌式数据库,运行速度快,性能高。

2)   通常与程序一起编译,不需要独立维护,简约而不简单。最好不要把它看作一个数据库,而是一个文件系统。因为,它其实就是一个以 *.db 为后缀的一个文件。

3)   支持常见的 SQL 语法,和常见的数据库功能,比如:子查询、事物、索引、视图、触发器等,可以说是麻雀虽小五脏俱全。

4)   可移植性强,支持在 Unix、Linux、MAC、Windows 等系统上运行。

2.   SQLite 的数据类型

SQLite 的数据类型也比较简单,大致分为以下四种:

1)   Integer, 有符号的整数类型。

2)   Real, 浮点型。

3)   Text, 字符串类型,编码取决于 BD 的编码。

4)   Blob, 二进制类型,用于存储二进制数据(比如:图片、视频等)。

5)   Boolean, SQLite 并没有 bool 类型,通常使用 0 或 1 代替,0 表示 false, 1 表示 true。

6)   DateTime,SQLite 也没有日期类型,通常使用 Text 类型代替。

3.   SQLite 常用的 DDL 语法

1)   创建表

1.   直接创建表(已存在会报错)

CREATE TABLE Employee(

id integer PRIMARY KEY AUTOINCREMENT, --员工Id:主键,自增

name text not null, --姓名

age integer null, --年龄

salary real null, --薪资

pic blob null --照片

);

2.   不存在则创建,否则不创建

CREATE TABLE IF NOT EXISTS Employee(...);

3.   根据现有表,创建另一张表(并写入数据)

CREATE TABLE Employee2 AS SELECT id, name FROM Employee;

结果:CREATE TABLE Employee2(id INT,name TEXT);

2)   修改表

1.   修改表名

ALTER TABLE Employee RENAME TO Employees;

2.   添加字段

ALTER TABLE Employees ADD COLUMN birthday text;

3.   修改字段

不支持直接修改,但可以通过其他方式达到修改的目的。

4.   删除字段

也不支持直接删除,但可以通过其他方式达到删除的目的。

3)   删除表

1.   直接删除(不存在会报错)

DROP TABLE Employee2;

2.   存在删除,否则不删除

DROP TABLE IF EXISTS Employee2;

4.   SQLite 常用的 CRUD 语法

1)   插入数据(必须指定列名)

INSERT INTO Employees(name, age, salary, pic)

VALUES('爱变成', 21, 8888.88, null),('程旭媛', 20, 6666.66, null)

,('张无忌', 26, 7890.00, null),('孙悟空', 50, 10000.00, null)

,('白骨精', 100, 10000.00, null);

2)   查询数据

1.   简单查询

SELECT * FROM Employees WHERE id = 1;

2.   模糊查询

SELECT * FROM Employees WHERE id < 4 AND name LIKE '张%';

3.   排序 + 分页

SELECT * FROM Employees WHERE id > 0 ORDER BY id ASC LIMIT 1, 2;

4.   分组 + 过滤(查询相同的工资)

SELECT salary FROM Employees WHERE id > 0 GROUP BY salary HAVING COUNT(*) > 1;

5.   常用的聚合函数

SELECT MAX(salary) 最高工资, MIN(salary) 最低工资, AVG(salary) 平均工资, SUM(salary) 总工资, COUNT(1) 总人数 FROM Employees;

6.   子查询 + IN 子句 + BETWEEN 子句

SELECT COUNT(1) AS '20~30岁的总人数' FROM Employees WHERE id IN(SELECT id FROM Employees WHERE age BETWEEN 20 AND 30);

7.   别名 + 左连接 + union 子句

SELECT T1.*, T2.user_name FROM Employees AS T1

LEFT JOIN (SELECT 1 id, 'aibiancheng' user_name union SELECT 2 id, 'chengxuyuan' user_name) AS T2 ON(T2.id=T1.id)

WHERE T1.id <= 3; --多表存在相同字段名时,必须指定别名

3)   修改数据

UPDATE Employees SET salary=salary+1

WHERE name='爱变成'; --爱变成的 SQLite 学会了工资必须加1块啊,哈哈哈~

4)   删除数据

DELETE FROM Employees WHERE name IN('孙悟空', '白骨精'); -- 删除西游记里的人物

5.   SQLite 的系统表

1)   sqlite_master, 查看表、视图、索引等结构

SELECT * FROM sqlite_master WHERE type='table' AND name LIKE '%Employee%';

2)   sqlite_sequence, 查看自增长字段的下一个值(可使用 UPDATE 语句修改)

SELECT * FROM sqlite_sequence WHERE name='Employees';

Ø  总结

1.   本文简要的介绍了 SQLite 的基本概念,和基本的使用语法,更多的使用可参考:http://www.runoob.com/sqlite/sqlite-tutorial.html

2.   另外推荐一个 SQLite 的客户端工具 SQLite Expert,可在官网中下载,地址:http://www.sqliteexpert.com/download.html

SQLite 数据库介绍和基本用法的更多相关文章

  1. Android数据库(1)、SQLite数据库介绍

    一.关系性数据库   关系型数据库主要有以下三个特征,尤为明显,如果没有这个三个特征约束,当多个客户端使用数据的时候就会出现各种各样的错误,所以关系型数据库定义这些约束,让客户端程序只要遵守这个规则便 ...

  2. Android 之Navicat for SQLite 数据库介绍

     Navicat for SQLite 是一套专为SQLite 设计的强大数据库管理及开发工具 Navicat for SQLite 是一套专为SQLite 设计的强大数据库管理及开发工具.它可以 ...

  3. System.Data.SQLite数据库简介

    SQLite介绍 在介绍System.Data.SQLite之前需要介绍一下SQLite,SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义.表.索引和数据本身 ...

  4. Windows Phone8 中如何引用 SQLite 数据库

    SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开发,使用非常广泛 2.SQLite是一款跨平台的数据库,支持Windows.Linux.Android.IOS.Windo ...

  5. Android数据存储之SQLite 数据库学习

    Android提供了五种存取数据的方式 (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQLite数据库,存放各种数据, ...

  6. SQLite数据库和JPA简单介绍

    SQLite数据库和JPA简单介绍 一.SQLite简单使用 SQLite是遵循ACID的关系数据库管理系统,它的处理速度很快,它的设计目标是嵌入式的,只需要几百K的内存就可以了. 1.下载SQLit ...

  7. 【Win 10 应用开发】Sqlite 数据库的简单用法

    如果老周没记错的话,园子里曾经有朋友写过如何在 UWP 项目中使用 Sqlite数据库的文章.目前我们都是使用第三方封装的库,将来,SDK会加入对 Sqlite 的支持. 尽管目前 UWP-RT 库中 ...

  8. iOS开发数据库篇—SQLite简单介绍

    iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1 ...

  9. Android SQLite 数据库详细介绍

    Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...

随机推荐

  1. [luogu4072][bzoj4518][SDOI2016]征途【动态规划+斜率优化】

    题目分析 Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜.所以,一段路 ...

  2. hexo博客添加功能

    设置Hexo主题模式 Hexo主题中,有三种不同的模式,通过切换模式,让NexT主题显示不一样的样式.在NexT根目录下有一个同样名称为_config.yml,为了区分hexo根目录下的_config ...

  3. 【bfs】拯救少林神棍(poj1011)

    Description 乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位.然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度.请你 ...

  4. uvaLive7303 Aquarium (kruskal)

    题意:给R*C的房间,每个房间被左上-右下或右上-左下的墙分割为两个小房间,将分割移除有一定花费,问使所有小房间联通需要的最小花费 把每个房间分成左右(上下?)两个点,判一判,本来就联通的加零边,一个 ...

  5. CDQ分治与整体二分学习笔记

     CDQ分治部分 CDQ分治是用分治的方法解决一系列类似偏序问题的分治方法,一般可以用KD-tree.树套树或权值线段树代替. 三维偏序,是一种类似LIS的东西,但是LIS的关键字只有两个,数组下标和 ...

  6. 详解vue的数据binding原理

    自从angular火了以后,各种mv*框架喷涌而出,angular虽然比较火,但是他的坑还是蛮多的,还有许多性能问题被人们吐槽.比如坑爹的脏检查机制,数据binding是受人喜爱的,脏检查就有点…性能 ...

  7. 1.Ubuntu系统与vmware虚拟机的安装与使用

    1.下载Ubuntu的镜像文件 种子文件的下载页面的链接:https://www.ubuntu.com/download/alternative-downloads 可以去选择版本的桌面版(Deskt ...

  8. IE jQuery ajax 请求缓存问题

    我最近在IE下测试开发我们的系统,经常出现改过的jsp页面,刷新IE后也不能显示,这就是IE的缓存问题,查了一下百度,说是IE9在ajax进行请求时,如果两次请求url相同,则不会请求服务器,而是从缓 ...

  9. C++基础知识--DAY4

    今天主要讲的是类中除了构造器析构器以外的拷贝构造器,运算符重载等问题 首先是拷贝构造器 1. copy constructor(拷贝构造) 其也是构造器,其地位和constructor的地位是一样的 ...

  10. Unity 网络编程(Socket)应用

    服务器端的整体思路: 1.初始化IP地址和端口号以及套接字等字段: 2.绑定IP启动服务器,开始监听消息  socketServer.Listen(10): 3.开启一个后台线程接受客户端的连接 so ...