數據庫介紹
數據庫是“按照數據結構來組織、存儲和管理數據的倉庫”。是一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合。
數據庫類型
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)