渣渣小本求職復習之路每天一博客系列——數據庫基礎(MySQL)(1)


      前情回顧:前面五篇博客簡單地復習了一邊TCP/IP協議棧的東西,今天問舍友意見下面該復習哪些東西。他先是建議繼續復習計算機網絡的相關內容,我說復習也分一輪二輪的吧,把太多的連續時間花在這上面我怕別的方面復習不到。緊接着他就說不如復習數據庫基礎好了,因為他在給我做模擬面試的時候問了一些最基本的數據庫知識我都沒能回答出來。好吧,下一階段,目標進發!

      昨天把環境配好項目跑起來了,上午想了一個上午的解決方案,想着怎么把某BUG給干掉。下午前輩問我工作進度,我給他說了一下,他說不是那樣做的。我去到他位置上問是什么情況,后來才知道,之前安排工作給我的那個同事沒有給我說清楚。

      我的第一反應就是:次奧,那個家伙怎么能這樣,安排工作從來都不講清楚,都是讓我朝着不那么正確的方向做了一段時間才知道要怎么做。后面冷靜下來,不能總是埋怨別人嘛,肯定是有自己的原因的。如果我當時多問幾句,問到具體的問題所在或者解決思路的話,哪怕他不懂也會幫我問其他前輩,就不會出現現在這種情況了。我最近在看一本書,叫做《99%的新人,沒用心做好的50件事》,里面講的都是職場新人怎么做或許會更好的建議。其中提到的一個觀點,我覺得很適合我現在這種情況。作為新人,在技術上不可能比老人牛很多,而在經驗上則肯定比老人要少得多。那么就要多問,多問不是不動腦子,而是在思考過后把不明白的地方提出來,以免誤解了別人交代給自己的任務。作為新人的覺悟,不要害羞,多問幾句是不會被認為自己低能的。(當然也要注意,不要問出“1+1等於幾啊”之類的問題,至少是盡量避免)

———————————————————————————————閑聊結束——————————————————————————————

      本來想一上來就先復習SQL,然后再是數據庫優化之類的東西,但是翻了翻之前上《數據庫概念基礎》的課件,發現有幾個東西還是了解一下比較好。

      第一章:數據庫基礎中幾個需要注意的概念

      第一節:什么是關系型數據庫呢?

      關系型數據庫,是建立在關系模型基礎上的數據庫,借助於集合代數等數學概念和方法來處理數據庫中的數據。——摘自《百度百科》(更多深入的理解還是看資料比較好,涉及的內容比較多,如果全部都貼出來會很冗長。例如,什么是關系模型,集合代數又是什么,都是要了解的。我之所以單單貼出來這句話,是為了之后在看到的時候可以根據這句話想起相關的內容。有的時候,一句話的概念並不是要我們去背,而是去理解,自然而然就會記得住記得牢。)

第二節:笛卡爾積是什么?

首先,我們來看看定義:

設A,B為集合,用A中元素為第一元素,B中元素為第二元素構成的有序對,所有這樣的有序對組成的集合叫做A與B的笛卡爾積,記作AxB.
看着定義不是很明白?沒關系,結合例子就會一目了然了。看例子:
假設集合A={a,b},集合B={0,1,2},則兩個集合的笛卡爾積為{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)} 
再結合數據庫的舉例就更加清楚了:http://www.cnblogs.com/zerocc/archive/2011/11/03/2234458.html。大家有空看看。這里提出一個問題:為什么我們要知道什么是笛卡爾幾呢?知道了之后有什么用呢?期待童鞋們在給出精彩的答案。
第三節:等值連接、自然連接、外連接(包含左外連接、右外連接以及全外連接)
什么是等值連接?
等值連接是條件連接在連接運算符為“=”號時的特例。它是從關系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組。
什么是自然連接?
自然連接就是在等值連接的情況下,當連接屬性X與Y具有相同屬性組時,把在連接結果中重復的屬性列去掉。舉例如下圖:
什么是外連接?(老師給的課件里,有這么一張圖)
為避免自然連接時因失配而發生的信息丟失,可以假定往參與連接的一方表中附加一個取值全為空值的行,它和參與連接的另一方表中的任何一個未匹配上的元組都能匹配,稱之為外連接。外連接=自然連接+未匹配的元組(懸掛元組)
左外連接=自然連接+左側表中未匹配的元組
右外連接=自然連接+右側表中未匹配的元組
全外連接=自然連接+兩側表中未匹配的元組
 
 
簡單地列舉了幾個面試中容易問到的基本概念,有些還沒貼圖。記得怎么回事的童鞋腦子可以腦子里回憶一下,不記得怎么回事的童鞋趕緊去翻翻教材或者問度娘咯。其實還有一個重要部分沒講到,就是關系運算部分,例如選擇、投影、賦值等等。當初學的時候稀里糊塗,不知道為啥要知道這些,現在重新看了一遍課件才知道跟后面要學到的結構化查詢語言SQL有緊密的關系。或許可以這么說,關系代數是公式(1+1),而SQL就是將其在計算機中實現運算的語言(a=1;b=1;c=a+b;)。
舉例可能不太恰當,大家將就着看吧。
 
第二章:結構化查詢語言SQL概述
雖然SQL翻譯過來是結構化查詢語言,但它並不是一門只是用來查詢的語言,還有其他的功能,例如操作數據、定義數據等功能。請看下圖:
SQL不是某個特定數據庫供應商專用語言。幾乎所有重要的關系型數據庫管理系統都支持SQL,通用是它的一大特點。另外,SQL看上去很簡單,但它實際上是一種很強力的語言,我看過網上一些寫得很巧妙的SQL語言,可以進行非常復雜和高級的數據庫操作。大家有興趣的話可以去搜搜看,自己試着寫寫。
這一章只是一個簡單的介紹,在之后的內容里,會有一個比較詳細的介紹和舉例。大概會用兩到三天的時間,復習一下數據定義、數據更新、查詢、視圖以及索引五個方面的內容。
 
——————————————————————————第六天————————————————————————
喜歡這種在夜深無人的環境下寫東西。
1.看着班上一個又一個同學拿到非常不錯的offer,心里說不羡慕嫉妒恨一點不着急肯定是騙人的。這是他們應得的,平時的努力和一次又一次的嘗試,終究會有回報的。至於我嘛,最近算是進入復習狀態,不會像以前那樣什么都不想,也不會綳得太緊。在看書寫東西的時候積攢一點點的自信心,在閑下來想到自己還沒着落的時候又一點點地焦慮起來,循環往復中。
2.最近實習那邊被催得很緊,連續三天都沒什么時間看自己的東西。感受一下工作時的狀態也好,其實我是很懶的人,不是很喜歡這種緊綳的感覺,特別不喜歡別人催我,而且還是用“一定要在什么什么時候完成”之類的話。可是轉念一想,正式工作之后的工作強度和緊張程度一定會更大,而且是大得多,現在開始轉變自己的態度和適應適應也不錯。有點像是在磨礪自己,誰叫以前太懶散了呢。
3.今天從早上到公司坐下,一直到下午下班走人,一直在弄那個bug。晚上回來也沒什么狀態寫東西。因為平時寫,都是白天看了一段時間的資料有個大概的印象,晚上才組織語言開始動手碼字。這篇內容少是少了點,下面幾篇會注意增添一些內容。
 
 
 
 
 
 


免責聲明!

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



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