sqlite3 数据库(一)

SQLite 数据库,是一个非常轻量级自包含(lightweight and self-contained)DBMS,它可移植性好,很容易使用,很小,高效而且可靠。

SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。

嵌入式数据库的一大好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。

SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器。它需要占用内存,但其它开销很小,适合用于嵌入式设备,需要做的仅仅是把它正确的编译到的程序。

一、基本操作命令:

1、创建数据库:

       sqlite3 数据库名

       例如:[root@192 ~]# sqlite3 /home/DataBases/user.db

2、显示数据库:

       .databases

      例如:sqlite> .databases

3、创建表:SQL语句以分号“;”结束,敲回车键之后,SQL语句就会执行

        sqlite> create table person(id integer primary key,name varchar(10),age integer);

4、显示所有的表和视图:

        sqlite> .tables

5、显示表结构:

        sqlite> .schema 【表名】

6、获取指定表的索引列表:

       sqlite> .indices 【表名】

7、从SQL文件导入数据库:

       sqlite> .read 【文件名】

8、导出数据库到SQL文件:

       sqlite> .output 【文件名】

       sqlite> .dump

       sqlite> .output stdout

9、格式化输出数据到CSV格式:

       sqlite> .output 【文件名.csv

       sqlite> .separator

       sqlite> .select * from test

       sqlite> .output stdout

10、从CSV文件导入数据到表中:

       sqlite> .import 【文件名.csv】 【表名】

11、备份数据库:

       [root@192 ~]# sqlite3 【数据库名】 .dump > backup.sql

12、恢复数据库:

      [root@192 ~]# sqlite3 【数据库名】 < backup.sql


二、存储种类和数据类型:

    1、数据类型:

         NULL: 表示该值为NULL值。
         INTEGER:
无符号整型值。
         REAL:
浮点值。
         TEXT:
文本字符串,存储使用的编码方式为UTF-8UTF-16BEUTF-16LE
         BLOB:
存储Blob数据,该类型数据和输入数据完全相同。

         2类型亲缘性:

               为了最大化SQLite和其它数据库引擎之间的数据类型兼容性,SQLite提出了"类型亲缘性(Type Affinity)"的概念。我们可以这样理解"类型亲缘性 ",在表字段被声明之后,SQLite都会根据该字段声明时的类型为其选择一种亲缘类型,当数据插入时,该字段的数据将会优先采用亲缘类型作为该值的存储方式,除非亲缘类型不匹配或无法转换当前数据到该亲缘类型,这样SQLite才会考虑其它更适合该值的类型存储该值。SQLite目前的版本支持以下五种亲缘类型:

              

亲缘类型

描述  

TEXT

数值型数据在被插入之前,需要先被转换为文本格式,之后再插入到目标字段中。

NUMERIC

当文本数据被插入到亲缘性为NUMERIC的字段中时,如果转换操作不会导致数据信息丢失以及完全可逆,那么SQLite就会将该文本数据转换为INTEGERREAL类型的数据,如果转换失败,SQLite仍会以TEXT方式存储该数据。对于NULLBLOB类型的新数据,SQLite将不做任何转换,直接以NULLBLOB的方式存储该数据。需要额外说明的是,对于浮点格式的常量文本,如"30000.0",如果该值可以转换为INTEGER同时又不会丢失数值信息,那么SQLite就会将其转换为INTEGER的存储方式。

INTEGER

对于亲缘类型为INTEGER的字段,其规则等同于NUMERIC,唯一差别是在执行CAST表达式时。

REAL

其规则基本等同于NUMERIC,唯一的差别是不会将"30000.0"这样的文本数据转换为INTEGER存储方式。

NONE

不做任何的转换,直接以该数据所属的数据类型进行存储。

 

     (1)决定字段亲缘性的规则:

 

                   字段的亲缘性是根据该字段在声明时被定义的类型来决定的,具体的规则可以参照以下列表。需要注意的是以下列表的顺序,即如果某一字段类型同时符合两种亲缘性,那么排在前面的规则将先产生作用。
                   1).
如果类型字符串中包含"INT",那么该字段的亲缘类型是INTEGER
                   2).
如果类型字符串中包含"CHAR""CLOB""TEXT",那么该字段的亲缘类型是TEXT,如VARCHAR
                   3).
