Sqlite3入门学习一

一、基本操作

1.创建一个新的数据库

sqlite3 文件名

先建立一个 Db 目录,并在 Db 目录中创建一个 car.db 数据库文件,打开控制台窗口,命令如下:
E:\>mkdir Db
E:\>cd Db
E:\Db>sqlite3 car.db

2.打开一个已经存在的数据库

sqlite3 已经存在的文件名

创建一个新数据库和打开一个已经存在的数据库命令是一模一样的,如果文件在当前目录下不存在,则新建;如果存在,则打开。

3.导入数据

.read 数据文件

打开记事本,并将下列 SQL 语句复制到记事本中,保存为 car.sql,并存到上面说到的 Db 目录下,在命令行环境中输入
sqlite>.read car.sql
即将所有的数据导入到 car.db 数据库中。
cal.sql的内容如下:
BEGIN TRANSACTION;
create table Cars(Id integer primary key, Name text, Cost integer);
insert into Cars values(1,'Audi',52642);
insert into Cars values(2,'Mercedes',57127);
insert into Cars values(3,'Skoda',9000);
insert into Cars values(4,'Volvo',29000);
insert into Cars values(5,'Bentley',350000);
insert into Cars values(6,'Citroen',21000);
insert into Cars values(7,'Hummer',41400);
insert into Cars values(8,'Volkswagen',21600);
COMMIT;
BEGIN TRANSACTION;
create table Orders(Id integer primary key, OrderPrice integer check(OrderPrice>0),
Customer text);
insert into Orders(OrderPrice, Customer) values(1200, 'Williamson');
insert into Orders(OrderPrice, Customer) values(200, 'Robertson');
insert into Orders(OrderPrice, Customer) values(40, 'Robertson');
insert into Orders(OrderPrice, Customer) values(1640, 'Smith');
insert into Orders(OrderPrice, Customer) values(100, 'Robertson');
insert into Orders(OrderPrice, Customer) values(50, 'Williamson');
insert into Orders(OrderPrice, Customer) values(150, 'Smith');
insert into Orders(OrderPrice, Customer) values(250, 'Smith');
insert into Orders(OrderPrice, Customer) values(840, 'Brown');
insert into Orders(OrderPrice, Customer) values(440, 'Black');
insert into Orders(OrderPrice, Customer) values(20, 'Brown');
COMMIT;
BEGIN TRANSACTION;
create table Friends(Id integer primary key, Name text unique not NULL,
Sex text check(Sex IN ('M', 'F')));
insert into Friends values(1,'Jane', 'F');
insert into Friends values(2,'Thomas', 'M');
insert into Friends values(3,'Franklin', 'M');
insert into Friends values(4,'Elisabeth', 'F');
insert into Friends values(5,'Mary', 'F');
insert into Friends values(6,'Lucy', 'F');
insert into Friends values(7,'Jack', 'M');
COMMIT;
BEGIN TRANSACTION;
create table Customers(CustomerId integer primary key, Name text);
insert into Customers(Name) values('Paul Novak');
insert into Customers(Name) values('Terry Neils');
insert into Customers(Name) values('Jack Fonda');
insert into Customers(Name) values('Tom Willis');
create table Reservations(Id integer primary key,
CustomerId integer, Day text);
insert into Reservations(CustomerId, Day) values(1, '2009-22-11');
insert into Reservations(CustomerId, Day) values(2, '2009-28-11');
insert into Reservations(CustomerId, Day) values(2, '2009-29-11');
insert into Reservations(CustomerId, Day) values(1, '2009-29-11');
insert into Reservations(CustomerId, Day) values(3, '2009-02-12');
COMMIT;
BEGIN TRANSACTION;
create table Names(Id integer, Name text);
insert into Names values(1,'Tom');
insert into Names values(2,'Lucy');
insert into Names values(3,'Frank');
insert into Names values(4,'Jane');
insert into Names values(5,'Robert');
COMMIT;
BEGIN TRANSACTION;
create table Books(Id integer primary key, Title text, Author text,
Isbn text default 'not available');
insert into Books values(1,'War and Peace','Leo Tolstoy','978-0345472403');
insert into Books values(2,'The Brothers Karamazov',
'Fyodor Dostoyevsky','978-0486437910');
insert into Books values(3,'Crime and Punishment',
'Fyodor Dostoyevsky','978-1840224306');
COMMIT;

SQLite是不区分大小写的,但也有一些命令是大小写敏感的,比如GLOB和glob在SQLite的语句中有不同的含义。

4.列出所有的数据表

.tables

1.PNG

5.显示数据库结构

.schema

2.PNG

schema---方案、格式

6.显示表的结构

.schema 表名

3.PNG

7.导出某个表的数据

7.1导出表的完整sql语句

.dump 表名

4.PNG

dump--倾倒

7.2 导出表中的数据

.output 文件名

如果要显示字段名称设置 .headers on 具体请见下面8.3

10.PNG

完成后记得将输出重定向至屏幕.
sqlite> .output stdout
在EmEditor打开,如下所示:
image.png

8.从文件导入数据到SQLite表

.import 文件名 表名

可以使用sqlite3工具和.import命令将CSV或txt文件导入SQLite表。此命令接受文件名和表名。这里,文件名是用于指定从哪里获取数据,表名是要导入数据的表。
将一个CSV文件:data.csv的内容导入到不存在的表中,在导入时指定新表名称为“newTable”。 它将根据csv文件的数据创建一个表。文件:data.csv的内容如下
ID,NAME,AGE,ADDRESS,FEES
1,Maxsu,26,Haikou,36000
2,Minwang,25,Guangzhou,29900
为防止命令行实用程序尝试将输入的csv文件解释为其他格式,应先设置.mode csv,然后再用.import语句导入。


13.PNG

注: 检查系统默认的分隔符separator,必须与要导入的数据一致. 如果不一致可能导致sqlite字段分割错误.

查看分隔符使用命令 .show , 如果不一致可直接修改, 比如:
sqlite>.separator ","
将分隔符转为逗号.

9.数据显示相关命令

9.1设置分隔符:.separator 分隔符

我们可以首先运行 SELECT * FROM Names; ,可以看到默认的分隔符是 |
运行.separator *** 以后,再 SELECT * FROM Names;,可以看到分隔符已经变成 *** 了


5.PNG

9.2设置显示模式:.mode 模式

默认的是 list 显示模式,一般我们使用 column 显示模式,还有其他几种显示模式可以 .help 看 mode 相关内容。看看下面的图,和上面是不是显示的不一样了


6.PNG

7.PNG

9.3显示标题栏:.headers on

第一行显示字段名
8.PNG

9.4列出当前显示格式设置情况:.show

9.PNG

SQLite数据库支持加密和解密,但是免费版没有这个功能

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 转载,觉得这篇写 SQLAlchemy Core,写得非常不错。不过后续他没写SQLAlchemy ORM... ...
    非梦nj阅读 5,402评论 1 14
  • 一、基本简介 SQLite 是一个自持的(self-contained)、无服务器的、零配置的、事务型的关系型数据...
    锡和里的猿阅读 871评论 0 1
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,077评论 0 0
  • 忙忙碌碌的一天又结束了,想想今天才是星期一,但是感觉上了好几天班了,有些累了。一周上六天班,确实很累人。要休息好,...
    一路修行ld阅读 257评论 0 0
  • 跃跃欲试的好奇 遇事则断的勇气 朦胧的美感 在你什么都不太知道的时候最真实 心中有了对比 不经意间的瞬间 想法 行...
    遇几阅读 144评论 0 0