mariadb(第一章)


 

數據庫介紹

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

關系型數據庫

         (1)關系型數據庫介紹

                  關系型數據庫模型是把復雜的數據結構歸結為簡單的二元關系(既二維格式表)。例如宏福教育某一期的學生關系就是一個二元關系,在關系型數據庫中,對數據的操作幾乎全部建立在一個或多個關系表上,通過對這些關聯表格分類,合並,連接或選取等運算來實現數據的管理。

       關系型數據庫誕生距今已經有40多年了,從理論產生發展到現實產品,例如:大家最常見的mysql和oracle數據庫,oracle在數據庫領域里上升到了霸主的地位,形成每年高達數百億美元的龐大產業市場,而mysql也是不容忽視的數據庫,以至於被oracle中心收購了。

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

 

 

 

 

非關系型數據庫(nosql)

非關系型數據庫也稱之為nosql數據庫,請注意,nosql的本意是“not only SQL”,指的是非關系型數據庫,而不是“no SQL”的意思,因此nosql的產生並不是要徹底否定關系型數據庫,而是作為傳統關系型數據庫的一個有效補充,NoSQL數據庫在特定的場景下可以發揮出難以想象的高效率和高性能。

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

NoSQL是非關系型數據庫的廣義定義。它打破了長久以來關系型數據庫與ACID理論大一統的局面,NoSQL數據存儲不需要固定的表結構,通常也不存在連接操作,在大數據存取上具備關系型數據庫無法比擬的性能優勢,該術語(NoSQL)在2009年初得到了廣泛的認同

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

Redis, mongodb也逐漸的越來越受到各大中小型企業的歡迎和追捧

一、關系型數據庫

 

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

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

缺點:

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

二、非關系型數據庫

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

  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

 

 

 

 

 

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM