MySQL(1)数据库介绍,配置MySQL的tab补全
文章目錄
- 一、數(shù)據(jù)庫的基本概念
- 1.1 使用數(shù)據(jù)庫的必要性
- 1.2 數(shù)據(jù)庫的概念
- 1.2.1 數(shù)據(jù)(Data)
- 1.2.2 表
- 1.2.3 數(shù)據(jù)庫
- 1.2.4 數(shù)據(jù)庫管理系統(tǒng)(DBMS)
- 1.2.5 數(shù)據(jù)庫系統(tǒng)
- 1.3 訪問數(shù)據(jù)庫的流程
- 二、數(shù)據(jù)庫的發(fā)展
- 2.1 數(shù)據(jù)庫系統(tǒng)發(fā)展史
- 三、主流的數(shù)據(jù)庫介紹
- 3.1 關(guān)系數(shù)據(jù)庫
- 3.2 非關(guān)系數(shù)據(jù)庫
- 3.3 關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫的區(qū)別
- 3.3.1 關(guān)系數(shù)據(jù)庫三個要素
- 四、配置MySQL的tab補(bǔ)全
- 1)安裝相關(guān)依賴軟件(需要配置yum官方或者阿里源進(jìn)行安裝)
- 2)下載python安裝包(自己下載過可以忽略此步驟)
- 3)創(chuàng)建目錄,并添加配置
- 4)安裝相關(guān)依賴軟件,解壓python軟件包并進(jìn)行編譯安裝
- 5)優(yōu)化路徑,安裝pip3
- 6)登錄測試
一、數(shù)據(jù)庫的基本概念
1.1 使用數(shù)據(jù)庫的必要性
使用數(shù)據(jù)庫可以高效且條理分明地存儲數(shù)據(jù),使人們能夠更加迅速、方便地管理數(shù)據(jù)。 數(shù)據(jù)庫具有以下特點(diǎn)。
可以結(jié)構(gòu)化存儲大量的數(shù)據(jù)信息,方便用戶進(jìn)行有效的檢索和訪問。
可以有效地保持?jǐn)?shù)據(jù)信息的一致性、完整性,降低數(shù)據(jù)冗余。
可以滿足應(yīng)用的共享和安全方面的要求。
數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)科學(xué)的核心技術(shù)之一,具有完備的理論基礎(chǔ)。對數(shù)據(jù)庫基本概念的掌握,將有助于對數(shù)據(jù)庫的理解。
1.2 數(shù)據(jù)庫的概念
1.2.1 數(shù)據(jù)(Data)
描述事物的符號記錄
包括數(shù)字,文字、圖形、圖像、聲音、檔案記錄等
以“記錄”形式按統(tǒng)一的格式進(jìn)行存儲
1.2.2 表
將不同的記錄組織在一起
用來存儲具體數(shù)據(jù)
1.2.3 數(shù)據(jù)庫
表的集合,是存儲數(shù)據(jù)的倉庫
以一定的組織方式存儲的相互有關(guān)的數(shù)據(jù)集合
1.2.4 數(shù)據(jù)庫管理系統(tǒng)(DBMS)
數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)是實(shí)現(xiàn)對數(shù)據(jù)庫資源有效組織、 管理和存取的系統(tǒng)軟件。它在操作系統(tǒng)的支持下,支持用戶對數(shù)據(jù)庫的各項(xiàng)操作。DBMS 主 要包括以下功能。
數(shù)據(jù)庫的建立和維護(hù)功能:包括建立數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)的錄入與轉(zhuǎn)換、數(shù)據(jù)庫的 轉(zhuǎn)儲與恢復(fù)、數(shù)據(jù)庫的重組與性能監(jiān)視等功能。
數(shù)據(jù)定義功能:包括定義全局?jǐn)?shù)據(jù)結(jié)構(gòu)、局部邏輯數(shù)據(jù)結(jié)構(gòu)、存儲結(jié)構(gòu)、保密模式 及信息格式等功能。保證存儲在數(shù)據(jù)庫中的數(shù)據(jù)正確、有效和相容,以防止不合語 義的錯誤數(shù)據(jù)被輸入或輸出。
數(shù)據(jù)操縱功能:包括數(shù)據(jù)查詢統(tǒng)計(jì)和數(shù)據(jù)更新兩個方面。
數(shù)據(jù)庫的運(yùn)行管理功能:這是數(shù)據(jù)庫管理系統(tǒng)的核心部分,包括并發(fā)控制、存取控 制、數(shù)據(jù)庫內(nèi)部維護(hù)等功能。
通信功能:DBMS 與其他軟件系統(tǒng)之間的通信,如 Access 能與其他 Office 組件進(jìn)行 數(shù)據(jù)交換。
1.2.5 數(shù)據(jù)庫系統(tǒng)
是一個人機(jī)系統(tǒng),由硬件、OS、數(shù)據(jù)庫、DBMS、應(yīng)用軟件和數(shù)據(jù)庫用戶組成
用戶可以通過DBMS或應(yīng)用程序操作數(shù)據(jù)庫
1.3 訪問數(shù)據(jù)庫的流程
1)應(yīng)用程序把查詢SQL語句發(fā)給服務(wù)器端執(zhí)行。
2)服務(wù)器解析請求的SQL語句。
3)語句執(zhí)行。
注意:
1:確保SQL語法正確;
2:確保SQL語義上的正確性即對象是否存在;
3:數(shù)據(jù)庫用戶是否具有相應(yīng)的訪問權(quán)限。
二、數(shù)據(jù)庫的發(fā)展
2.1 數(shù)據(jù)庫系統(tǒng)發(fā)展史
數(shù)據(jù)庫技術(shù)的發(fā)展已經(jīng)成為先進(jìn)信息技術(shù)的重要組成部分,是現(xiàn)代計(jì)算機(jī)信息系統(tǒng)和計(jì) 算機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)和核心。數(shù)據(jù)庫技術(shù)最初產(chǎn)生于 20 世紀(jì) 60 年代中期,根據(jù)數(shù)據(jù)模型的 發(fā)展,可以劃分為三個階段:第一代的網(wǎng)狀、層次數(shù)據(jù)庫系統(tǒng);第二代的關(guān)系數(shù)據(jù)庫系統(tǒng); 第三代的以面向?qū)ο竽P蜑橹饕卣鞯臄?shù)據(jù)庫系統(tǒng)。
(1)初級階段——第一代數(shù)據(jù)庫
自 20 世紀(jì) 60 年代起,第一代數(shù)據(jù)庫系統(tǒng)問世。它們是層次模型與網(wǎng)狀模型的數(shù)據(jù)庫系 統(tǒng),為統(tǒng)一管理和共享數(shù)據(jù)提供了有力的支撐。在這個階段中,數(shù)據(jù)庫的代表是 1969 年 IBM 公司研制的層次模型的數(shù)據(jù)庫管理系統(tǒng)——IMS(Information Management System,信息管 理系統(tǒng))和 20 世紀(jì) 70 年代美國數(shù)據(jù)系統(tǒng)語言協(xié)會(CODASYL)下屬數(shù)據(jù)庫任務(wù)組(DBTG) 提議的網(wǎng)狀模型。
(2)中級階段——第二代數(shù)據(jù)庫
20 世紀(jì) 70 年代初,第二代數(shù)據(jù)庫——關(guān)系數(shù)據(jù)庫開始出現(xiàn)。自 1970 年 IBM 研究員德 加·考特闡述了關(guān)系模型的概念后,IBM 大力投入關(guān)系數(shù)據(jù)庫的研究。關(guān)系數(shù)據(jù)庫的底層實(shí) 現(xiàn)起來比較容易,所以很快被采用,并進(jìn)入了眾多商業(yè)數(shù)據(jù)庫的研發(fā)計(jì)劃。Oracle 就是當(dāng) 時應(yīng)關(guān)系數(shù)據(jù)模型的出現(xiàn)而成立的一家專做(關(guān)系)數(shù)據(jù)庫的公司。20 世紀(jì) 80 年代初,IBM 公司的關(guān)系數(shù)據(jù)庫系統(tǒng) DB2 問世,而 Oracle 公司也將 Oracle 數(shù)據(jù)庫移植到桌面計(jì)算機(jī)上。 這時,作為第二代數(shù)據(jù)庫系統(tǒng)的關(guān)系數(shù)據(jù)庫,開始逐步取代層次與網(wǎng)狀模型的數(shù)據(jù)庫,成為 占主導(dǎo)地位的數(shù)據(jù)庫,成為行業(yè)主流。到目前為止,關(guān)系數(shù)據(jù)庫系統(tǒng)仍占領(lǐng)數(shù)據(jù)庫應(yīng)用的主 要地位。
關(guān)系數(shù)據(jù)庫系統(tǒng)將結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)作為數(shù)據(jù)定義 語言(Data Definition Language,DDL)和數(shù)據(jù)操作語言(Data Manipulation Language, DML),它一誕生就成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。SQL 使得關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)庫表的查詢 可以通過簡單的、聲明性的方式進(jìn)行,大大簡化了程序員的工作。
關(guān)系數(shù)據(jù)庫系統(tǒng)構(gòu)筑在比較高的軟件層次上,執(zhí)行查詢的效率普遍偏低。另外,嚴(yán)格的、 標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫是一個純理論的模型。如果完全按照關(guān)系模型實(shí)現(xiàn),會涉及很多方面的問 題,其中一條就是效率不高。在現(xiàn)實(shí)環(huán)境中,考慮到商業(yè)運(yùn)用的目的,數(shù)據(jù)庫生產(chǎn)廠商各自 加入了一些提高效率和提高可用性的功能,舍棄了一些不太現(xiàn)實(shí)的約束。不同的數(shù)據(jù)庫廠商 在不同基礎(chǔ)上的選擇,導(dǎo)致了關(guān)系數(shù)據(jù)庫系統(tǒng)向不同方向上的變遷。例如,在這個階段中, Oracle 加入了“并行”的元素,并開始了向“關(guān)系-對象”型數(shù)據(jù)庫的變遷。這樣的變遷, 也慢慢引出了新一代的數(shù)據(jù)庫系統(tǒng)。
(3)高級階段——第三代數(shù)據(jù)庫
由于計(jì)算機(jī)應(yīng)用的發(fā)展,計(jì)算機(jī)已從傳統(tǒng)的科學(xué)計(jì)算、事務(wù)處理等領(lǐng)域,逐步擴(kuò)展到工 程設(shè)計(jì)、人工智能、多媒體、分布式等領(lǐng)域,這些新的領(lǐng)域需要有新的數(shù)據(jù)庫支撐,而傳統(tǒng) 關(guān)系數(shù)據(jù)庫系統(tǒng)是以商業(yè)應(yīng)用、事務(wù)處理為背景而發(fā)展起來的,并不完全適用于新領(lǐng)域的應(yīng) 用,因此,需要新的數(shù)據(jù)庫系統(tǒng),以滿足不同領(lǐng)域的要求。
自 20 世紀(jì) 80 年代開始,各種適應(yīng)不同領(lǐng)域的新型數(shù)據(jù)庫系統(tǒng)不斷涌現(xiàn),如工程數(shù)據(jù)庫、 多媒體數(shù)據(jù)庫、圖形數(shù)據(jù)庫、智能數(shù)據(jù)庫、分布式數(shù)據(jù)庫及面向?qū)ο髷?shù)據(jù)庫等,特別是面向 對象數(shù)據(jù)庫系統(tǒng),由于其實(shí)用性強(qiáng)、適應(yīng)面廣而受到人們的青睞。20 世紀(jì) 90 年代后期,形 成了多種數(shù)據(jù)庫系統(tǒng)共同支撐應(yīng)用的局面。當(dāng)然,在商務(wù)應(yīng)用方面,依然還是關(guān)系數(shù)據(jù)庫占 主流。不過,已經(jīng)有一些新的元素被添加進(jìn)主流商務(wù)數(shù)據(jù)庫系統(tǒng)中。例如,Oracle 支持的“關(guān) 系-對象”數(shù)據(jù)庫模型。
隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)技術(shù)不斷應(yīng)用到各行各業(yè)。數(shù)據(jù)存儲需求的不斷膨脹,對 未來的數(shù)據(jù)庫技術(shù)將會有更高的要求。
三、主流的數(shù)據(jù)庫介紹
3.1 關(guān)系數(shù)據(jù)庫
①SQL Server 簡介
SQL Server 是 Microsoft 公司的數(shù)據(jù)庫產(chǎn)品,在設(shè)計(jì)上大量利用了 Microsoft Windows 操作系統(tǒng)的底層結(jié)構(gòu),直接面向 Microsoft Windows,尤其是 Windows 系列服務(wù)器操作系統(tǒng) 的用戶。
Microsoft Windows 擁有眾多的用戶群,Microsoft 所有的產(chǎn)品都遵循統(tǒng)一的操作習(xí)慣。 對數(shù)據(jù)庫基本概念熟悉的 Windows 用戶,可以很快地學(xué)會使用 SQL Server,上手比較容易。 Windows 系統(tǒng)的易用性也讓數(shù)據(jù)庫管理員可以更容易、更方便、更輕松地進(jìn)行管理。
Microsoft 公司針對市場的需求,不斷擴(kuò)展其性能,使得 SQL Server 在網(wǎng)絡(luò)數(shù)據(jù)庫服 務(wù)和電子商務(wù)方面展示了強(qiáng)大的性能。
②Oracle 簡介
Oracle 公司成立于 1977 年,最初就是專門的數(shù)據(jù)庫公司。
1998 年 9 月,Oracle 公司正式發(fā)布 Oracle 8i,“i”代表 Internet,這一版本中添加 了大量為支持 Internet 而設(shè)計(jì)的特性。這一版本為數(shù)據(jù)庫用戶提供了全方位的 Java 支持。
在 2001 年 6 月的 Oracle Open World 大會中,Oracle 公司發(fā)布了 Oracle 9i,包含應(yīng) 用集群軟件 Real Application Clusters(RAC)和商務(wù)智能(BI)功能。
2004 年 2 月,Oracle 公司發(fā)布了 Oracle 10g 版本,“g”代表 grid(網(wǎng)格)。這一版 的最突出特性就是加入了網(wǎng)格計(jì)算的功能。
2013 年 6 月,Oracle 12C 正式發(fā)布,該版本提供了先進(jìn)的技術(shù)堆棧管理、安全的數(shù)據(jù) 庫管理及企業(yè)級的服務(wù)管理,使企業(yè)能夠快速實(shí)現(xiàn)私有云。
數(shù)據(jù)庫領(lǐng)域 Oracle 公司在很長一段時間內(nèi)一直處于領(lǐng)先地位,不僅數(shù)據(jù)庫核心相當(dāng)優(yōu) 秀,而且其相關(guān)的支持產(chǎn)品也相當(dāng)完善和全面。Oracle 能適應(yīng) 70 多種操作系統(tǒng),這也是其 他產(chǎn)品難以企及的優(yōu)勢。不過隨著云計(jì)算的不斷發(fā)展,以 Oracle 為代表的傳統(tǒng)數(shù)據(jù)庫正在 逐漸失勢,云數(shù)據(jù)庫時代正在來臨。2019 年 10 月 15 日亞馬遜宣布永久關(guān)閉 Oracle 數(shù)據(jù)庫 業(yè)務(wù)。可以說亞馬遜關(guān)閉 Oracle 既是自身產(chǎn)業(yè)轉(zhuǎn)型升級的需要,也是云計(jì)算領(lǐng)域發(fā)展邁出 的重要一步。如今已經(jīng)有越來越多的企業(yè)開始上云,拋棄傳統(tǒng)數(shù)據(jù)庫,轉(zhuǎn)而使用云數(shù)據(jù)庫, 推動著云計(jì)算的不斷發(fā)展。
③DB2 簡介
1970 年,IBM 公司的一位研究員德加·考特發(fā)表論文,提出“關(guān)系模型”的概念。此后, 他被稱為“關(guān)系數(shù)據(jù)庫之父”。IBM 公司投入巨資,開展包括“SystemR”和“SystemR*” 項(xiàng)目在內(nèi)的關(guān)系數(shù)據(jù)庫技術(shù)的研究。13 年后,在“SystemR”和“SystemR*”項(xiàng)目的基礎(chǔ)上, DB2 以 SystemR 為原型面世。
DB2 支持從 PC 到 UNIX,從中小型機(jī)到大型機(jī),從 IBM 到非 IBM(HP 及 Sun UNIX 系統(tǒng)等) 的各種操作系統(tǒng)平臺。其中,服務(wù)器平臺可以是 OS/400、AIX、OS/2、HP-UNIX、Sun Solaris 等操作系統(tǒng),客戶機(jī)平臺可以是 OS/2 或 Windows、DOS、AIX、HP-UX、Sun Solaris 等操作 系統(tǒng)。但是,DB2 服務(wù)器端的最佳運(yùn)行環(huán)境還是 IBM 自己的操作系統(tǒng)平臺 OS/400。
DB2 數(shù)據(jù)庫核心又稱為 DB2 通用服務(wù)器,可以運(yùn)行于多種操作系統(tǒng)之上,它根據(jù)相應(yīng)的 平臺環(huán)境做了調(diào)整和優(yōu)化,以便達(dá)到較好的性能。由于 IBM 公司在商用服務(wù)器領(lǐng)域內(nèi)的長期 優(yōu)勢,在全球 500 強(qiáng)的企業(yè)中,超過 80%的企業(yè)曾使用 DB2 作為數(shù)據(jù)庫平臺。
④MySQL簡介
MySQL 也是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),現(xiàn)已被 Oracle 公司收購。它與上述大型數(shù)據(jù) 庫相比,有不足之處,但是這絲毫沒有減少它受歡迎的程度。
MySQL 運(yùn)行于 Linux 操作系統(tǒng)之上,Apache 和 Nginx 作為 Web 服務(wù)器,MySQL 作為后臺 數(shù)據(jù)庫,PHP/Perl/Python 作為腳本解釋器。這四款軟件都是免費(fèi)或開源的,也就是說,企 業(yè)可以不花一分錢(除人工外)就能建立起一個穩(wěn)定、高速的網(wǎng)站系統(tǒng),業(yè)內(nèi)稱為“LAMP”組合。因此,其以體積小、速度快、開源等特點(diǎn),霸占了中小型網(wǎng)站相當(dāng)大的市場。
3.2 非關(guān)系數(shù)據(jù)庫
非關(guān)系數(shù)據(jù)庫也被稱作 NoSQL(Not Only SQL),存儲數(shù)據(jù)不以關(guān)系模型為依據(jù),不需要 固定的表格式。非關(guān)系型數(shù)據(jù)庫作為關(guān)系數(shù)據(jù)庫的一個補(bǔ)充,在日益快速發(fā)展的網(wǎng)站時代, 發(fā)揮著高效率與高性能。
非關(guān)系型數(shù)據(jù)庫的優(yōu)點(diǎn):
? 數(shù)據(jù)庫高并發(fā)讀寫的需求
? 對海量數(shù)據(jù)高效率存儲與訪問
? 數(shù)據(jù)庫的高擴(kuò)展性與高可用性的需求 常用的非關(guān)系數(shù)據(jù)庫例如 Memcached、Redis、MongoDB、HBase等,我這里就不詳細(xì)介紹了。
3.3 關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫的區(qū)別
關(guān)系數(shù)據(jù)庫系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫系統(tǒng)
關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)使用簡單易懂的二維數(shù)據(jù)表
關(guān)系模型可用簡單的“實(shí)體-關(guān)系”(E-R)圖來表示
E-R圖中包含了實(shí)體(數(shù)據(jù)對象)、關(guān)系和屬性三個要素
3.3.1 關(guān)系數(shù)據(jù)庫三個要素
1)實(shí)體:也稱為實(shí)例,對應(yīng)現(xiàn)實(shí)世界中可區(qū)別于其他對象的“事件”或“事物”
如銀行客戶、銀行賬戶等
2)屬性:實(shí)體所具有的某一特性,一個實(shí)體可以有多個屬性
如“銀行客戶”實(shí)體集中的每個實(shí)體均具有姓名、住址、電話等屬性
3)聯(lián)系:實(shí)體集之間的對應(yīng)關(guān)系稱為聯(lián)系,也稱為關(guān)系
如銀行客戶和銀行賬戶之間存在“儲蓄”的關(guān)系
非關(guān)系數(shù)據(jù)庫也被稱作NoSQL(Not Only SQL)
存儲數(shù)據(jù)不以關(guān)系模型為依據(jù),不需要固定的表格式
非關(guān)系型數(shù)據(jù)庫的優(yōu)點(diǎn)
數(shù)據(jù)庫可高并發(fā)讀寫
對海量數(shù)據(jù)高效率存儲與訪問
數(shù)據(jù)庫具有高擴(kuò)展性與高可用性
常用的非關(guān)系數(shù)據(jù)庫:Redis、mongoDB等
四、配置MySQL的tab補(bǔ)全
1)安裝相關(guān)依賴軟件(需要配置yum官方或者阿里源進(jìn)行安裝)
yum -y install epel-release
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc
2)下載python安裝包(自己下載過可以忽略此步驟)
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
3)創(chuàng)建目錄,并添加配置
mkdir ~/.pip/
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
4)安裝相關(guān)依賴軟件,解壓python軟件包并進(jìn)行編譯安裝
yum -y install libffi-devel zlib* python-devel openssl-devel
tar -zxvf Python-3.9.0.tgz
cd Python-3.9.0/
./configure --prefix=/usr/local/python --with-ssl
make && make install
5)優(yōu)化路徑,安裝pip3
ln -s /usr/local/python/bin/python3 /usr/bin/
echo ‘export PATH=/usr/local/python/bin:$PATH’ >> /etc/profile
source /etc/profile
pip3 install mycli
6)登錄測試
mycli -u root -p <密碼>
總結(jié)
以上是生活随笔為你收集整理的MySQL(1)数据库介绍,配置MySQL的tab补全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LVS+Keepalived 高可用群集
- 下一篇: linux cmake编译源码,linu