1. 程式人生 > 資料庫 >SQL 語言特點、功能和資料型別

SQL 語言特點、功能和資料型別

SQL 語言

SQL語言的特點

  1. 一體化。SQL語言風格統一,可以完成資料庫活動中的全部工作,包括建立資料庫、定義模式、更改和查詢資料以及安全控制和維護資料庫等。
  2. 高度非過程化。在使用SQL語句訪問資料庫時,使用者沒有必要告訴計算機如何一步步完成任務,只需要用SQL語言描述要做什麼就行了,資料庫管理系統會自動完成全部工作。
  3. 面向集合的操作方式。SQL語言採用集合操作方式,不僅查詢結果是記錄的集合,而且插入、刪除和更新操作也是記錄的集合。
  4. 提供多種方式使用。SQL既是自含式語言,又是嵌入式語言。自含式語言可以獨立地聯機互動,即使用者可以直接以命令的方式互動使用。嵌入式語言是指SQL可以嵌入到向Java、C#等高階程式設計語言中使用。
  5. 語言簡潔。SQL語法簡單,易學易用。

SQL語言的功能

SQL語言按其功能可分為4大部分:資料定義、資料查詢、資料操作、資料控制。相關謂詞為:

SQL功能謂詞
資料定義(DDL)CREATE、DROP、ALTER
資料查詢(DQL)SELECT
資料操縱(DML)INSERT、UPDATE、DELETE
資料控制(DCL)GRANT、REVOKE、DENY
  • 資料定義功能用於定義、刪除和修改資料庫中的物件,資料庫、關係表、檢視、索引等都是資料庫物件。
  • 資料查詢功能用於實現查詢資料的功能,資料查詢是資料庫中使用最多的操作。
  • 資料操作功能用於新增、刪除和修改資料庫。
  • 資料控制功能用於控制使用者對資料的操作許可權。

SQL支援的資料型別

主要是 Microsoft SQL Server 中的型別

數值型

精確數字

資料型別描述儲存
tinyint允許從0到255的所有數字1位元組
smallint允許從-32 768到32 767的所有數字2位元組
int允許從-2 147 483 648 到 2 147 483 647 的所有數字4位元組
bigint允許從 -9 233 372 036 854 775 808 到 9 233 372 036 854 775 807 的所以數字8位元組
decimal(p,s)

numeric(p,s)
固定精度和比例的數字,允許從 -10^38+1 到 10^38-1 之間的數字,p表示可以儲存的最大位數(小數點左側和右側),p必須是 1~38 之間的值。預設是18;s表示小數點右側儲存的最大位數,s必須是0到p之間的值,預設是05-17位元組
smallmoney介於 -214 748. 364 8 和 214 748. 364 7 之間的貨幣資料4位元組
money介於 -922 337 203 685 477. 850 8和 922 337 206 685 477. 580之間的貨幣資料8位元組

近似資料

資料型別描述儲存
float(n)從 -1.79E+308 到 1.79E+308 的浮動精度數字資料;引數n表示該欄位保留4位元組還是8位元組,float(24)儲存4位元組,float(53)儲存8位元組,n的預設值為534或8位元組
real從 -3.40E+38 到 3.40E+38 的浮動精度數字資料4位元組

日期型別

資料型別描述儲存
datetime從1753年1月1日到9999年12月31日,精度為3.33ms8位元組
datetime2從1753年1月1日到9999年12月31日,精度為100ns6~8位元組
smalldatetime從1900年1月1日到2079年6月6日,精度為1min4位元組
date僅儲存日期,從0001年1月1日到9999年12月31日3位元組
datetimeoffset與datetime2相同,外加時區偏移8~10位元組
timestamp儲存唯一的數字,每當建立或修改某行時,該數字會更新。timestamp基於內部時鐘,不對應真實時間,每個表只能有一個timestamp變數

字串型

普通字元編碼串

資料型別描述儲存
char(n)固定長度的字串,最多8000個字元n位元組
varchar(n)可變長度的字串,最多8000個字元由實際長度決定
varchar(max)可變長度的字串,最多1073741824個字元由實際長度決定
text可變長度的字串,最多2GB字元資料由實際長度決定

統一字元編碼串

資料型別描述儲存
nchar(n)固定長度的Unicode資料,最多4000個字元n位元組
nvarchar(n)可變長度的Unicode資料,最多4000個字元由實際長度決定
nvarchar(max)可便長度的Unicode資料,最多536870912個字元由實際長度決定
ntext可變長度的Unicode資料,最多2GB字元資料由實際長度決定

二進位制串

資料型別描述儲存
bit允許0,1或NULL
binary(n)固定長度的二進位制資料,最多8000Bn B
varbinary(n)可變長度的二進位制資料,最多8000B由實際長度決定
varbinary(max)可變長度的二進位制資料,最多2GB由實際長度決定
image可變長度的二進位制資料,最多2GB由實際長度決定

其他型別

資料型別描述
sql_variant儲存最多8000位元組不同資料型別的資料,除了text、ntext、timestamp
uniqueidentifier儲存全域性識別符號(GUID)
xml儲存XML格式化資料,最多2GB
cursor儲存對用於資料庫操作的指標的引用
table儲存結果集,供稍後處理