linux下Sqlit安装及应用

本文只是对于sqlite的学习做一个最基础的总结,如果要系统的学习sqlite超级推荐这个网站:http://www.runoob.com/sqlite/sqlite-tutorial.html

下载安装sqlite

去sqlite官方首页下载想要的版本的sqlite源码包

[lwn@localhost sqlite]$ wget http://www.sqlite.org/sqlite-3.6.16.tar.gz

进入下载目录,解压文件sqlite-3.6.16.tar.gz解压后生成sqlite-3.6.16目录. cd 进入sqlite-3.6.16

[lwn@localhost sqlite]$ tar -xzvf sqlite-3.6.16.tar.gz 
[lwn@localhost sqlite]$ cd sqlite-3.6.16

执行配置脚本,生成相关文件之后使用make命令编译

[lwn@localhost sqlite-3.6.16]$ ./configure 
[lwn@localhost sqlite-3.6.16]$ make
[lwn@localhost sqlite-3.6.16]$ sudo make install

安装完成之后会在sqlite-3.6.16目录下生成sqlite3等文件,

测试

创建数据库

在任意目录下新建一个数据库,比如test.db ,

[lwn@localhost sqlite_test]$ sqlite3 test.db

出现如下提示:

SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

输入.help可以看到命令列表。
help命令中英文对照表:

命令描述
.backup ?DB? FILE备份 DB 数据库(默认是 “main”)到 FILE 文件。
.bail ON|OFF发生错误后停止。默认为 OFF。
.databases列出附加数据库的名称和文件。
.dump ?TABLE?以 SQL 文本格式转储数据库。如果指定了 TABLE 表,则只转储匹配 LIKE 模式的 TABLE 表。
.echo ON|OFF开启或关闭 echo 命令。
.exit退出 SQLite 提示符。
.explain ON|OFF开启或关闭适合于 EXPLAIN 的输出模式。如果没有带参数,则为 EXPLAIN on,及开启 EXPLAIN。
.header(s) ON|OFF开启或关闭头部显示。
.help显示消息。
.import FILE TABLE导入来自 FILE 文件的数据到 TABLE 表中。
.indices ?TABLE?显示所有索引的名称。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表的索引。
.load FILE ?ENTRY?加载一个扩展库。
.log FILE|off开启或关闭日志。FILE 文件可以是 stderr(标准错误)/stdout(标准输出)。
.mode MODE设置输出模式
.nullvalue STRING在 NULL 值的地方输出 STRING 字符串。
.output FILENAME发送输出到 FILENAME 文件。
.output stdout发送输出到屏幕。
.print STRING…逐字地输出 STRING 字符串。
.prompt MAIN CONTINUE替换标准提示符。
.quit退出 SQLite 提示符。
.read FILENAME执行 FILENAME 文件中的 SQL。
.schema ?TABLE?显示 CREATE 语句。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表。
.separator STRING改变输出模式和 .import 所使用的分隔符。
.show显示各种设置的当前值。
.stats ONOFF
.tables ?PATTERN?列出匹配 LIKE 模式的表的名称。
.timeout MS尝试打开锁定的表 MS 毫秒。
.width NUM NUM为 “column” 模式设置列宽度。
.timer ONOFF

在数据库文件中创建一张表COMPANY

用sql语句create table tab_name创建表,tab_name为表的名字,例如:创建一个名为COMPANY的表

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

用tables命令可以查看我们创建的表

sqlite> .tables
COMPANY

插入数据

用 insert into tab_name values()语句向已经创建的表中插入数据

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (1, 'Paul', 32, 'California', 20000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (2, 'Allen', 25, 'Texa', 15000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (3, 'Teddy', 23, 'Norway', 25000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00 );

查看表中数据

输入sql语句select * from tab_name; 可以查看表中的数据.

sqlite> .mode colum /*竖行显示*/
sqlite> .header on/*显示表头*/
sqlite> select * from COMPANY; /*注意sql命令末尾的分号";"不能丢。*/
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texa        15000.0
3           Teddy       23          Norway      25000.0
4           Mark        25          Rich-Mond   65000.0

可以用where关键字条件查找,比如查找年龄在30岁以下的

sqlite> select * from COMPANY where AGE<30;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texa        15000.0
3           Teddy       23          Norway      25000.0
4           Mark        25          Rich-Mond   65000.0

where关键字还可以搭配like,各种运算符等使用。这里不一一列举了。

更新表中数据

如果表中的数据发生变化我们用update命令更新表中的数据
例如Allen搬家啦,从Texas搬到了Newyork。

sqlite>  update COMPANY set ADDRESS = 'Newyork' where NAME = 'Allen';
sqlite> select * from COMPANY where NAME = 'Allen';
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Newyork     15000.0

看看,Allen地址是不是变啦。

删除表中的记录

用delect语句来删除表中的记录
例如:如果Mark从公司离职了,我们要把他的信息删除掉,命令如下:

sqlite> delete from COMPANY where NAME = 'Mark';
sqlite> select * from COMPANY;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Newyork     15000.0
3           Teddy       23          Norway      25000.0
sqlite>

删除之后是不是查询不到Mark的记录了呢。

删除表

刚刚是删除了表中的记录用delete语句,那如果要删除整张表就用drop语句
例如:由于公司发展不好,需要将该部门解散。需要删掉这个部门所有的信息即删除这张表。

sqlite> .tables
COMPANY
sqlite> drop table COMPANY;
sqlite> .tables
sqlite>

数据库的基本操作都在这里了,懂了这些基本操作以后才能方便我们后续编程。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值