博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在linux下使用sqlite
阅读量:5874 次
发布时间:2019-06-19

本文共 2780 字,大约阅读时间需要 9 分钟。

数据导入的来源可以是其他应用程序的输出,也可以是指定的文本文件,这里采用指定的文本文件。

   1. 首先,确定导入的数据源,这里是待导入的,按固定格式的文本文件。
   2. 然后,依照导入的文件格式,确定想导入的目标数据表,这个数据表如果没有,可以依照待导入的文本文件格式,创建一个相对应的数据表。
   3. 最后,执行.import命令,将文本文件中数据导入数据表中。
1. 数据源
   在/home/ywx/yu/sqlite/下,创建一个名为data.txt的文本文件,并输入以下数据,数据之间采用逗号隔开

  1. id,name,age,address,hobby
  2. 1,tom,24,beijing,football
  3. 2,liu,27,heibei,fotball
  4. 3,jim,26,shandong,football
  5. 4,han,28,beijing,football
  6. 5,meng,25,beijing,tennis

 

2. 目标数据表
    这里创建一张目标数据表,通过分析文本格式,这里需要3个字段,分别是id,name,age。但在数据类型选择时存在一个问题,id和age在文本文件中是按字符型存储的,而其实际在数据表中,最好要表示成整型,因此这里要涉及到一个字符型数据类型向整型数据类型转换的问题。
    在创建表时,将id和age的类型定义为整型,进行强制转换,如果在数据导入时,发现转换失败,可以将id和age类型改为文本型。

  1. ywx@ywx:~/yu/sqlite$ sqlite3 test.db
  2. SQLite version 3.7.7.1 2011-06-28 17:39:05
  3. Enter ".help" for instructions
  4. Enter SQL statements terminated with a ";"
  5. sqlite> create table data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
  6. sqlite>

3. 导入命令

  1. sqlite> .separator "," 
  2. sqlite> .import data.txt data_txt_table
  3. sqlite> select * from data_txt_table;
  4. id,name,age,address,hobby
  5. 1,tom,24,beijing,football
  6. 2,liu,27,heibei,fotball
  7. 3,jim,26,shandong,football
  8. 4,han,28,beijing,football
  9. 5,meng,25,beijing,tennis
  10. sqlite>

   这里需要注意一点,在数据导入之前,先要根据数据的具体分的格式,设置数据导入的间隔符,例如在文本数据中采用的是‘,’来间隔数据,因此应先调用.seperator 设置‘,’ 为间隔符。
2. 查看命令
  
  .schema 命令来查看指定的数据表的结构

  1. sqlite> .schema data_txt_table
  2. CREATE TABLE data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
  3. sqlite>

2. .tables 命令用来查看当前数据库的所有数据表

  1. sqlite> .tables
  2. data_txt_table
  3. sqlite>

3. databases 命令用来查看当前所有数据库

  1. sqlite> .databases
  2. seq name file 
  3. --- --------------- ----------------------------------------------------------
  4. 0 main /home/ywx/yu/sqlite/test.db 
  5. 1 temp

3. 数据导出
   数据导出也是一个常用到的操作,可以将指定表中的数据导出成SQL脚本,供其他数据库使用,还可以将指定的数据表中的数据完整定位到标准输出,也可以将指定数据库中的数据完整的导入到另一个指定数据库等,
1. 导出成指定的SQL脚本
   将sqlite中指定的数据表以SQL创建脚本的形式导出,具体命令

  1. ywx@ywx:~/yu/sqlite$ sqlite3 test.db
  2. SQLite version 3.7.7.1 2011-06-28 17:39:05
  3. Enter ".help" for instructions
  4. Enter SQL statements terminated with a ";"
  5. sqlite> .output data.sql
  6. sqlite> .dump
  7. sqlite>

 

  1. ywx@ywx:~/yu/sqlite$ ll
  2. 总计 16
  3. drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:15 ./
  4. drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
  5. -rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
  6. -rw-r--r-- 1 ywx ywx 2048 2011-08-13 22:44 test.db

2. 数据库导出

  1. data.sql test.db
  2. ywx@ywx:~/yu/sqlite$ sqlite3 test.db ".dump" | sqlite3 test2.db
  3. ywx@ywx:~/yu/sqlite$ ll
  4. 总计 20
  5. drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:20 ./
  6. drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
  7. -rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
  8. -rw-r--r-- 1 ywx ywx 2048 2011-08-13 23:20 test2.db
  9. -rw-r--r-- 1 ywx ywx 2048 2011-08-13 22:44 test.db

3. 其他格式,如:htm格式输出

    1. ywx@ywx:~/yu/sqlite$ sqlite3 -html test.db "select * from data_txt_table" > liu.htm
    2. ywx@ywx:~/yu/sqlite$ ls
    3. data.sql liu.htm test2.db test.db

转载地址:http://ryzix.baihongyu.com/

你可能感兴趣的文章
POJ 1915-Knight Moves (单向BFS && 双向BFS 比)
查看>>
java中在linux下利用jstack检测死锁
查看>>
linux编译安装LAMP
查看>>
php中的continue用法
查看>>
Android小游戏应用---撕破美女衣服游戏
查看>>
TextKit简单示例
查看>>
网格最短路径算法(Dijkstra & Fast Marching)(转)
查看>>
最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)
查看>>
软链接和硬链接详解
查看>>
HTML5 video 视频标签 常用属性
查看>>
深入理解javascript对象系列第一篇——初识对象
查看>>
Redis_master-slave模式
查看>>
qemu安装
查看>>
多媒体开发之rtmp---rtmp client 端的实现
查看>>
3.使用Maven构建Web项目
查看>>
iView实现自定义Modal
查看>>
如何在云帮上配置https
查看>>
JQuery干货篇之插入元素
查看>>
Imperva开源域目录控制器,简化活动目录集成
查看>>
可观察性驱动开发,探索未知之地
查看>>