———————————————————————————————————————
主机操作系统:Centos 6.7
安装配置:SQL数据库
邮箱:leiyuxing205@gmail.com
———————————————————————————————————————
目录
一.SQL数据库简介
1.定义
SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
2.体系
SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。
3.优点
4.组成
1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
二.检查硬件是否满足要求
1.确保系统有足够的 RAM 和交换空间大小,运行以下命令:
#grep MemTotal /proc/meminfo
#grepSwapTotal /proc/meminfo
$ grep MemTotal /proc/meminfo
MemTotal: 1939728 kB
$ grep SwapTotal /proc/meminfo
SwapTotal: 4194300 kB
注:所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。
2.确保有足够的磁盘空间。Oracle 10g软件大约需要 2.5GB 的可用磁盘空间,数据库则另需至少1.2G的磁盘空间
3./tmp 目录至少需要 400MB 的可用空间。
要检查系统上的可用磁盘空间,运行以下命令:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 26G 11G 14G 46% /
tmpfs 948M 312K 947M 1% /dev/shm
4.检查系统是否已安装所需的开发包,使用rpm -qa命令,确保以下包已成功安装,若还没安装可到以下地址进行先下载:
http://www.sqlite.org/download.html
解压并编译sqlite-autoconf-3140100
[leiyuxing@centos6 ~]$ tar -zxvf sqlite-autoconf-3140100.tar.gz
[leiyuxing@centos6 ~]$ cd sqlite-autoconf-3140100
[leiyuxing@centos6 sqlite-autoconf-3140100]$ ./configure
[leiyuxing@centos6 sqlite-autoconf-3140100]$ make
[leiyuxing@centos6 sqlite-autoconf-3140100]$ sudo make install
三.数据库管理
1.创建数据库文件
[leiyuxing@centos6 sqlite-autoconf-3140100]$ sqlite3 mydbtest
SQLite version 3.14.1 2016-08-11 18:53:32
Enter ".help" for usage hints.
sqlite>
出现sqlite>提示符
2.查看目前的数据库。
注意数据库操作命令以 ”.”开头。
sqlite> .database
seq name file
--- --------------- ----------------------------------------------------------
0 main /home/leiyuxing/sqlite-autoconf-3140100/mydbtest
列出当前使用的数据库mydbtest
数据库mydbtest文件创建在执行命令# sqlite3 mydbtest时,命令行所在的目录。
3.创建表
sqlite> create table mytable(name varchar(80),num smallint);
4.列出表
查看创建了哪些表
sqlite> .tables
Mytable
5.查找某个表
sqlite> .tables my
sqlite> .tables mytable
Mytable
6.插入记录
sqlite> insert into mytable values('su',21);
sqlite> insert into mytable values('tang',20);
sqlite> insert into mytable values('lei',22);
7.查询
sqlite> select * from mytable;
su|21
tang|20
lei|22
8.模式查看表结构
sqlite> .schema
CREATE TABLE mytable(name varchar(80),num smallint);
9.从文件向表中导入数据
创建文件data.txt,内容如下
[leiyuxing@centos6 sqlite-autoconf-3140100]$ vim data.txt
LTian Hong|19
Eng Lish|20
Gao Yuan|23
Wei Da|26
其中“|”是分隔符,分隔符左右不要有空格
导入数据前查询
sqlite> select * from mytable;
su|21
tang|20
lei|22
导入数据
sqlite> .import data.txt mytable
data.txt:2: expected 2 columns but found 1 - filling the rest with NULL
data.txt:4: expected 2 columns but found 1 - filling the rest with NULL
data.txt:6: expected 2 columns but found 1 - filling the rest with NULL
导入数据后查询
sqlite> select * from mytable;
su|21
tang|20
lei|22
n Hong|19
|
Eng Lish|20
|
Gao Yuan|23
|
Wei Da|26
10.生成形成数据库表的SQL脚本
sqlite> .dump mytable
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE mytable(name varchar(80),num smallint);
INSERT INTO "mytable" VALUES('su',21);
INSERT INTO "mytable" VALUES('tang',20);
INSERT INTO "mytable" VALUES('lei',22);
INSERT INTO "mytable" VALUES('n Hong',19);
INSERT INTO "mytable" VALUES('',NULL);
INSERT INTO "mytable" VALUES('Eng Lish',20);
INSERT INTO "mytable" VALUES('',NULL);
INSERT INTO "mytable" VALUES('Gao Yuan',23);
INSERT INTO "mytable" VALUES('',NULL);
INSERT INTO "mytable" VALUES('Wei Da',26);
COMMIT;
11.数据导出
将输出定向到文件
sqlite> .output create.sql
sqlite> .dump mytable
将数据库表生成的SQL脚本输出到create.sql文件
12.将输出恢复到标准输出
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:
退出数据库,使用.quit或.q
sqlite> .quit
[leiyuxing@centos6 sqlite-autoconf-3140100]$
四.特殊用法
命令行下直接使用
[leiyuxing@centos6 sqlite-autoconf-3140100]$ sqlite3 mydbtest "select * from mytable;"
su|21
tang|20
lei|22
n Hong|19
|
Eng Lish|20
|
Gao Yuan|23
|
Wei Da|26
五.安装rlwrap完成上下方向键寻找历史命令
1.下载rlwrap工具
http://download.csdn.net/detail/sharqueen/5433087
2.安装rlwrap
[leiyuxing@centos6 ~]$ tar -zxf rlwrap-0.30.tar.gz
[leiyuxing@centos6 ~]$ cd rlwrap-0.30
[leiyuxing@centos6 rlwrap-0.30]$ ./configure
[leiyuxing@centos6 rlwrap-0.30]$ make
[leiyuxing@centos6 rlwrap-0.30]$ sudo make install
3.查看rlwrap命令
[leiyuxing@centos6 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/
4.使用rlwrap
vim ~/.bash_profile
--使之生效,或是重新登录sql用户
[leiyuxing@centos6 ~]$ source ~/.bash_profile
[leiyuxing@centos6 ~]$ sqlplus mydbtest
SQLite version 3.14.1 2016-08-11 18:53:32
Enter ".help" for usage hints.
sqlite>
就可以在输入 sqlplusmydbtest之后的命令行里面实现上下寻找历史命令