mariadb(第一章)

 

數據庫介紹

1.什麼是數據庫?
簡單的說,數據庫就是一個存放數據的倉庫,這個倉庫是按照必定的數據結構(數據結構是指數據的組織形式或數據之間的聯繫)來組織,存儲的,咱們能夠經過數據庫提供的多種方法來管理數據庫裏的數據
更簡單的理解形象,數據庫和咱們生活追蹤存放雜物的儲物間倉庫性質同樣,區別只是存放的東西不通,雜物間存放實體的物件,而數據庫裏存儲的是數據,這樣咱們就對數據庫有一個初步瞭解了。
數據庫誕生於1950年,隨着信息技術的發展和人類社會的不斷進步,特別是2000年後,數據庫不在僅僅是存儲和管理數據了,而轉變成用戶所須要的各類數據管理的方式,數據庫有不少種類和功能,從最簡單的存儲有各類數據的表格到可以進行海量數據存儲的大型數據庫系統都在各個方面獲得了普遍的應用。
 

關係型數據庫

         (1)關係型數據庫介紹mysql

                  關係型數據庫模型是把複雜的數據結構歸結爲簡單的二元關係(既二維格式表)。例如宏福教育某一期的學生關係就是一個二元關係,在關係型數據庫中,對數據的操做幾乎所有創建在一個或多個關係表上,經過對這些關聯表格分類,合併,鏈接或選取等運算來實現數據的管理。web

       關係型數據庫誕生距今已經有40多年了,從理論產生髮展到現實產品,例如:你們最多見的mysql和oracle數據庫,oracle在數據庫領域裏上升到了霸主的地位,造成每一年高達數百億美圓的龐大產業市場,而mysql也是不容忽視的數據庫,以致於被oracle中心收購了。sql

    (2)關係型數據庫表之間的關係列舉mongodb

 

 

 

 

非關係型數據庫(nosql)

非關係型數據庫也稱之爲nosql數據庫,請注意,nosql的本意是「not only SQL」,指的是非關係型數據庫,而不是「no SQL」的意思,所以nosql的產生並非要完全否認關係型數據庫,而是做爲傳統關係型數據庫的一個有效補充,NoSQL數據庫在特定的場景下能夠發揮出不可思議的高效率和高性能。數據庫

隨着互聯網的興起,超大規模和高併發量的微博,微信,SNS類型的web2.0純動態網站已經顯得力不從心,暴露了不少難以克服的問題,例如:傳統的關係型數據庫IO瓶頸,性能瓶頸都難以有效突破,因而開始出現了大批針對特定場景,以高性能和使用便利爲目的的功能特異化的數據庫產品,NoSQL類的數據庫就是在這樣的情景中誕生並獲得了很是迅速的發展vim

NoSQL是非關係型數據庫的廣義定義。它打破了長久以來關係型數據庫與ACID理論大一統的局面,NoSQL數據存儲不須要固定的表結構,一般也不存在鏈接操做,在大數據存取上具有關係型數據庫沒法比擬的性能優點,該術語(NoSQL)在2009年初獲得了普遍的認同centos

google的BigTable與Amazon的Dynamo是很是成功的商業NoSQL,一些開源的NoSQL體系,如微信

Redis, mongodb也逐漸的愈來愈受到各大中小型企業的歡迎和追捧數據結構

1、關係型數據庫

 

關係型數據庫最典型的數據結構是表,由二維表及其之間的聯繫所組成的一個數據組織
優勢:併發

  1. 易於維護:都是使用表結構,格式一致;
  2. 使用方便:SQL語言通用,可用於複雜查詢;
  3. 複雜操做:支持SQL,可用於一個表以及多個表之間很是複雜的查詢。

缺點:

  1. 讀寫性能比較差,尤爲是海量數據的高效率讀寫;
  2. 固定的表結構,靈活度稍欠;
  3. 高併發讀寫需求,傳統關係型數據庫來講,硬盤I/O是一個很大的瓶頸。

2、非關係型數據庫

非關係型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合,能夠是文檔或者鍵值對等。
優勢:

  1. 格式靈活:存儲數據的格式能夠是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應用場景普遍,而關係型數據庫則只支持基礎類型。
  2. 速度快:nosql可使用硬盤或者隨機存儲器做爲載體,而關係型數據庫只能使用硬盤;
  3. 高擴展性;
  4. 成本低:nosql數據庫部署簡單,基本都是開源軟件。

缺點:

  1. 不提供sql支持,學習和使用成本較高;
  2. 無事務處理;
  3. 數據結構相對複雜,複雜查詢方面稍欠。

 

常見的數據庫

非關係型數據庫(nosql):mongodb,redias

關係型數據庫:oracle,db2,sqlserver,mysql,mariadb

 

Mariadb發源

MySQL之父Widenius先生離開了Sun以後,以爲依靠Sun/Oracle來發展MySQL,實在很不靠譜,因而決定另開分支,這個分支的名字叫作MariaDB。

MariaDB跟MySQL在絕大多數方面是兼容的,對於開發者來講,幾乎感受不到任何不一樣。目前MariaDB是發展最快的MySQL分支版本,新版本發佈速度已經超過了Oracle官方的MySQL版本。
在Oracle控制下的MySQL開發,有兩個主要問題:1. MySQL核心開發團隊是封閉的,徹底沒有Oracle以外的成員參加。不少高手即便有心作貢獻,也沒辦法作到。2. MySQL新版本的發佈速度,在Oracle收購Sun以後大爲減緩。Widenius有一個ppt,用數據比較了收購以前和以後新版本的發佈速度。有不少bugfix和新的feature,都沒有及時加入到發佈版本之中。

 

RDBMS

Relational Database Management System

  • sql語句主要分爲:
    • DQL:數據查詢語言,用於對數據進行查詢,如select
    • DML:數據庫操做語言,對數據庫進行增刪改查,如:insert,update,delete
    • TPL:事物處理語言,對事物進行處理,包括begin,transaction,commit,rollback
    • DCL:數據控制語言,如grant,revoke
    • DDL:數據定義語言:進行數據庫,表的管理等,如create,drop
    • CCL:指針控制語言,經過控制指針完成表的操做,如declare cursor
  • sql是一門特殊的語言,專門用來操做關係型數據庫
  • 不區分大小寫

 

 

 

 

mariadb安裝
[mariadb]
name = MariaDB
baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

忘記mysql的root密碼
vim /etc/my.conf.d/server.conf
添加skip-grant-tables
mysql -uroot | mysql -u root -p    

查看數據庫
show databases;  
 
         
#查看建立數據庫狀態
 show create database testdb;

          
#使用哪一個庫
 use testdb

 

修改數據庫
create database test03 

#建立數據庫
create database testdb character set utf8;
 


#刪除數據庫
drop database testdb;
 
          

#修改數據庫默認字符集
alter database 庫名 default character set utf8;
 
          

#查看當前用戶
select user();
 


#給aaa添加查詢,建立,更新,刪除的權限(在任意主機上)       
grant select,create,update,delete on test03.grade to aaa@'%'; 


#給aaa賦予test03數據庫的grade表最高權限(在任意主機上)             grant all privileges on test03.grade to aaa@'%'; #查看aaa用戶的權限(root用戶)                         show grants for 'aaa'; #收回aaa在任意數據庫的任意表的最高權限                     revoke all on *.* from aaa@'%';                            #查看本身權限show grants
相關文章
相關標籤/搜索