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

关注微信公众号

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com