SQLlite

Posted 一只可爱的小狐狸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLlite相关的知识,希望对你有一定的参考价值。

SQLlite

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

一、什么是 SQLite

​ SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,不需要在系统中配置。

​ 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

二、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)中运行。

三、SQLite命令

1.常用指令

  1. .open filename --打开文件
  2. .show --显示SQLite 命令提示符的默认设置
  3. .q --退出
  4. .databases --显示数据库(注:显示打开的数据库)
  5. .help --帮助
  6. .dump --导入导出数据库
  7. .tables --查看表

2.数据类型

存储类描述
NULL值是一个 NULL 值。
INTEGER值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
REAL值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
TEXT值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
BLOB值是一个 blob 数据,完全根据它的输入存储。

3.DDL–操作数据库

1.创建数据库:
	sqlite3 DatabaseName.db
	eg:  sqlite3 testDB.db(创建一个testDB的数据库)
2.删除数据库:
	rm DatabaseName.db(直接删除创建出来的文件即可)
	eg: rm testDB.db(删除创建出来的数据库文件)

4.DML–操作表

1.创建表
	CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);
	eg: CREATE TABLE student(id int priamy key not null,name text, age Integer, salary real);
2.删除表
	DROP TABLE database_name.table_name;
	eg: DROP TABLE	student;
3.插入语句:
	INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);
	eg1: INSERT INTO student values(1,"qiyihao",23,5000.50);(按照表结构插入数据)
	eg2: INSERT INTO student (id,name,age) values(2,"zhao",22);(按照表结构中指定字段插入数据)
4.查询语句:
	SELECT column1, column2, columnN FROM table_name;(查询指定列)
	SELECT * FROM table_name;(查询所有)
	eg1: SELECT id, age, age FROM student;
	eg2: SELECT * FROM student;
5.更新语句:
	UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
	
	eg: UPDATE student 
	SET age = 22, name = "qiyihao"
    WHERE id = 1 ;
6.删除语句:
	DELETE FROM table_name
WHERE [condition];
	
	eg: DELETE FROM student
WHERE id = 1;

	DELETE FROM table_name;(清空表中所有数据)
	eg: DELETE FROM student;

5.格式化输出指令

(1).schema (查看表中详细信息)

(2)格式化输出

	a.非格式化输出      select * from user_relation;

 	b.格式输出      	
					.header on
					.mode column
					.select * from user_relation;

(3)查看表结构

1.查看数据库中所有表结构
					select * from sqlite_master ;
2.查看数据库中指定表结构
					select * from sqlite_master where type = "table" and name = "student";

以上是关于SQLlite的主要内容,如果未能解决你的问题,请参考以下文章

从MSAccessDB迁移到SQLLite

SQLlite数据库

SQLlite实现增删查改

SqlLite数据库帮助类和基本DEMO

SQLlite数据库中的附加和分离

SqlLite用SQLiteTransaction快速导入数据