數據庫(Database,DB)是按照數據結構來組織、存儲和管理數據的,而且是創建在計算機存儲設備上的倉庫。java
數據庫指的是以必定方式儲存在一塊兒、能爲多個用戶共享、具備儘量小的冗餘度、與應用程序彼此獨立的數據集合。簡單來講可視爲電子化的文件櫃——存儲電子文件的處所,用戶能夠對文件中的數據運行新增、截取、更新、刪除等操做。mysql
數據庫系統有3個主要的組成部分。git
數據庫(Database System):用於存儲數據的地方。程序員
數據庫管理系統(Database Management System,DBMS):用戶管理數據庫的軟件。github
數據庫應用程序(Database Application):爲了提升數據庫系統的處理能力所使用的管理數據庫的軟件補充。算法
SQL,(Structured Query Language)即結構化查詢語言,數據庫管理系統專門經過SQL語言來管理數據庫中的數據,與數據庫通訊。sql
DBMS專用的SQL:SQL不是一種專利語言,並且存在一個標準委員會,他們試圖定義可供全部DBMS使用的SQL語法,但 事實上任意兩個DBMS實現的SQL都不徹底相同。本課講的 SQL是專門針對MySQL的,雖然所講的多數語法也適 用於其餘DBMS,但不要認爲這些SQL語法是徹底可移植的。數據庫
SQL語言是一種數據庫查詢和程序設計語言,其主要用於存取數據,查詢數據,更新數據和管理數據庫系統。具體的,SQL分爲4個部分,這裏只是大概整理一下,詳細的後面我會在SQL相關中仔細整理。數組
數據定義語言(Data Definition Language,DDL):DROP、CREATE、ALTER等語句;數據庫定義語言。主要用於定義數據庫,表,視圖,索引和觸發器等。CREATE語句主要用於建立數據庫,建立表,建立視圖。ALTER語句主要用於修改表的定義,修改視圖的定義。DROP語句主要用於刪除數據庫,刪除表和刪除視圖等。服務器
數據操做語言(Data Manipulation Language,DML):INSERT、UPDATE、DELETE語句;數據庫操做語言。主要用於插入數據,更新數據,刪除數據。INSERT語句用於插入數據,UPDATE語句用於更新數據,DELETE語句用於刪除數據。
數據查詢語言(Data Query Language,DQL):SELECT語句。主要用於查詢數據。
數據控制語言(Data Control Language ,DCL)語句:數據庫控制語言。主要用於控制用戶的訪問權限。其中GRANT語句用於給用戶增長權限,REVOKE語句用於收回用戶的權限。
數據庫的分類可多了去了,通常我們分類兩類,一類稱之爲關係型數據庫,另外一類稱之爲非關係型數據庫.若是想要深刻了解各類概念推薦看《數據庫系統概論》。
(英語:Relational database),是建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。現實世界中的各類實體以及實體之間的各類聯繫均用關係模型來表示。關係模型是由埃德加·科德於1970年首先提出的,並配合「科德十二定律」。現現在雖然對此模型有一些批評意見,但它仍是數據存儲的傳統標準。標準數據查詢語言SQL就是一種基於關係數據庫的語言,這種語言執行對關係數據庫中數據的檢索和操做。
RDBMS:關係數據庫管理系統(Relational Database Management System)的特色:
幾乎全部的數據庫管理系統都配備了一個開放式數據庫鏈接(ODBC)驅動程序,令各個數據庫之間得以互相集成。
關係數據庫沒有數據表,關鍵字、主鍵、索引等也就無從談起,數據表是關係數據庫中一個很是重要的對象,是其它對象的基礎,也是一系列二維數組的集合,用來存儲、操做數據的邏輯結構。根據信息的分類狀況。一個數據庫中可能包含若干個數據表,每張表是由行和列組成,記錄一條數據數據表就增長一行,每一列是由字段名和字段數據集合組成,列被稱之爲字段,每一列還有本身的多個屬性,例如是否容許爲空、默認值、長度、類型、存儲編碼、註釋等
NoSQL一詞最先出現於1998年,是Carlo Strozzi開發的一個輕量、開源、不提供SQL功能的關係數據庫。當代典型的關係數據庫在一些數據敏感的應用中表現了糟糕的性能,例如爲巨量文檔建立索引、高流量網站的網頁服務,以及發送流式媒體。關係型數據庫的典型實現主要被調整用於執行規模小而讀寫頻繁,或者大批量極少寫訪問的事務。
MongoDB 是一個高性能,開源,無模式的文檔型數據庫,開發語言是C++。它在許多場景下可用於替代傳統的關係型數據庫或鍵/值存儲方式。
MySQL(官方發音爲英語發音:/maɪ ˌɛskjuːˈɛl/
My S-Q-L
,但也常常讀做英語發音:/maɪ ˈsiːkwəl/
My Sequel
)本來是一個開放源代碼的關係數據庫管理系統(DBMS),原開發者爲瑞典的MySQL AB
公司,該公司於2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成爲Oracle旗下產品。在本教程中,會讓你們快速掌握MySQL的基本知識,並輕鬆使用MySQL數據庫。
MySQL在過去因爲性能高、成本低、可靠性好,已經成爲最流行的開源數據庫,所以被普遍地應用在Internet上的中小型網站中。是最流行的關係型數據庫管理系統,在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System:關係數據庫管理系統)應用軟件之一。隨着MySQL的不斷成熟,它也逐漸用於更多大規模網站和應用,好比維基百科、Google和Facebook等網站。
但被甲骨文公司收購後,Oracle大幅調漲MySQL商業版的售價,且甲骨文公司再也不支持另外一個自由軟件項目OpenS olaris的發展,所以致使自由軟件社區們對於Oracle是否還會持續支持MySQL社區版(MySQL之中惟一的免費版本)有所隱憂,所以原先一些使用MySQL的開源軟件逐漸轉向其它的數據庫。例如維基百科已於2013年正式宣佈將從MySQL遷移到MariaDB
數據庫。MySQL的創始人麥克爾·維德紐斯以MySQL爲基礎,成立分支計劃MariaDB。
不少人覺得MySQL是最近15年內纔出現的數據庫,其實MySQL數據庫的歷史能夠追溯到1979年,那時 Bill Gates 退學沒多久,微軟公司也纔剛剛起步,而Larry的Oracle公司也才成立不久。那時有一個天才程序員 Monty Widenius 用 BASIC 設計了一個報表工具,過了不久,又將此工具使用 C 語言重寫,一直到 UNIX 平臺,當時只是一個底層的面向報表存儲引擎名叫Unireg。
MySQL
針對不一樣的用戶,分了社區版
和企業服務器版
,還提供一些其它版本,是屬於MySQL
相關工具。
MySQL 版本命命機制由三個數字組成,例如mysql-5.6.33-osx10.11-x86_64.tar.gz
如何學習 MySQL 這是一個僞命題,每一個人都有適合本身的一套學習方法,各不相同,因此如何學習 MySQL 這個活兒,我沒有辦法告訴你,個人這個學習方法就是你最好的學習方法,因此在學習 MySQL 數據庫以前,須要找準本身學習 MySQL 最舒服的姿式。
首先得培養興趣愛好,不論學什麼技術和什麼知識點,興趣是能夠極大的提升學習效率和提供持久的戰鬥力。固然還有一種興趣是被逼出來的.
SQL語句的關鍵字必定要牢記(牢記關鍵字的做用和使用語法的要求) .
SQL語句的語法(經常使用的)沒有多少,天天背幾個也就記住了,就算你想去背,現實也會逼着你記住的(由於之後天天都要寫,邪惡的一笑!!!)
我在學習繪畫的時候,老師第一天就告訴你要買繪畫筆、水粉、紙、畫板、支架子,讓你有一個正確的繪畫姿式。其實就是準備工具,因此學習前不光要安裝好環境,還得安裝好工具,比MySql安裝以及可視化的視圖工具(Navicat)的是使用,利用這些工具的特色來掌握SQL語句,操控數據。除了這些軟件工具以外還要正確、有效地利用搜索引擎這個牛逼,剛開始使用百毒,後面使用谷歌(若是你有FQ能力能夠一開始使用Google),你可經過搜索引發搜到不少相關的知識點。
我我的最不喜歡「紙上談兵派」,在我學習java的時候,動不動就讓我看個底層什麼的,我只是寫個應用而已,我肩負出活兒的使命,個人宗旨動手實踐操做,對於數據庫來講它的操做性特別強,若是你不動手操做,在實際應用過程當中很難發現問題。你在實際操做中發現問題,並經過各類方法解決問題,這樣才能提升實戰應用操做能力。在你實戰操做的過程當中順帶補充基礎知識。
你有了上面快速敏捷的學習能力,你還得附帶一個技能,才能更好、更快的入門MySQL數據庫。這個技能就是作筆記,作筆記在我這裏起到三個做用:第一,避免遺忘知識點。知識點太多,知識點偏冷,不經常使用也容易忘記;第二,知識點分階段吃透。當你理解的知識點愈來愈多的時候,還有一些只知其一;不知其二的知識點,你都須要作一些筆記,記錄以後找個時間點好好把這些只知其一;不知其二的知識點吃透,在每一個階段去看你的筆記你會有一些不一樣的理解。第三,總結沉澱,當你入門以後總結沉澱很重要,一次總結沉澱頗有可能在某個技術上你直接上升一個臺階。