SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2019年已经有19个年头,SQLite也迎来了一个版本 SQLite 3已经发布。----百度百科
系统:ubuntu16.04
sudo apt-get install sqlite3
主要是做系统相关工作,并不真正操作数据库。
例如:
- .quit
退出
- .help
帮助
- .exit
退出
- .schema
查看数据库结构
-
- .databases
查看数据库列表
-
- .table
查看表列表
对数据库进行‘增删改查’的命令
sqlite3 student.db # 创建一个数据库并进入
create table stu(id integer,name char,phone integer,addr char); #创建一张含有学生信息的表
.schema #系统命令不需要分号
在sqlite中,数据的定义方式为 数据名 数据类型
如id integer
就表示定义可一个整型的数据来保存id。字符串用char
定义。sql命令以;
结束,若命令后无分号,视为命令还未结束,可继续输入命令。
insert into stu values(20201,'zhangsan','13955555555','beijing');
select * from stu;# 查看stu表中的数据
insert into stu (id,name) values (20202,'lisi'); #注意参数顺序要对应
select * from stu;
update stu set addr='sichuan' where id=20202;
select * from stu;
这样就将id为20202的学生的地址给更新了,如果将命令where id = 20201
,则id为20201的学生的地址将会被覆盖。
可以同属更新多个数据:
update stu set addr='shandong',phone=15155555555 where name='lisi';
将要更新的多个数据用,
隔开。
使用and 和 or:
将满足条件的数据更新:
update stu set addr = 'shanghai' where addr='beijing' or addr = 'shandong';
为每个学生增加分数列:
alter table stu add column score integer; #指定表,然后添加一列,类型为整型。
.schema
delete from stu where id=20202;
发现已经将id为20202的学生信息删掉了,同样的where
后面可以用and
和or
。也可以根据名字等其他信息进行删除,只需将id
换为name
等。
sqlite的删除一列较为麻烦,需要按照以下步骤进行操作:
删除分数列(即保留id name addr phone):
create table stu1 as select id ,name,phone,addr from stu;
利用系统命令.table
查看数据库下创建的表。其中包含刚刚创建的。然后可以发现stu1表中只保留了除分数以外的信息。
新表中score
没了。
drop table stu;
.table
alter table stu1 rename to stu;