SQlite命令行工具的使用

本文介绍了SQLite数据库的安装、命令行使用方法、SQL语句执行、表创建、数据插入、查询、更新、删除等基本操作,并提供了SQLiteManager Firefox扩展程序的推荐使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sqlite安装 
现在各大Linux发型版均有现成的软件包可供安装,而且大部份系统都是自带有的,想确认系统里有没有运行下
$sqlite3 
非Linux系统到:http://www.sqlite.org/download.html 下 载安装
接下来就是sqlite命令行工具的使用

打开或创建数据库 
$sqlite3 test.db3 
这样就能打开或者创建一个新的数据库文件
$sqlite3 test.db3
SQLite version 3.6.23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 
它看起来就是这个样子

SQlite内置命令 
它除了能执行SQL语句以外还提供一组内置的命令,它们是以点. 开始,比如说查看帮助信息就是 .help 退 出是.exit 跟 .quit

创建表 
在命令行里大部份的SQL语句它都是支持的,现在来新建两个表

sqlite>create table Artists (
--->ArtistID INTEGER PRIMARY KEY,
--->ArtistName TEXT); 
sqlite 对SQL语句大小写不敏感,所以大写小写随便
sqlite>create table CDs (
--->CDID INTEGER PRIMARY KEY,
--->ArtistID INTEGER NOT NULL,
--->Title TEXT NOT NULL,
--->Date TEXT); 

这里注意,除了INTEGER PRIMARY KEY其它字段是都可以是无类型的,也就是不关声明什么或者不声明,这个字段是可以存储任何数据的。

插入数据 
sqlite>insert into Artists (ArtistID,ArtistName) values (NULL,'Peter Gabriel');
sqlite>insert into Artists (ArtistID,ArtistName) values (NULL,'Bruce Hornsby');
sqlite>insert into Artists (ArtistID,ArtistName) values (NULL,'Lyle Lovett');
sqlite>insert into Artists (ArtistID,ArtistName) values (NULL,'Beach Boys'); 
sqlite>insert into CDs (CDID,ArtistID,Title,Date) values (NULL,1,'So','1984');
sqlite>insert into CDs (CDID,ArtistID,Title,Date) values (NULL,1,'Us','1992');
sqlite>insert into CDs (CDID,ArtistID,Title,Date) values (NULL,2,'The Way It Is','1986');
sqlite>insert into CDs (CDID,ArtistID,Title,Date) values (NULL,2,'Scenes from the Southside','1990');
sqlite>insert into CDs (CDID,ArtistID,Title,Date) values (NULL,1,'Security','1990');
sqlite>insert into CDs (CDID,ArtistID,Title,Date) values (NULL,3,'Joshua Judges Ruth','1992');
sqlite>insert into CDs (CDID,ArtistID,Title,Date) values (NULL,4,'Pet Sounds','1966'); 
sqlite是支持导入sql文件的,只要使用内置命令.read 即可,比如说我们将以上的命令建成一个sql文件, 命名为insert_table.sql

insert into Artists (ArtistID,ArtistName) values (NULL,’Peter Gabriel’);
insert into Artists (ArtistID,ArtistName) values (NULL,’Bruce Hornsby’);
insert into Artists (ArtistID,ArtistName) values (NULL,’Lyle Lovett’);
insert into Artists (ArtistID,ArtistName) values (NULL,’Beach Boys’);
insert into CDs (CDID,ArtistID,Title,Date) values (NULL,1,’So’,'1984′);
insert into CDs (CDID,ArtistID,Title,Date) values (NULL,1,’Us’,'1992′);
insert into CDs (CDID,ArtistID,Title,Date) values (NULL,2,’The Way It Is’,'1986′);
insert into CDs (CDID,ArtistID,Title,Date) values (NULL,2,’Scenes from the Southside’,'1990′);
insert into CDs (CDID,ArtistID,Title,Date) values (NULL,1,’Security’,'1990′);
insert into CDs (CDID,ArtistID,Title,Date) values (NULL,3,’Joshua Judges Ruth’,'1992′);
insert into CDs (CDID,ArtistID,Title,Date) values (NULL,4,’Pet Sounds’,'1966′);

接着在命令行里运行
sqlite>.read insert_table.sql

表查询 
来看看现在这两张表里都有那些内容,执行
sqlite>select * from Artists; 

sqlite>select * from CDs; 
如果要同时看表头,请在运行查询语句前打开headers选项
sqlite>.headers ON 
输出结果看起来应该是这样子


ArtisID|ArtistName
1 |Peter Gabriel
2 |Bruce Hornsby
3 |Lyle Lovett
4 |Beach Boys


CDID|ArtisID|Title |Date
1 |1 |So |1984
2 |1 |Us |1992
3 |2 |The Way It Is |1986
4 |2 |Scenes from the Southside|1990
5 |1 |Security |1990
6 |3 |Joshua Judges Ruth |1992
7 |4 |Pet Sounds |1966

其它的一些查询语句
sqlite>SELECT Title AS AlbumName FROM CDs;

sqlite>SELECT Title FROM CDs WHERE Date>=1990 ORDER BY Title;

sqlite>SELECT Date FROM CDs;

sqlite>SELECT DISTINCT Date FROM CDs;

sqlite>SELECT Title FROM CDs GROUP BY ArtistID;

多表查询 
执行
sqlite>SELECT t1.ArtistName,CDs.Title FROM Artists t1, CDs WHERE t1.ArtistID=CDs.ArtistID 
得到的结果
ArtistName |Title
Peter Gabriel|So
Peter Gabriel|Us
Peter Gabriel|Security
Bruce Hornsby|The Way It Is
Bruce Hornsby|Scenes from the Southside
Lyle Lovett |Joshua Judge Ruth
Beach Boys |Pet Sounds

更新字段 
插入一条数据
sqlite>insert into Artists (ArtistID,ArtistName) values (NULL,'Supernatural'); 
如果要更改歌手名字为Santana
sqlite>UPDATE Artists SET ArtistName ='Santana' WHERE ArtistID=5; 
即可

删除字段 
首先执行
sqlite>select * FROM CDs WHERE Title LIKE 'Super%'; 
看看是不是想要删除的数据,是的话执行
sqlite>DELETE FROM CDs WHERE Title LIKE 'Super%'; 
再运行
sqlite>select * FROM CDs WHERE Title LIKE 'Super%'; 
看看是不是已经删除了?

如果嫌上面的命令行不够直观高效,而你又非常喜欢多用鼠标,那么推荐你安装SQLite Manager 这个Firefox扩展程序,它真的非常方便。

转载于:https://my.oschina.net/zhangdapeng89/blog/96556

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值