036_數據庫MySQL介紹

一,數據庫概述html

1,數據庫(Database,簡稱DB)web

  數據庫技術是計算機應用領域中很是重要的技術,它產生於20世紀60年代末,是數據管理的最新技術,也是軟件技術的一個重要分支。redis

  簡單的說,數據庫就是一個存放數據的倉庫,這個倉庫是按照必定的數據結構(數據結構是指數據的組織形式或數據之間的聯繫)來組織、存儲的,咱們能夠經過數據庫提供的多種方法來管理數據庫裏的數據。更簡單的形象理解,數據庫和咱們生活中存放雜物的倉庫性質同樣,區別只是存放的東西不一樣。sql

2,數據庫表(table)mongodb

  數據表是關係數據庫中一個很是重要的對象,是其它對象的基礎,也是一系列二維數組的集合,用來存儲、操做數據的邏輯結構。根據信息的分類狀況。
一個數據庫中可能包含若干個數據表,每張表是由行和列組成,記錄一條數據,數據表就增長一行,每一列是由字段名和字段數據集合組成,列被稱之爲字段,
每一列還有本身的多個屬性,例如是否容許爲空、默認值、長度、類型、存儲編碼、註釋等.例如

   

3,數據(data)數據庫

    存儲在表中的信息就叫作數據.json

4,數據庫系統有3個主要的組成部分數組

   1.數據庫(Database System):用於存儲數據的地方。緩存

   2.數據庫管理系統(Database Management System,DBMS):用戶管理數據庫的軟件。安全

   3.數據庫應用程序(Database Application):爲了提升數據庫系統的處理能力所使用的管理數據庫的軟件補充。

5,數據庫的發展史(五個階段)

   1.文件系統
      數據庫系統的萌芽階段,經過文件來存取數據.
          文件系統是數據庫系統的萌芽階段,出如今上世紀五六十年代,能夠提供簡單的數據存取功能,但沒法提供完整、統一的數據管理功能,例如複雜查詢等。因此在管理較少、較簡單的數據或者只是用來存取簡單數據,沒有複雜操做的狀況下,會使用文件系統
   
   2.層次型數據庫       數據庫系統真正開始階段,數據的存儲形式相似樹形結構,因此也叫樹型數據庫.    
   3.網狀數據庫       數據的存儲形式相似網狀結構. 從二十世紀六十年代開始,第一代數據庫系統(層次模型數據庫系統、網狀模型數據庫系統)相繼問世,它們爲統一管理和共享數據提供了有力的支撐 在這個階段,網狀模型數據庫因爲它的複雜、專用性,沒有被普遍使用。而在層次模型數據庫中,IBM公司的IMS(Information Management System,信息管理系統)層次模型數據庫系統則獲得了極大的發展,一度成爲最大的數據庫管理系統,擁有巨大的客戶羣    4.關係型數據庫 二十世紀七十年代初,關係型數據庫系統開始走上歷史舞臺,並一直保持着蓬勃的生命力.關係型數據庫系統使用結構化查詢語言(Structured Query Language,SQL)做爲數據庫定義語言DDL和數據庫操做語言DML    5.面向對象數據庫 把面向對象的方法和數據庫技術結合起來,可使數據庫系統的分析、設計最大程度地與人們對客觀世界的認識相一致,而且可以有效的爲面向對象程序提供更好的數據庫支撐

二,數據庫的特色

  ⑴ 實現數據共享
    數據共享包含全部用戶可同時存取數據庫中的數據,也包括用戶能夠用各類方式經過接口使用數據庫,並提供數據共享。
 
  ⑵ 減小數據的冗餘度
    同文件系統相比,因爲數據庫實現了數據共享,從而避免了用戶各自創建應用文件。減小了大量重複數據,減小了數據冗餘,維護了數據的一致性。
 
  ⑶ 數據一致性和可維護性,以確保數據的安全性和可靠性
    主要包括:①安全性控制:以防止數據丟失、錯誤更新和越權使用;
         ②完整性控制:保證數據的正確性、有效性和相容性;
         ③併發控制:使在同一時間週期內,容許對數據實現多路存取,又能防止用戶之間的不正常交互做用。
 
  ⑷ 故障恢復
      由數據庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。數據庫系統能儘快恢復數據庫系統運行時出現的故障,多是物理上或是邏輯上的錯誤。好比對系統的誤操做形成的數據錯誤等。
 
