varchar
int
bit
datetime
money
基本上就這些常用的
字元串太長的 可以用 text
2. Sql資料庫最主要的對象是哪個
如果非要說一個,感覺是---表
資料庫中的基本所有的操作都是基於表數據來的
無論是視圖,索引,過程,函數,還是其他的什麼,,,
3. SQL資料庫中都是以表的形式存儲數據的嗎
SQLSERVER資料庫中數據存儲:
一:存儲文件類型
SQLSERVER有兩種數據存儲文件,分別是數據文件和日誌文件。
其中:數據文件是以8K(=8192Byte)的頁面(Page)作為存儲單元的。
而日誌文件是以日誌記錄作為存儲單元。本文只討論數據文件的存儲方式,不涉及到日誌文件存儲方式。
數據文件以頁面做為存儲單元存儲數據,要理解數據文件的存儲方式,必須了解SQLSERVER中定義的頁面類型種類。
二:頁面類型
SQLSERVER中頁面類型有8種,具體每種類型的詳細說明,見下圖:
用戶的數據一般存放在數據頁面中,由上圖可以看出,數據頁包含數據行中除 text、ntext 和 image 數據外的所有數據,text、ntext 和 image 數據存儲在單獨的頁中。那麼在一個數據頁面中,數據是如何存放,SQLSERVER又是根據什麼來定位頁面與頁面上的數據呢。要回答這個問題,有必要先了解數據頁面的具體結構。
三:數據頁面結構
在數據頁上,數據行緊接著頁首按順序放置。在頁尾有一個行偏移表。在行偏移表中,頁上的每一行都有一個條目,每個條目記錄那一行的第一個位元組與頁首的距離。行偏移表中的條目序列與頁中行的序列相反。數據頁面結構如下圖所示,下面將詳細解釋
其中:數據頁面頁首:96個位元組,保存著頁面的系統信息,如頁的類型、頁的可用空間量、擁有頁的對象的對象 ID 以及該頁面所屬於哪個物理文件。
數據區:對應於上圖中所有數據行的總區域,存放真正的數據,是以Slot為單位。一個Slot就是對應於一條數據記錄行,從0開始編號,以16進制反序保存,Slot0,Slot1....。
行偏移數組:用於記錄該數據頁面中每個Slot在數據頁面所處的相對位置,便於定位和檢索每個Slot在數據頁面中的位置,數組中每個記錄占兩個位元組。
四:存儲分配單位:盤區(擴展 Extend)
雖然SQLSERVER中數據文件存儲單位是頁面(Page),但實際SQLSERVE並不是為頁面為單位給數據分配空間,SQLSERVER默認的存儲分配單位是盤區。這樣做的主要原因是為了提高性能。為了避免頻繁的讀寫IO,在表或其它對象分配存儲空間,不是直接分配一個8K的頁面,而是以一個盤區(Extend)為存儲分配單位,一個盤區為8個頁面(=8*8K=64K)。
但是這樣做雖然減少了頻繁的IO讀寫,提高的資料庫性能,但卻導致出一個新問題,那就是在存儲那些只有少量數據,不足8K的對象,如果也是分配給一個盤區,就會存在存儲空間上的浪費,降低了空間分配效率。
為解決上述問題,SQLSERVER提供了一種解決方案,定義了兩種盤區類型,統一盤區和混合盤區。
其中:統一盤區只能存放同一個對象,該對象擁有這個盤區的所有頁面
混合盤區:由多個對象共同擁有該盤區。
在實際為對象分配存儲盤區時,為了提高空間利用率,默認的情況下,如果一個對象一開始大小小於8個頁面,就盡量放在混合盤區中,如果該對象大小增加到8個頁面後,SQLSERVER會為這個對象重新分配一個統一盤區。
為了能夠通過上述策略來實現為對象分配存儲盤區,SQLSERVER提供了GAM/SGAM機制來管理和維護數據文件的盤區信息。
4. sql中視圖與表的區別
sql中視圖與表的區別為:性質不同、存儲內容不同、操作不同。
一、性質不同
1、視圖:視圖不是一個獨立的文件,是由一個或幾個基本表導出形成的虛表。
2、表:表是資料庫中用來存儲數據的對象,是有結構的數據的集合,是整個資料庫系統的基礎。
二、存儲內容不同
1、視圖:視圖存儲的內容是來自本地數據源或遠程數據源的定義,不存放實際數據。
2、表:表存儲的內容是本地數據源的數據。
三、操作不同
1、視圖:操作者只可以對視圖進行查操作,不能進行增刪改操作。
2、表:操作者可以對表進行增刪改查四種操作。
5. 在sql,關系資料庫中不僅僅包含表,還包括哪些數據對象的
表,由行和列構成的集合,用來存儲數據
數據類型,定義列或變數的數據類型,SQL Server提供了系統數據類型,並允許用戶自定義數據類型
視圖,由表或其他視圖導出的虛擬表
索引,為數據快速檢索提供支持且可以保證數據唯一性的輔助數據結構
約束,用於為表中的列定義完整性的規則
默認值,為列提供的預設值
存儲過程,存放於伺服器的預先編譯好的一組T-SQL語句
觸發器,特殊的存儲過程,當用戶表中數據改變時,該存儲過程被自動執行
6. 1. 資料庫中存儲的基本對象是什麼
答案:
資料庫中存儲的基本對象是表
7. 資料庫中表對象與查詢對象區別
這個說的是access么?
表對象就是資料庫概念中的table,這個是實際存儲數據的對象。
查詢對象應該說的是資料庫概念中的view,view是一個命名的經過編譯sql語句,不實際存儲數據。