数据库介绍
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库类型
1、关系型数据库(mysql、mariadb 、ooracle)
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:
- 易于维护:都是使用表结构,格式一致;
- 使用方便:SQL语言通用,可用于复杂查询;
- 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
- 读写性能比较差,尤其是海量数据的高效率读写;
- 固定的表结构,灵活度稍欠;
- 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈
2、非关系型数据库(redias、mongodb)
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:
- 格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
- 速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
- 高扩展性;
- 成本低:nosql数据库部署简单,基本都是开源软件。
缺点:
- 不提供sql支持,学习和使用成本较高;
- 无事务处理;
- 数据结构相对复杂,复杂查询方面稍欠。
sql语句主要分为:
DQL:数据查询语言,用于对数据进行查询,如select
DML:数据库操作语言,对数据库进行增删改查,如:insert,update,delete
TPL:事物处理语言,对事物进行处理,包括begin,transaction,commit,rollback
DCL:数据控制语言,如grant,revoke
DDL:数据定义语言:进行数据库,表的管理等,如create,drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor
sql是一门特殊的语言,专门用来操作关系型数据库,不区分大小写
mariadb安装
配置yum文件
vim /etc/yum.repos.d/mariadb.repo
[mariadb] name = MariaDB baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64/ gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1
yum 安装
yum install MariaDB
安装后的设定
mysql_secure_installation
客户端程序:
mysql:交互式的client工具
mysqldump:备份工具,基于mysql协议向mysqld服务发起查询请求,并将查询的所有数据转换成insert等写操作语句保存在文件当中
mysqladmin:基于mysql协议管理mysqld
mysqlimport:数据导入工具
mariadb默认端口是:3306
客户端类型应用程序的可用选项(mysql):
-u,--user= 指定用户 -h,--host= 远程登陆主机host -p,--password= 指定用户密码 -P,--port= 端口 -D,--database= 指定使用的数据库名称 -e 'SQL' 以shell命令行形式运行
查看数据库 show databases;
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | zabbix | +--------------------+ 4 rows in set (0.00 sec)
创建数据库tsetdb create database testdb;
MariaDB [(none)]> create database testdb; Query OK, 1 row affected (0.01 sec)
查看新建数据库状态 show create database testdb;
MariaDB [(none)]> show create database testdb; +----------+-------------------------------------------------------------------+ | Database | Create Database | +----------+-------------------------------------------------------------------+ | testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+-------------------------------------------------------------------+ 1 row in set (0.00 sec)
修改数据库字符集为utf8 alter database testdb character set utf8;
MariaDB [(none)]> alter database testdb character set utf8; Query OK, 1 row affected (0.00 sec)
使用数据库testdb use testdb;
MariaDB [(none)]> use testdb; Database changed MariaDB [testdb]>
删除数据库testdb drop database testdb;
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | testdb | | zabbix | +--------------------+ 5 rows in set (0.00 sec) MariaDB [(none)]> drop database testdb; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | zabbix | +--------------------+ 4 rows in set (0.00 sec)
MariaDB [(none)]> alter database testdb character set utf8; Query OK, 1 row affected (0.00 sec)