SQL 語言特點、功能和資料型別
阿新 • • 發佈:2020-12-31
SQL 語言
SQL語言的特點
- 一體化。SQL語言風格統一,可以完成資料庫活動中的全部工作,包括建立資料庫、定義模式、更改和查詢資料以及安全控制和維護資料庫等。
- 高度非過程化。在使用SQL語句訪問資料庫時,使用者沒有必要告訴計算機如何一步步完成任務,只需要用SQL語言描述要做什麼就行了,資料庫管理系統會自動完成全部工作。
- 面向集合的操作方式。SQL語言採用集合操作方式,不僅查詢結果是記錄的集合,而且插入、刪除和更新操作也是記錄的集合。
- 提供多種方式使用。SQL既是自含式語言,又是嵌入式語言。自含式語言可以獨立地聯機互動,即使用者可以直接以命令的方式互動使用。嵌入式語言是指SQL可以嵌入到向Java、C#等高階程式設計語言中使用。
- 語言簡潔。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 | 儲存結果集,供稍後處理 |