Linux下安装及使用sqlite3数据库

数据库

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

SQL数据库

简介

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。

结构

SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。

优点

1)非过程化语言
2)统一的语言
3)是所有关系数据库的公共语言

硬件要求

查看RAM和交换空间

[fanmaolin@Centeros ~]$ grep MemTotal /proc/meminfo 
MemTotal:        1004768 kB
[fanmaolin@Centeros ~]$ grep SwapTotal /proc/meminfo 
SwapTotal:       2097148 kB

注:所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。

检查/tmp目录可用空间

至少需要400M可用空间

[fanmaolin@Centeros ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        38G  7.2G   29G  21% /
tmpfs           491M   72K  491M   1% /dev/shm

检查是否已安装sqlite3

[fanmaolin@Centeros ~]$ rpm -qa | grep sqlite
qt-sqlite-4.6.2-28.el6_5.x86_64
sqlite-devel-3.6.20-1.el6.x86_64
sqlite-3.6.20-1.el6.x86_64

下载安装sqlite3

http://www.sqlite.org/download.html

这里写图片描述

[fanmaolin@Centeros ~]$ rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
Transferring sqlite-autoconf-3200000.tar.gz...
  100%    2505 KB 2505 KB/s 00:00:01       0 Errors

?[fanmaolin@Centeros ~]$ ls
Desktop    Downloads                fl2440  Pictures                        src        test    x.c
dir        dropbear-0.53.1          git     Public                          tcode1     tftp    zuoye
Documents  dropbear-0.53.1.tar.bz2  Music   sqlite-autoconf-3200000.tar.gz  Templates  Videos  桌面
[fanmaolin@Centeros ~]$ tar -zxvf sqlite-autoconf-3200000.tar.gz

省略

[fanmaolin@Centeros ~]$ cd sqlite-autoconf-3200000
[fanmaolin@Centeros sqlite-autoconf-3200000]$ ./configure
省略
[fanmaolin@Centeros sqlite-autoconf-3200000]$ make
省略
[fanmaolin@Centeros sqlite-autoconf-3200000]$ sudo make install
省略

对数据库进行操作

创建数据库文件

[fanmaolin@Centeros sqlite-autoconf-3200000]$ sqlite3 mydbtest
SQLite version 3.20.0 2017-08-01 13:24:15
Enter ".help" for usage hints.
sqlite> 
出现sqlite>提示符

查看当前数据库

sqlite> .database
main: /home/fanmaolin/sqlite-autoconf-3200000/mydbtest
列出当前使用的数据库mydbtest。

创建表

qlite> create table mytable(name varchar(80),num smallint);

列出表

sqlite> .tables
mytable

查找表

.tables+name

sqlite> .tables mytable 
mytable

插入数据

sqlite> insert into mytable values("fanmaolin",18);
sqlite> insert into mytable values("zhanghuan",17);

查询表内容

sqlite> select * from mytable;
fanmaolin|18
zhanghuan|17

查看表结构

sqlite> .schema
CREATE TABLE mytable(name varchar(80),num smallint);

退出数据库

sqlite> .quit
或者
sqlite> .q

从文件向表中导入数据

[fanmaolin@Centeros ~]$ cd sqlite-autoconf-3200000
[fanmaolin@Centeros sqlite-autoconf-3200000]$ vim test.txt #新建文件,输入下面内容
 1 zhang san|20
  2 li si|19
  3 wang wu|17
  4 wang ma|21
  其中“|”是分隔符,分隔符左右不要有空格

向表中导入文件的数据

[fanmaolin@Centeros sqlite-autoconf-3200000]$ sqlite3 mydbtest
SQLite version 3.20.0 2017-08-01 13:24:15
Enter ".help" for usage hints.
sqlite> select * from mytable;#导入前查询
fanmaolin|18
zhanghuan|17
sqlite> .import test.txt mytable #导入数据
sqlite> select * from mytable;#导入后查询
fanmaolin|18
zhanghuan|17
zhang san|20
li si|19
wang wu|17
wang ma|21

生成数据库表的SQL脚本

sqlite> .dump mytable 
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE mytable(name varchar(80),num smallint);
INSERT INTO mytable VALUES('fanmaolin',18);
INSERT INTO mytable VALUES('zhanghuan',16);
INSERT INTO mytable VALUES('zhang san',20);
INSERT INTO mytable VALUES('li si',19);
INSERT INTO mytable VALUES('wang wu',17);
INSERT INTO mytable VALUES('wang ma',21);
COMMIT;

导出表中数据

sqlite> .output create.sql
sqlite> .dump mytable 
将数据库表生成的SQL脚本输出到create.sql文件

将输出恢复到标准输出

sqlite> .output stdout

打印SQLite环境变量

sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width: 
    filename: mydbtest

sqlite> .q

命令行下直接使用

[fanmaolin@Centeros sqlite-autoconf-3200000]$ sqlite3 mydbtest "select * from mytable;"
fanmaolin|18
zhanghuan|17
zhang san|20
li si|19
wang wu|17
wang ma|21

安装rlwrap让sqlite3使用更简单

按上下键可以让历史命令回调

下载安装

工具下载地址:
http://download.csdn.NET/detail/sharqueen/5433087

[fanmaolin@Centeros ~]$ tar -zvxf rlwrap-0.30.tar.gz 
省略
[fanmaolin@Centeros ~]$ cd rlwrap-0.30
[fanmaolin@Centeros rlwrap-0.30]$ ./configure
省略
[fanmaolin@Centeros rlwrap-0.30]$ make
省略
[fanmaolin@Centeros rlwrap-0.30]$ sudo make install
省略
[fanmaolin@Centeros rlwrap-0.30]$ rlwrap
Usage: rlwrap [options] command ...

Options:
  -a[password:]              --always-readline[=password:]
  -A                         --ansi-colour-aware
  -b <chars>                 --break-chars=<chars>
  -c                         --complete-filenames
  -C <name|N>                --command-name=<name|N>
  -D <0|1|2>                 --history-no-dupes=<0|1|2>
  -f <completion list>       --file=<completion list>
  -F <format string>         --history-format=<format string>
  -h                         --help
  -H <file>                  --history-filename=<file>
  -i                         --case-insensitive
  -l <file>                  --logfile=<file>
  -n                         --no-warnings
  -p[ANSI colour spec]       --prompt-colour[=ANSI colour spec]
  -P <input>                 --pre-given=<input>
  -q <chars>                 --quote-characters=<chars>
  -m[newline substitute]     --multi-line[=newline substitute]
  -r                         --remember
  -v                         --version
  -s <N>                     --histsize=<N> (negative: readonly)
  -t <name>                  --set-term-name=<name>

bug reports, suggestions, updates:
http://utopia.knoware.nl/~hlub/uck/rlwrap/

安装完成

使用

[fanmaolin@Centeros ~]$  rlwrap sqlite3
SQLite version 3.20.0 2017-08-01 13:24:15
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .tables

**如果不想在每次使用前加rlwrap,则需要在~/.bash_profile下
添加:
alias sqlite3=’rlwrap sqlite3’**

[fanmaolin@Centeros ~]$ vim ~/.bash_profile
alias sqlite3='rlwrap sqlite3'  #添加
[fanmaolin@Centeros ~]$ source ~/.bash_profile

查看效果:

[fanmaolin@Centeros ~]$ sqlite3
SQLite version 3.20.0 2017-08-01 13:24:15
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> 

总结:

注意sqlite语法格式

如进行插入数据等操作时,结尾要记住加“;”

sqlite> insert into mytable values("fanmaolin",18);
进行退出操作时。前面要加“.”
sqlite> .q

如果你不慎进入...>

不必惊慌,淡定的输入“;”即可解决困境

   ...> ;
Error: near "vim": syntax error
sqlite> 

参考链接:http://blog.csdn.net/lyx_win/article/details/52227377
http://blog.csdn.net/xiongzhizhu/article/details/52311991

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Linux下可以使用命令行工具sqlite3来操作SQLite数据库SQLite是一种轻量级的关系型数据库,它的数据存储在单个文件中,非常适合小型项目或嵌入式设备。 要使用sqlite3,首先需要安装它。在Ubuntu或Debian系统中,可以使用以下命令安装: sudo apt-get install sqlite3 安装完成后,可以使用以下命令打开一个SQLite数据库文件: sqlite3 /path/to/database/file.db 在sqlite3命令行中,可以执行SQL语句来创建表、插入数据、查询数据等操作。例如,创建一个名为“users”的表: CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ); 插入一条数据: INSERT INTO users (name, age) VALUES ('Tom', 25); 查询数据: SELECT * FROM users; 更多操作可以参考SQLite官方文档。 ### 回答2: SQLite3是一种内嵌式的关系型数据库,它拥有小巧灵活、可移植性强的特点,并且在很多平台上都可以使用。常见的Linux操作系统中一般会自带SQLite3,因此我们可以利用这一点轻松地在 Linux 系统中使用 SQLite3 数据库。 首先我们需要在命令行界面下打开 SQLite 命令行工具,这可以通过在终端中输入 sqlite3 命令实现。此时会进入 SQLite3 的 shell 窗口,在这个窗口中,我们可以输入 SQL 语句和 SQLite 提供的命令来操作数据库。 接下来,我们可以创建一个新的数据库文件。可以使用如下命令创建数据库: ``` sqlite3 database.db ``` 这个命令将会在当前目录下创建一个名为 database.db 的 SQLite3 数据库文件。如果指定的文件已经存在,这个命令会直接打开这个数据库文件。 接着,我们可以使用 SQLite3 的语言来执行数据库操作,例如我们可以使用如下命令创建一个名为 users 的表格: ``` CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER NOT NULL ); ``` 在这个命令中,我们首先指定了表的名称为 users,并用括号包含了我们想要存储的每一个字段。我们定义了三个字段,分别是 id、name 和 age。其中,id 字段被定义为 PRIMARY KEY,这意味着它将作为这个表格的主键,确保每一行数据都具备唯一性。而 name 和 age 字段则分别被定义为 TEXT 和 INTEGER 类型,并且我们也为它们定义了 NOT NULL 属性,禁止这两个字段为空值。 我们可以使用 INSERT INTO 语句向 users 表格中添加数据: ``` INSERT INTO users (name, age) VALUES ("Tom", 20); ``` 在这个例子中,我们向 users 表格中添加了一行数据,字段 name 的值为 "Tom",age 的值为 20。我们没有指定 id 字段,因为它是自动生成的。若果我们需要查看 users 表格中的所有数据,可以使用 SELECT * FROM users 命令。 总的来说,SQLite3 是一个功能强大而且简单易用的数据库系统,并且它适用于多种不同的平台。在 Linux 操作系统上,SQLite3 是一个非常好的选择,因为它可以帮助我们轻松地管理和操作一些小型的数据。它还可以通过 Python 和其他语言的 API 来非常简单地实现许多数据操作任务。 ### 回答3: Linux使用SQLite3数据库是一种比较流行的数据库运用方式,因为SQLite3是一款轻量级的、开源的数据库,数据存储在单一文件中,所以在单个用户下使用SQLite3是非常方便的。 SQLite3的安装过程很简单,只需要通过apt-get命令进行安装即可。在安装完成后,就可以在linux服务器中使用sqlite3命令行进行数据库的管理。 SQLite3的使用可以分为以下几个步骤: 1. 创建数据库 使用sqlite3数据库之前,需要先创建一个数据库文件,可以使用如下的命令创建: $ sqlite3 test.db 2. 创建数据表 使用CREATE TABLE语句可以在数据库中创建数据表,例如: CREATE TABLE users ( id INT PRIMARY KEY, name TEXT, age INT ); 3. 插入数据 插入数据可以使用INSERT INTO语句,例如: INSERT INTO users(id, name, age) VALUES (1, 'Tom', 20); 4. 查询数据 可以使用SELECT语句查询数据,例如: SELECT * FROM users; 5. 更新数据 使用UPDATE语句可以更新数据,例如: UPDATE users SET age = 21 WHERE id = 1; 6. 删除数据 使用DELETE语句可以删除数据,例如: DELETE FROM users WHERE id = 1; SQLite3在使用过程中有许多的优点,比如轻量级、文件型数据库、高性能等等。不过也有些缺点,比如不支持并发访问、不支持存储过程等。所以,如何选择数据库还需要结合具体应用场景来进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值