sqlite-( TABLE == FILE )

———————————————————

1、导入 .import命令  ( FILE ==> TABLE)

———————————————————

sqlite>.import FILE TABLE    //Import data from FILE into TABLE

----------例:

目地:将data.txt 中的数据内容导入到test_database.db数据库的table_im表中。

  • 我先查看data.txt文本中的内容

  • 打开数据库文件,将data.txt文本中的内容导入某table

我的操作:在目标表table_im没有被创建的情况下,

结果:执行 sqlite>.import data.txt table_im,会将data.txt的第一行数据当作table_im的字段名col_name,并将后面的2~5行的数据作为字段列内容导入table_im。详情如下(看注释):

[email protected]:~/sqlite_C# sqlite3 test_database.db
SQLite version 3.8.7.4 2014-12-09 01:34:36
Enter ".help" for usage hints.
sqlite> .table    
COMPANY                  //开始只有COMPANY这一个table
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE COMPANY(            ID        INT   PRIMARY KEY NOT NULL,           NAME      TEXT  NOT NULL,           AGE       INT   NOT NULL,           ADDRESS   TEXT  ,           SALARY    REAL  );
INSERT INTO "COMPANY" VALUES(1,‘LiA‘,20,‘China‘,100000.0);
INSERT INTO "COMPANY" VALUES(2,‘LiB‘,25,‘America‘,200000.0);
INSERT INTO "COMPANY" VALUES(3,‘LiC‘,30,‘earth‘,300000.0);
INSERT INTO "COMPANY" VALUES(5,‘LIE‘,40,‘Ground‘,500000.0);
INSERT INTO "COMPANY" VALUES(6,‘LiF‘,45,‘Home‘,600000.0);
COMMIT;
sqlite> .import data.txt table_im           //导入操作 (在这之前table_im没有被create)
sqlite> .table
COMPANY   table_im                         //在这里可以看出来, table_im被上一步操作新建了,
sqlite> .dump                                //然后我查看数据库中table_im是怎么被创建的,表结构是怎么样的
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE COMPANY(            ID        INT   PRIMARY KEY NOT NULL,           NAME      TEXT  NOT NULL,           AGE       INT   NOT NULL,           ADDRESS   TEXT  ,           SALARY    REAL  );
INSERT INTO "COMPANY" VALUES(1,‘LiA‘,20,‘China‘,100000.0);
INSERT INTO "COMPANY" VALUES(2,‘LiB‘,25,‘America‘,200000.0);
INSERT INTO "COMPANY" VALUES(3,‘LiC‘,30,‘earth‘,300000.0);
INSERT INTO "COMPANY" VALUES(5,‘LIE‘,40,‘Ground‘,500000.0);
INSERT INTO "COMPANY" VALUES(6,‘LiF‘,45,‘Home‘,600000.0);
CREATE TABLE table_im(                   
  "1" TEXT,
  "LiA" TEXT,
  "20" TEXT,
  "China" TEXT,
  "100000.0" TEXT                       //可看到,data.txt的第一行数据被当作了table_im的字段名,并且,表结构的字段类型也被自动生成了,清一色的TEXT类型 。

);                                                
INSERT INTO "table_im" VALUES(‘2‘,‘LiB‘,‘25‘,‘America‘,‘200000.0‘);
INSERT INTO "table_im" VALUES(‘3‘,‘LiC‘,‘30‘,‘earth‘,‘300000.0‘);
INSERT INTO "table_im" VALUES(‘5‘,‘LIE‘,‘40‘,‘Ground‘,‘500000.0‘);
INSERT INTO "table_im" VALUES(‘6‘,‘LiF‘,‘45‘,‘Home‘,‘600000.0‘);
COMMIT;

sqlite> select * from table_im;      //于是table_im的字段内容就从data.txt的第二行开始
2|LiB|25|America|200000.0
3|LiC|30|earth|300000.0
5|LIE|40|Ground|500000.0
6|LiF|45|Home|600000.0

所以说,建议:先创建表,定义表结构,再将文本文件导入到表中

正确导入方法:

sqlite> CREATE TABLE TABLE_TEST(            ID        INT   PRIMARY KEY NOT NULL,           NAME      TEXT  NOT NULL,           AGE       INT   NOT NULL,           ADDRESS   TEXT  ,           SALARY    REAL  );
sqlite> .TABLE

Error: unknown command or invalid arguments:  "TABLE". Enter ".help" for help
sqlite> .table
COMPANY     TABLE_TEST
sqlite> .import data.txt TABLE_TEST
sqlite> .dump TABLE_TEST
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE TABLE_TEST(            ID        INT   PRIMARY KEY NOT NULL,           NAME      TEXT  NOT NULL,           AGE       INT   NOT NULL,           ADDRESS   TEXT  ,           SALARY    REAL  );
INSERT INTO "TABLE_TEST" VALUES(1,‘LiA‘,20,‘China‘,100000.0);
INSERT INTO "TABLE_TEST" VALUES(2,‘LiB‘,25,‘America‘,200000.0);
INSERT INTO "TABLE_TEST" VALUES(3,‘LiC‘,30,‘earth‘,300000.0);
INSERT INTO "TABLE_TEST" VALUES(5,‘LIE‘,40,‘Ground‘,500000.0);
INSERT INTO "TABLE_TEST" VALUES(6,‘LiF‘,45,‘Home‘,600000.0);
COMMIT;

