天天看點

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之間的值,預設是0 5-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的預設值為53 4或8位元組
real 從 -3.40E+38 到 3.40E+38 的浮動精度數字資料 4位元組

日期類型

資料類型 描述 存儲
datetime 從1753年1月1日到9999年12月31日,精度為3.33ms 8位元組
datetime2 從1753年1月1日到9999年12月31日,精度為100ns 6~8位元組
smalldatetime 從1900年1月1日到2079年6月6日,精度為1min 4位元組
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) 固定長度的二進制資料,最多8000B n B
varbinary(n) 可變長度的二進制資料,最多8000B 由實際長度決定
varbinary(max) 可變長度的二進制資料,最多2GB 由實際長度決定
image 可變長度的二進制資料,最多2GB 由實際長度決定

其他類型

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