標籤:

SQL默示錄(一)

作者: @待解放的二大爺 / @Hello XU

01. n什麼是資料庫,基本框架, 為什麼要用表格

資料庫顧名思義也就是儲存各種數據的地方,就如同老司機們電腦裡面的C,D,E盤一樣,各種車牌美不勝收。 然而隨著數據的不斷增加,如何有效的管理它們便成了一個棘手的問題,畢竟就算是老司機也很難記住每一個車牌號所藏在的硬碟角落。

因此對於冗餘數據的管理和分析就顯得尤為重要。而這些操作可就不是簡單的複製粘貼就能解決的。

從古至今我們所知的數據記錄方式多種多樣,從最早記錄著人類祖先生活場景的壁畫,到後來的結繩計數、龜甲、泥版刻字,乃至其後的書籍。我們的記錄方式一直都在發展,而對應的管理方式也在不斷更新。例如本朝最為偉大的職業之一--圖書管理員,便是最早的數據管理職業之一。

而數據管理的真正革命則是來自於上個世紀微軟出品的excel,並最終發展成為現代資料庫的雛形n在這裡我們介紹一種最基本的記錄數據的方式,叫做list(李斯特)。)

依舊是拿廣為人們熟悉的建國大業來舉個栗子。

我們知道在劇中唐國強他老人家依舊是本色演出了自己的特供角色--李德勝,而張國立則扮起看起來不怎麼反動的中共運輸大隊長。假設我們現在想要列舉出他們兩位在演藝生涯中曾經出演過的所有的角色那麼我們就可以用一個簡單的listn來解決這個問題。

上面這個表其實就是最基本的數據儲存形式,我們可以看出兩位老師都是很專心的人,所演的角色和影片都是人民群眾喜聞樂見的,這同樣也是exceln裡面最基本的list 形式。

然而這種方式的數據管理存在著很大的問題,首先,這張表格中存在著大量的重複數據,這樣會大大佔據資料庫的空間。我在創建這個表格的時候就有著大量的複製粘貼的重複工作,可以想像如果資料庫有成千上萬的數據的話這種工作量是不可想像的。

於是的話我們就要尋找一種更加簡單直接的方式來管理這個數據,這種方式我們稱作ntable。不同於list 的形式,table 更具有靈活性,我們來試一下把上述的這些數據分成三個不同的表格來試一下。

雖然乍一看只是把一個大表拆分成了不少小表,但是處理的方式卻由此靈活了許多,這也就是現在資料庫的基本結構形式,就是一個個儲存著不同信息的列表。如果我們要再重複做一張最開始的大表,那麼只需要幾個簡單的nSQL 語言就能達成,通過一下連接就能製成一張表格。如何具體的操作,我們會在下一章裡面用學車為例和各位司機們一起探討。

02. nSQL 語言 語言類型介紹

目前最通用的數據管理語言非SQL莫屬,它的全稱叫Structural Query Language,是一種用於資料庫中數據查詢的特殊程式語言,由IBM公司最早使用在其開發的資料庫系統中,後來則逐漸推廣擴散到各個商業領域。並陸續有了Oracle,Microsoftn等不一樣的版本和平台。雖然不同公司的語言具體細節各具特點,但是大致來說差別不大。就好比是自己的座駕和駕校的並不一樣,但是在你熟練掌握了駕駛技術之後,依然能夠飆車飛起。

SQL語言的基本構成大體包含以下幾個要素:

● 協議(Clauses):就和購車合同一樣,幾年一大修,裝幾個音箱,什麼樣的大燈,風格內飾,4S店負責什麼。在某些資料庫里這些是可選選項,也就是說有些是你要閉著眼接受的,比如下面的。

● 表達式(Expressions):一些簡單的演算法來形成一些向量或者表格。

● 斷言(Predicates):這是一個很有意思的翻譯,其實主要作用是用來計算n3VL(真/假/未知 三種邏輯答案) 或者布爾表格的值。同時也可以限制 「詢問」 和 「陳述」 的影響。我們馬上就會講到這兩個要素。

● 詢問(Queries):當你在小黑屋裡面對警察叔叔的一系列提問時,警察叔叔就是在向你發送nqueries,而你的回應就是 「男」,「駕齡兩年」,「家住村東頭」,「家裡一口人」,「家裡沒有牛」,這些信息就會被填進表格里。而我們在操作資料庫的時候,我們就要向那一堆數據問一堆這樣的問題。不過資料庫是永遠坦白的。

● 陳述(Statements):會對圖標和數據產生永久性影響,也可以用來控制諸如連接,階段,程序流或者數據診斷。

而sql最為重要的便是它的操作技巧,對於學以致用的老司機而言,大致可以分為四個科目

02.01 DDL 造一個車庫

用來定義一個資料庫的基本構架和概要,比如這個車庫要放幾輛車,尺寸多大,放什麼類型的車,露天還是封閉。

● nCREATE - 從島國回來,車庫裡多加幾個車位

● nALTER - 把車庫的風格轉換,從地下變到地上

● nDROP - 預算吃緊,去掉幾個車位

● nTRUNCATE - 把所有的車從車庫開走,打掃乾淨屋子再請客

● nCOMMENT - 給每個車位裝上標誌牌

● nRENAME - 把這個標誌牌換個名字

02.02 DML 選擇車

Data ManipulationnLanguage (DML) 用來管理資料庫中的數據並進行操作。

● nSELECT - 從車庫裡面開走一輛車

● nINSERT - 往車庫裡開進一輛車

● nUPDATE - 把舊車換成新車

● nEXPLAIN PLAN - 畫出來開車進出的路線

02.03 DCL 車庫保安

Data Control Languagen(DCL) 在車庫門口安上保全,只有欽定的人員能夠進出。

02.04 TCL 車庫監控

Transaction Controln(TCL) 主要是用來監控所有對資料庫所作的改變。

而在這四個科目裡面 DDL 和 DML 又恰恰是最為常用的。 為了讓諸位新手司機們能夠有一個更為直觀的了解,我們不妨用幾個簡單的操作加以說明。

首先,為了讓老司機們的藏車更加有序和順暢,建造一個表格去管理是很有必要的,而操作語句如下:

我在老司機這個資料庫內創造了一個新的表格-車庫

寫好語句後運行execute,如果語法沒有錯誤,我們便可以在老司機的資料庫內成功創造一個新的表格「車庫」了。 如下:

目前我們只是創造了一個空白的表格,有了車庫沒有車怎麼能行, 下面我們來為車庫填充上適當的內容。

運行成功後,我們變成功為車庫加上了各種美車。

此時我們 運用DML便可以成功的查看這張數據表

推薦閱讀:

【譯文】如何在R語言中使用SQL命令
Sqli labs系列-less-5&6 報錯注入法(下)

TAG:SQL | 数据库 |