三,數據庫分類

 在當今的互聯網中,最經常使用的數據庫模型主要是兩種,即關係型數據庫非關係型數據庫。

    1 關係型數據庫介紹 

   (1) 關係型數據庫 : 是把複雜的數據結構歸結爲簡單的二元關係(即二維表格形式)。 

   (2) 目前主流的關係型數據庫:MySQL、Oracle 、 Sql server、DB2 。。。

    Oracle 是世界上使用最普遍的數據庫,上世紀末隨着網絡浪潮的到來,Oracle推出9i這個版本,i表示internet,全面支持網絡引用。10g,g是grid網格,是Oracle公司爲迎接「網格計算」時代的來臨而提供的數據庫解決方案。
    MySQL是一個開源的、免費的關係型數據庫,。因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇MySQL做爲網站數據庫。
    SQL Server 微軟公司的關係型數據庫,通常.NET平臺會將其做爲首選.
    DB2是IBM出品的一系列關係型數據庫管理系統,分別在不一樣的操做系統平臺上服務。
主流數據庫介紹

     2  非關係型數據庫介紹

   (1)非關係型數據庫誕生背景

       非關係型數據庫也被成爲NoSQL數據庫,NOSQL的本意是「Not Only SQL」.而不是「No SQL」的意思,所以,NoSQL的產生並非要完全地否認非關係型數據庫,而是做爲傳統關係型數據庫的一個有效補充。NOSQL數據庫在特定的場景下能夠發揮出不可思議的高效率和高性能。 

          隨着互聯網Web2.0網站的興起,傳統的關係型數據庫在應付web2,0網站,特別是對於規模日益擴大的海量數據,超大規模和高併發的微博、微信、SNS類型的web2.0純動態網站已經顯得力不從心,暴露了不少難以克服的問題。 

     例如:傳統的關係型數據庫IO瓶頸、性能瓶頸都難以有效突破,因而出現了大批針對特定場景,以高性能和使用便利爲目的功能特異化的數據庫產品。NOSQL(非關係型)類的數據就是在這樣的情景下誕生並獲得了很是迅速的發展 

        (2)  NOSQL非關係型數據庫小結: 
      一、NOSQL不是否認關係數據庫,而是做爲關係數據庫的一個重要補充 
      二、NOSQL爲了高性能、高併發而生,可是要求對數據一致性要求不能高 
      三、NOSQL典型產品memcached (純內存,k-v),redis(持久化緩存,k-v),mongodb(文檔的數據庫,xml-json)