如果类型字符串中包含"BLOB",那么该字段的亲缘类型是NONE
                   4).
如果类型字符串中包含"REAL""FLOA""DOUB",那么该字段的亲缘类型是REAL
                   5).
其余情况下,字段的亲缘类型为NUMERIC

 

     (2)具体示例:

          

声明类型

亲缘类型

应用规则

INT
INTEGER
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
INT2
INT8

INTEGER

1

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

TEXT

2

BLOB

NONE

3

REAL
DOUBLE
DOUBLE PRECISION
FLOAT

REAL

4

NUMERIC
DECIMAL(10,5)
BOOLEAN
DATE
DATETIME

NUMERIC

5

注:在SQLite中,类型VARCHAR(255)的长度信息255没有任何实际意义,仅仅是为了保证与其它数据库的声明一致性。

 

        

 

 

 

 

 

转载于:https://www.cnblogs.com/lone5wolf/p/10907644.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML引入vue.js,在ie浏览器中不显示

因为只有两个页面&#xff0c;所以我没有用 vue-cli 搭框架&#xff0c;直接在 HTML 中引入vue.js 文件。发现其他浏览器都能正常显示&#xff0c;ie 下显示不正常&#xff0c;而且还报错&#xff0c;错误信息如下&#xff1a; 原因&#xff1a; 主要是因为 ie 不支持 ES6 的语…

【button】 按钮组件说明

原型&#xff1a; <buttonsize"[default | mini]"type"[primary | default | warn]"plain"[Boolean]"disabled"[Boolean]"loading"[Boolean]"form-type"[submit | reset]"open-type"[contact | share | g…

具有Infinispan的聚集幂等消费者模式

我创建了一个小项目 &#xff0c;该项目展示了如何将JBoss Infinispan与Apache Camel和幂等消费者模式一起使用&#xff0c;以确保消息不会在集群环境中被处理两次。 假设您有一个应用程序&#xff0c;该应用程序必须通过将其部署在多个容器上才能轻松扩展。 但是应用程序必须…

UVa OJ 128 - Software CRC (软件CRC)

Time limit: 3.000 seconds限时&#xff1a;3.000秒 Problem问题 You work for a company which uses lots of personal computers. Your boss, Dr Penny Pincher, has wanted to link the computers together for some time but has been unwilling to spend any money on the…

ipv4编址

IPv4的编址&#xff1a; IPv4的地址有32位&#xff0c;通过使用点分十进制法&#xff0c;将其划分成4个由“.”隔断的部分&#xff0c;每一个部分的取值是0~255 {2^0~(2^8)-1} IP地址是32位类似这样的二进制串&#xff1a;1100 0000 1111 1111 1111 1111 1111 1110&#xff08;…

基于 vue 的验证码组件

登录页面有个验证码&#xff0c;暂时没用到后台&#xff0c;在网上找了两个博客&#xff0c;记录一下。 一、直接写&#xff08;参考-UIEngineer&#xff09; 这个样式比较简单&#xff0c;直接在需要验证码的地方添加就行了。如果这个页面比较复杂&#xff0c;用组件会比较好…

Java 8 Friday:更多功能关系转换

过去&#xff0c;我们一直在每个星期五为您提供有关Java 8的新内容的新文章。这是一个非常令人兴奋的博客系列 &#xff0c;但我们想再次将重点放在Java和SQL的核心内容上。 我们仍然偶尔会写关于Java 8的博客&#xff0c;但不再是每个星期五&#xff08;有些人已经注意到&…

【WXS全局对象】Date

属性&#xff1a; 名称说明Date.parse( [dateString] )解析一个日期时间字符串&#xff0c;并返回 1970/1/1 午夜距离该日期时间的毫秒数。Date.UTC(year,month,day,hours,minutes,seconds,ms) 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 参数&#xff1a;year/m…

13个不可不知的ASP.NET MVC扩展点

ASP.NET MVC设计的主要原则之一是可扩展性。处理管线&#xff08;processing pipeline&#xff09;上的所有&#xff08;或大多数&#xff09;东西都是可替换的。因此&#xff0c;如果您不喜欢ASP.NET MVC所使用的约定&#xff08;或缺乏某些约定&#xff09;&#xff0c;您可以…

程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)

https://blog.csdn.net/ChenRui_yz/article/details/86489067 随着互联网的普及&#xff0c;网络安全变得越来越重要&#xff0c;程序员需要掌握最基本的web安全防范&#xff0c;下面列举一些常见的安全漏洞和对应的防御措施。01 常见的Web安全问题1.前端安全XSS 漏洞CSRF 漏洞…

在 HTML 中引入 vue.js 写页面

突然说要写两个页面&#xff08;只有两个页面&#xff0c;不是一个完整的项目。。&#xff09;&#xff0c;有点懵&#xff0c;不知道从哪下手&#xff0c;而且只对 vue 熟悉那么一丢丢&#xff0c;其他框架不是很熟悉。但是没办法鸭&#xff0c;只能硬着头皮去做了&#xff01…

JavaFX技巧14:StackPane子项-隐藏但不消失

另一个简短提示&#xff1a;Swing提供了一个名为CardLayout的布局管理器&#xff0c;该管理器管理容器内的一组组件&#xff08;卡&#xff09;&#xff0c;但始终仅显示其中一个。 方法CardLayout.show&#xff08;Container &#xff0c;String&#xff09;允许在组件/卡之间…

【WXS数据类型】Array

属性&#xff1a; 名称值类型说明[Array].constructor[String]返回值为“Array”,表示类型的结构字符串[Array].length[Number]返回数组长度 方法&#xff1a; 原型&#xff1a;[Array].toString() 说明&#xff1a;将数组转换成字符串&#xff0c;用逗号分隔每个元素 原型&am…

Mschart图表制作

首先一次安装这三个 &#xff08;1&#xff09;.Microsoft .NET Framework 3.5 的 Microsoft 图表控件 &#xff08;2&#xff09;.Microsoft .NET Framework 3.5 语言包的 Microsoft 图表控件 &#xff08;3&#xff09;.Microsoft Chart Controls Add-on for Microsoft Visua…

vue打包后,font格式错误

本地测试没有问题&#xff0c;项目打包以后&#xff0c;浏览器打开控制台&#xff0c;提示font格式错误&#xff1a; 把我的双引号给去掉了。。。-^- 不开心。 解决办法&#xff1a; 1. 把 font: 字体粗细 字体大小/行高 "字体样式"; 分开来写。 改成&#xff1a;…

获取可用密码算法的列表

您如何学习可用的密码算法&#xff1f; Java规范列出了几种必需的密码&#xff0c;摘要等&#xff0c;但是提供程序通常提供的不止这些。 幸运的是&#xff0c;这很容易了解我们系统上的可用内容。 public class ListAlgorithms {public static void main(String[] args) {//…

【...】小程序扩展运算符 ... 说明

小程序扩展运算符 ... &#xff0c;用来将一个对象展开。 以下示例&#xff1a; 1 <template is"objectCombine" data"{{...obj1, ...obj2, e: 5}}"></template> 1 Page({2 data: {3 obj1: {4 a: 1,5 b: 26 },7 o…

fhq_treap || BZOJ 3224: Tyvj 1728 普通平衡树 || Luogu P3369 【模板】普通平衡树

题面&#xff1a;【模板】普通平衡树 代码&#xff1a; 1 #include<cstdio>2 #include<cstring>3 #include<iostream>4 #include<cstdlib>5 using namespace std;6 inline int rd(){7 int x0,f1;char cgetchar();8 while(c<0||c>9){if(c…

关于Zend framework 里一段代码的疑问

初学框架 看了一些代码 有一些疑问 在此记录 1 publicfunction__isset($key)2 {3 returnthis->_engine->get_temlate_vars($key)!null;4 }我想这个函数返回的一定是一个bool值 但不知道get_temlate_vars($key)!null 这里面的!是怎么个用法 希望有知道的能告诉我一声 谢谢…

html笔记(四)弹性盒+响应式

大标题小节一、弹性盒1. 标准盒模型和怪异盒模型2. 弹性盒dipalay3. 与display配合使用的其他属性4. 弹性盒的对齐方式5. 弹性盒的默认特性二、响应式布局1. 媒体查询2. 怎样使用媒体查询3. 优缺点以及使用场景4. Meta 标签的定义5. 常见的属性操作三、多列布局四、移动端布局1…