Linux下安装及操作SQL数据库

———————————————————————————————————————

主机操作系统:Centos 6.7

安装配置:SQL数据库
邮箱:leiyuxing205@gmail.com
———————————————————————————————————————

目录

一.SQL数据库简介

1.定义

2.体系

3.优点

4.组成

二.检查硬件是否满足要求

三.数据库管理

1.创建数据库文件

2.查看目前的数据库。

3.创建表

4.列出表

5.查找某个表

 6.插入记录

7.查询

8.模式查看表结构

9.从文件向表中导入数据

 10.生成形成数据库表的SQL脚本

 11.数据导出

 12.将输出恢复到标准输出

四.特殊用法

五.安装rlwrap完成上下方向键寻找历史命令

1.下载rlwrap工具

2.安装rlwrap

3.查看rlwrap命令

4.使用rlwrap


一.SQL数据库简介

1.定义

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

2.体系

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

3.优点

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

4.组成

1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项
3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
5.用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。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之后的命令行里面实现上下寻找历史命令

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的雷神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值