可以结构化存储大量的数据信息,方便用户进行有效的检索和访问;
可以有效地保持数据信息的一致性、完整性,降低数据冗余;
可以满足应用的共享与安全方面的要求
关系数据库:
Oracle,MySQL
SQLServer、Sybase
Informix、access
DB2、FoxPRO
应用举例:
12306用户信息系统
淘宝账号系统
联通手机号信息系统
银行用户账号系统
网站用户信息系统
yum -y remove 数据库名
yum -y install ncurses ncurses-devel cmake
//ncurses-devel是字符终端下屏幕控制的基本库
//cmake跨平台编译安装工具
useradd -s /sbin/nologin mysql //创建不可登录的用户
tar zxvf mysql-boost-5.7.20.tar.gz //解包
cd mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
make && make install //编译安装
cd
chown -R mysql:mysql /usr/local/mysql/ //设置属主和数组
rm -rf /etc/my.cnf //如果原来的/etc/文件夹下有 my.cnf 文件可以删除
vi /etc/my.cnf
[client]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server = utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile //使配置立即生效
mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
cd /usr/local/mysql/
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl daemon-reload //守护进程重新加载
systemctl start mysqld
systemctl enable mysqld
netstat -anpt | grep 3306 //查看端口信息
mysql -uroot -p //初始化密码,第一次以空密码登录
mysqladmin -uroot -p password 'abc123' //给root账号设置密码为abc123
mysql -uroot -pabc123 //以"abc123"为密码登录数据库
mysql> show databases; //查看当前mysql服务器中包含的库
mysql> show tables; //查看当前所在库中包含的表
mysql> exit
Bye
[root@localhost ~]#
Structured Query Language的缩写,即结构化查询语言
关系型数据库的标准语言
用于维护管理数据库:包括数据查询、数据更新、访问控制、对象管理等功能
DDL (Data Definition Language,数据定义语言)﹔
用来建立数据库、数据库对象和定义字段,如 CREATE、ALTER、DROP。
DML (Data Manipulation Language,数据操纵语言)∶
用来插入、删除和修改数据库中的数据,如 INSERT、UPDATE、DELETE。
DQL (Data Query Language,数据查询语言):用来查询数据库中的数据,如 SELECT。
DCL (Data Control Language,数据控制语言):
用来控制数据库组件的存取许可、存取权限等,如 COMMIT、ROLLBACK、GRANT、REVOKE。
查看数据库列表信息的命令
show databases;
查看数据库中的数据表信息
use 数据库名;
show tables;
显示数据表的结构(字段)
describe [数据库名.]表名;
或
use 数据库名;
describe 表名;
create database 数据库名;
刚创建的数据库是空的,其中不包含任何表,在/usr/local/mysql/data目录下会自动生成一个与新建的库名相同的空文件夹
create table 表名(字段 1 名称 类型,字段 1 名称 类型,...,PRIMARY KEY(主键名))
创建表之前,应先明确数据表格的结构、各字段的名称和类型等信息。
DROP TABLE 库名.表名