_________________________________________

2、导出 .output命令 (TABLE==>FILE)

_________________________________________

sqlite>.output FILE_NAME //Send outputto FILENAME

----------例:

[email protected]:~/sqlite_C# sqlite3 test_database.db
SQLite version 3.8.7.4 2014-12-09 01:34:36
Enter ".help" for usage hints.
sqlite> .output output.txt           //将结果集输出定位到output.txt
sqlite> select * from COMPANY;   //查寻输出
sqlite> .exit
[email protected]:~/sqlite_C# ls
backupdb.db    gettable      mydata.db   selectdata.c      sqlite3.h.gch
connect_db.c   gettable.c    output.txt  selectdata_pro.c  sqlite_test.c
createtable.c  insertdata.c  README.md   sqlite3.h         test_database.db
[email protected]:~/sqlite_C# vim output.txt

从得到的文件来看,导出的数据包含各字段的内容,不包含字段名!

时间: 2024-10-12 13:09:32

sqlite-( TABLE == FILE )的相关文章

Android开发(二十四)——数据存储SharePreference、SQLite、File、ContentProvider

Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程序包名”目录下.如果要实现数据共享,正确的方式是使用ContentProvider. 参考: http://www.cnblogs.com/rond/p/3553156.html http://blog.csdn.net/flowingflying/article/details/6671548%2

sqlite的csv的导入,导出

-----------------------------------以下这段,是十分容易百度到的,但它不是csv的导入导出的适用方法,更适合格式化输出,说白了就是方便人看,它会给长文本的字段数据添加空格和适当截断.这些对于需要后续程序处理的导出操作是致命的. 导入命令: .importsqlite> .import 文件名 表名注1: 不要忘了开头的点注2: 这条语句不能用分号结束. 非SQL不需要分号结束.注3: 需要查看默认的分隔符separator. 必须一致. 如果不一致可能导致sql

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas

Android 中 SQLite 数据库的查看

当 SQLite 数据库创建完成后,如何查看数据库的内容呢?如果直接使用 File Explorer 查看,最多只能看到 database 目录下出现了一个 BookStore.db 文件,Book 表是无法通过 File Explorer 看到的. 我将简单介绍两种 SQLite 数据库的查看方式,来对数据库和表的创建情况进行检查. -----------------------------------数据库可视化工具--------------------------------------

[转]Learn SQLite in 1 hour

转载说明: 1.原文地址:http://www.askyb.com/sqlite/learn-sqlite-in-1-hour/ 2.译文地址:http://www.oschina.net/question/12_53183(红薯翻译) 3.英文原文有5处错误,下面的已经修正过了 原文如下: Learn SQLite in 1 hour askyb on May, 9th 2012 in SQLite 1. Introduction SQLite is an open source, embed

About SQLite

About SQLite See Also... Features When to use SQLite Frequently Asked Questions Well-known Users Books About SQLite Getting Started SQL Syntax Pragmas SQL functions Date & time functions Aggregate functions C/C++ Interface Spec Introduction List of C

Win10手记-为应用集成SQLite(二)

接上篇内容,这里给大家分享我的辅助访问类,采用了异步方法,封装了常用的访问操作,一些操作还是纯CLI的. SQLiteDBManager using System; using System.Collections.Generic; using System.Collections; using System.Threading.Tasks; using SQLite.Net; using SQLite.Net.Async; using Windows.Storage; using System

Sqlite嵌入式数据库的安装、建库、建表、更新表结构以及数据导入导出等等详细过程记录

简介: SQLite 是实现了SQL 92标准的一个大子集的嵌入式数据库.其以在一个库中组合了数据库引擎和接口,能将所有数据存储于单个文件中而著名.我觉得SQLite的功能一定程度上居于MySQL 和PostgreSQL之间.尽管如此,在性能上面,SQLite常常快2-3倍 (甚至更多).这利益于其高度调整了的内部架构,因为它除去了服务器端到客户端和客户端到服务器端的通信. 而令人印象深刻的特点是你可将你的整个数据库系统放在其中.利用非常高效的内存组织,SQLite只需在很小的内存中维护其很小的

纯 Swift 封装的 SQLite 框架:SQLite.swift

SQLite.swift 是一个使用纯 Swift 语言封装 SQLite3 的操作框架. 特性: 简单的查询和参数绑定接口 安全.自动类型数据访问 隐式提交和回滚接口 开发者友好的错误处理和调试 文档完善 通过广泛测试 示例代码: ? 1 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 import SQLite   let db = Database("