標籤:
從轉行做軟體始,就開始接觸sql,但還是不怎麼深入,回憶3月份找工作的時候,左關聯都沒有寫出來,真是丟臉,以此部落格做個認真的開始。
以後的日子,遇到了圓柱體的空心物體,我就應該聯想到一樣東西,那就是資料庫。資料庫這個東西就是放資料的倉庫。那麼什麼又是資料呢?資料就是人們對客觀事物的描述,就可是資料。如樹有高度,有多少片樹葉,有綠色等等,這些就算是資料。
電腦時代的到來,讓人們不再將資料存放在諸如紙質的資料裡,而是存放在儲存空間裡面。如何快速的存取我們得資料呢?人們就設計了一個管理系統,來管理資料的儲存和取出。好了,這個系統,就是資料庫管理系統。那麼現在經常聽說的關係型資料庫管理系統就是這個了。
關係型資料庫裡的最簡單的儲存單元就是表。表與表之間又存在著“關係”。這也是關係型資料庫名稱的來源。這裡我們就好奇了,這個關係是什麼呢?關係就是關聯,可以這樣想,一個表可以通過某種關聯找到另一個表裡的資料。這個就算是關聯。
現在我們進入到表的裡面去看看,表的結構是怎麼樣的?表有行和列之分。行被稱為記錄。表的列是欄位。行與行之間可以通過主鍵來區分唯一性。對於某一個儲存格裡放的內容呢,那就要涉及到了這個儲存格所處的列了,這個列規定了限制了這個列所有的儲存格都要遵守的規範,也就是資料類型,如這列的儲存格裡面,只能存放字串,或是只能存放數實值型別的等等。按照國際上對關係型資料庫的約定的話,各個資料庫廠商生產做出來的資料庫都應該包含字串、數值、日期時間類型的資料類型。按我自己的思路我總結了下,就是3+2+1+0。什麼意思呢?
1、“3”就是字串類型、數實值型別、日期時間類型。字串類型又根據長度是否可變分為可變字串和定長字串。可變字串如果變得很大的話,又一種專有的名詞來定義,就是大物件類型,如BOLB或TEXT資料類型,前者是二進位字串,後者如文本的字串。還有個叫做直義字串,如“hello”。數實值型別呢,就如整數,小數,浮點數。日期時間類型就不用說了。
2、“2”就是null類型和bool類型。
3、“1”就是資料庫支援的自訂類型。
4、“0”像個圈,圈就類似地區。故我用”0“來指代資料庫裡特有的一個名詞”域“。域就是某個欄位或說某個列能後使用的資料類型的集合,域往往又和約束一起使用,當你去引用一個被約束作用的域後,就可以更加精確的限制某個列能夠儲存的資料類型。
好了,我們現在對資料庫的基本的結構在腦海裡有個大致的樣子了,就是一個圓柱體裡,或者就是某個化工廠裡的一個罐罐。哈哈。這裡面放了很多二維表,這些表裡存放了很多來自客觀世界的描述。現在在遠處的人們,怎麼才能與這個罐罐進行互動呢,用它來存取資料呢?這就要用到一個語言,一個用於人們的用戶端與資料庫之間進行通訊的語言,這個語言就是sql語言。有了這個語言,在遠處的某個人,如張三,他想對那個罐罐裡的某個表的資料進行查看,他就可以發送一個sql語句到那個罐罐去,那個罐罐接收並處理了那個語句後,如果有資料結果,就會返回出來並發送到張三那去。這個過程就是sql會話。張三能說的話有哪幾類能被罐罐資料庫理解呢?有如下:
A.資料定義語言 (Data Definition Language)DDL。就是定義如表的大致框框如欄位是什麼,欄位的類型是什麼,表名是什麼等等,這時,這個表只有架構,儲存格裡並沒有存放資料,也就是說記錄數是0。
B.資料操作語言DML。就是往資料庫裡插入、修改、刪除記錄的操作語言。
C.資料查詢語言DQL。就是不操作,僅僅查看。
D.資料控制語言DCL。這是有關於許可權的語言。能限制哪些使用者能看到哪些資料。
E.資料管理命令。
F.事務控制命令。
具體內容,下回分解。
今日到此為止,晚安!!!
(一)sql入門