四,MySQL介紹

  MySQL 數據庫:是互聯網領域裏一款最重要的,深受廣大用戶歡迎的開源關係型數據庫軟件之1、由瑞典MySQL AB公司開發與維護。2008年。MySQL AB公司被SUN公司收購,2009年,SUN公司又被傳統數據數據庫領域大佬甲骨文(oracle)公司收購,所以,MySQL數據庫軟件目前屬於Oracle公司,成爲傳統數據庫領域老大的又一個數據庫產品,甲骨文公司收購MySQL後,使得自身在商業數據庫與開源軟件領域市場佔有份額都躍居第一的位置,這樣的格局,引發了不少人的擔心,這種擔心直接致使後來的Mysql分支數據庫MariaDB的誕生於發展。

 MySQL 發展歷史

  • 1985 年,瑞典的幾位志同道合小夥子(David Axmark、Allan Larsson 和Monty Widenius) 成立了一家公司,這就是MySQL AB 的前身。
  • 1990年,TcX公司的客戶中開始有人要求爲他的API提供SQL支持。當時有人提議直接使用商用數據庫,可是Monty以爲商用數據庫的速度難以使人滿意。因而,他直接藉助於mSQL的代碼,將它集成到本身的存儲引擎中。使人失望的是,效果並不太使人滿意,因而,Monty雄心大起,決心本身重寫一個SQL支持。
  • 1996年,MySQL 1.0發佈,它只面向一小撥人,至關於內部發布。
  • 1996年10月,MySQL 3.11.1發佈(MySQL沒有2.x版本),最開始只提供Solaris下的二進制版本。一個月後,Linux版本出現了。
  • 1999~2000年,MySQL AB公司在瑞典成立。Monty僱了幾我的與Sleepycat合做,開發出了Berkeley DB引擎, 由於BDB支持事務處理,因此MySQL今後開始支持事務處理了。
  • 2003年12月,MySQL 5.0版本發佈,提供了視圖、存儲過程等功能。
  • 2008年1月16日,Sun(太陽微系統)正式收購MySQL。
  • 2009年4月20日,甲骨文公司宣佈以每股9.50美圓,74億美圓的總額收購Sun電腦公司。
  • 2010年12月,MySQL 5.5發佈,其主要新特性包括半同步的複製及對SIGNAL/RESIGNAL的異常處理功能的支持,最重要的是InnoDB存儲引擎終於變爲當前MySQL的默認存儲引擎。
  • 2013年6月18日,甲骨文公司修改MySQL受權協議,移除了GPL。但隨後有消息稱這是一個bug。

  爲何選擇MySQL數據庫?

   (1) MySQL性能卓越、服務穩定,不多出現異常宕機 
   (2) MySQL開放源代碼且無版權制約,自主性及使用成本低 
     (3) MySQL歷史悠久,社區及用戶活躍,遇到問題能夠解決 
     (4) MySQL軟件體積小,安裝使用簡單,而且易於維護,安裝及維護成本低 
     (5) MySQL品牌口碑效應,使得企業無需考慮就直接用 
     (6) MySQL支持多用操做系統,提供多種API接口,支持多用開發語言,特別對流行的語言有很好的支持

 

 MariaDB 介紹 :

  出如今2009年. MAriaDB數據庫管理系統是MySQL數據庫的一個分支,主要由開源社區維護,採用GPL受權許可。開發這個MariaDB的緣由之一是:甲骨文公司收購了MySQL後,MySQL有閉源的潛在風險,所以MySQL開源社區採用分支的方式來避開這個風險。點擊查看詳情 

  MariaDB默認的存儲引擎是Maria,不是MyISAM。Maria能夠支持事務,可是默認狀況下沒有打開事務支持,由於事務支持對性能會有影響。能夠經過如下語句,轉換爲支持事務的Maria引擎。ALTER TABLE `tablename` ENGINE=MARIA TRANSACTIONAL=1; 

 

五,什麼是SQL?

  上面我們介紹過數據庫的組成部分,其中數據庫管理系統能夠接收一些命令,對數據文件進行添加、刪除、修改、查詢等操做。那麼這些命令就是 SQL .

  SQL:(Structured Query Language)是結構化查詢語言縮寫。是一門專門與數據庫管理系統打交道的語言。

  SQL語言:是關係型數據庫的標準語言, 其主要用於存取數據,查詢數據,更新數據和管理數據庫系統等操做。

  具體能夠把SQL分爲4個部分:

    數據控制語言 ( DCL): 主要用於控制用戶的訪問權限。其中GRANT語句用於給用戶增長權限,REVOKE語句用於收回用戶的權限

    數據定義語言(DDL):DROP、CREATE、ALTER等語句;數據庫定義語言。主要用於定義數據庫,表,視圖,索引和觸發器等。CREATE語句主要用於建立數據庫,建立表,建立視圖。ALTER語句主要用於修改表的定義,修改視圖的定義。DROP語句主要用於刪除數據庫,刪除表和刪除視圖等。

    數據操做語言(DML):INSERT、UPDATE、DELETE語句;數據庫操做語言。主要用於插入數據,更新數據,刪除數據。INSERT語句用於插入數據,UPDATE語句用於更新數據,DELETE語句用於刪除數據.

    數據查詢語言(DQL):SELECT語句。主要用於查詢數據。

#1. 操做文件夾 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 刪除: drop database db1; #2. 操做文件 先切換到文件夾下:use db1 增:create table t1(id int,name char); 查:show tables 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 刪:drop table t1; #3. 操做文件中的內容/記錄 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 查:select * from t1; 改:update t1 set name='sb' where id=2; 刪:delete from t1 where id=1; 清空表: delete from t1; #若是有自增id,新增的數據,仍然是以刪除前的最後同樣做爲起始。 truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始, auto_increment 表示:自增 primary key 表示:約束(不能重複且不能爲空);加速查找
部分操做語句

 六,數據庫存儲引擎

 MySQL 存儲引擎

相關文章
相關標籤/搜索