学习SQLite之路(一)

  工作快一年了,接触的东西不是很多,学到的东西也不多。无意中看到公司的代码有一点关于sqlite3的(不是我这一层负责的代码),于是乎就学学试试。

 参考: http://www.runoob.com/sqlite/sqlite-tutorial.html 

20160612 更新

1,什么是SQLite?

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库。

2.SQLite的优势

  • 不需要一个单独的服务器进程或操作的系统(无服务器的)。
  • SQLite 不需要配置,这意味着不需要安装或管理。
  • 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
  • SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
  • SQLite 是自给自足的,这意味着不需要任何外部的依赖。
  • SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
  • SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
  • SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
  • SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行

3.SQLite命令: 跟其他数据库语言一样

(1)DDL(数据定义语言): create  drop  alter

(2)DML(数据操纵语言): delete  update  insert

(3)DQL(数据查询语言): select

 4.SQLite的安装

在windows里不需要安装,在http://www.sqlite.org/download.html 这里下载 sqlite-tools-win32-x86-3130000.zip 这个东西。

我以我的为例:

在F盘创建一个文件夹sqlite3,将下载的文件解压,会有三个文件(sqlite3.exe  sqldiff.exe  sqlite3_analyzer.exe),直接放在sqlite3目录下就可以了。

运行: 运行cmd.exe 然后切换到F盘的sqlite3文件夹。就可以直接运行了。

20160614 更新

1.SQLite命令:我们在命令提示符下键入一个简单的 sqlite3 命令,在 SQLite 命令提示符下,您可以使用各种 SQLite 命令。

就像这样:

2.需获取可用的点命令的清单,可以在任何时候输入 ".help",再回车就可以。

3.查看 SQLite 命令提示符的默认设置:   .show

还可以进行设置:就像下面这样(具体可以参考: http://blog.csdn.net/wirelessqa/article/details/21030147  )

4.先说一个命令: 

.read  ***(一个数据文件)

比如说我在sqlite3目录下新建一个文档:  create_company.txt

里面的内容是:

drop table company; -- 删除表
create table company(  --  创建表  这个表示单行注释
ID int primary key not NULL,  /* 这个是多行注释 */
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

然后:.read create_company.txt   /* 就相当于直接运行了create_company.txt里面的语句 */

5. SQLite语法:SQLite 是遵循一套独特的称为语法的规则和准则

(具体后面用到时再分析)

6. SQLite数据类型:数据类型是一个用来指定任何对象的数据类型的属性

可以在创建表的同时使用这些数据类型。SQLite 使用一个更普遍的动态类型系统。在 SQLite 中,值的数据类型与值本身是相关的,而不是与它的容器相关。

(1)SQLite存储类:主要有以下几种,冒号后面是解释

NULL:  一个NULL值

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

REAL:浮点数,存储为8字节的IEEE浮点数字

TEXT:文本字符串,使用数据库编码(UTF-8、UTF-16BE等)存储

GLOB:blob数据,完全根据它的输入存储(这个我也不是很理解)

(2)布尔数据类型: 没有专门的布尔数据,只有0和1

7. 创建数据库:

(1)基本语法如下: sqlite>sqlite3 testDB.db

 (2).dump 命令:导出完整的数据库在一个文本文件中

如:sqlite> testDB,db .dump > testDB,sql   /*  将转换整个 testDB.db 数据库的内容到 SQLite 的语句中,并将其转储到 ASCII 文本文件 testDB.sql 中  */

恢复: sqlite> testDB,db  < testDB,sql   /*   从生成的 testDB.sql 恢复   */

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

使用sql*plus编辑sql文本(r4笔记第53天)

工作中可能会经常实用工具来编辑sql 文本,实用sql*plus来编辑的机会比较少,但是这些也是硬功夫,一旦有需要手工编辑,其实发现也是很容易的。 关于编辑使用...

30640
来自专栏aoho求索

MySQL探秘(二):SQL语句执行过程详解

 昔日庖丁解牛,未见全牛,所赖者是其对牛内部骨架结构的了解,对于MySQL亦是如此,只有更加全面地了解SQL语句执行的每个过程,才能更好的进行SQL的设计和优化...

28610
来自专栏北京马哥教育

MySQL 超级入门教程(内含资源福利)

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 MySQL简介 1、什么是数据库 ? 数据库(Database)是按照数据结构来组织、存储...

77780
来自专栏乐沙弥的世界

MyCAT全局表描述及示例

18210
来自专栏大眼瞪小眼

面试-MySQL总结

2NF:每一个非主属性完全依赖于候选码(属性组的值能唯一的标识一个元组,但是其子集不可以)。

11630
来自专栏Java3y

Oracle总结【视图、索引、事务、用户权限、批量操作】

前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中,我们...

42540
来自专栏菩提树下的杨过

mysql: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for opera

昨天把mysql里所有table的varchar字段的字符集,批量换成了utf8mb4/utf8mb4_unicode_ci ,以便能保存一些emoji火星文 ...

281100
来自专栏Java架构师历程

sql必会基础3

对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查...

13820
来自专栏web编程技术分享

第四节 -自己 DIY 一个数据库管理工具1.编写php服务器代码

42640
来自专栏散尽浮华

Python3出现“No module named 'MySQLdb'“问题-以及使用PyMySQL连接数据库

Python3 与 Django 连接数据库,出现了报错:Error loading MySQLdb module: No module named 'MySQ...

6K20

扫码关注云+社区

领取腾讯云代金券