① 請教sql語句如何取得一個表中的列名,數據類型,及長度
sql server 的 系統存儲過程 sp_help,可以直接獲取
例: sp_help a ,獲取表a的結構及自增ID狀態等等。
② sql server怎麼定義數據類型
SQLServer 提供了 25 種數據類型:
Binary [(n)],Varbinary [(n)],Char[(n)],Varchar[(n)],Nchar[(n)],Nvarchar[(n)],Datetime,Smalldatetime
Decimal[(p[,s])],Numeric[(p[,s])],Float[(n)],Real,Int,Smallint,Tinyint,Money,Smallmoney,Bit,Cursor
Sysname,Timestamp,Uniqueidentifier,Text,Image,Ntext。
下面來分別介紹這些數據類型:
(1)二進制數據類型
二進制數據包括 Binary、Varbinary 和 Image
Binary 數據類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4 個位元組。
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4個位元組,不是n 個位元組。
在 Image 數據類型中存儲的數據是以位字元串存儲的,不是由 SQL Server 解釋的,必須由應用程序來解釋。
例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類型中。
(2)字元數據類型
字元數據的類型包括 Char,Varchar 和 Text
字元數據是由任何字母、符號和數字任意組合而成的數據。
Varchar 是變長字元數據,其長度不超過 8KB。
Char 是定長字元數據,其長度最多為 8KB。
超過 8KB 的ASCII 數據可以使用Text數據類型存儲。例如,因為 Html 文檔全部都是 ASCII 字元,
並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數據類型存儲在SQL Server 中。
(3)Unicode 數據類型
Unicode 數據類型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,傳統的非 Unicode 數據類型允許使用由特定字元集定義的字元。
在 SQL Server安裝過程,允許選擇一種字元集。使用 Unicode 數據類型,列中可以存儲任何由Unicode 標準定義的字元。
在 Unicode 標准中,包括了以各種字元集定義的全部字元。使用Unicode數據類型,
所戰勝的窨是使用非 Unicode 數據類型所佔用的窨大小的兩倍。
在 SQL Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext 數據類型存儲。
使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar 字元類型,
這時最多可以存儲 4000 個字元。當列的長度固定不變時,應該使用 Nchar 字元類型,同樣,
這時最多可以存儲4000 個字元。當使用 Ntext 數據類型時,該列可以存儲多於 4000 個字元。
(4)日期和時間數據類型
日期和時間數據類型包括 Datetime 和 Smalldatetime兩種類型
日期和時間數據類型由有效的日期和時間組成。
例如,有效的日期和時間數據包括「4/01/98 12:15:00:00:00 PM」和「1:28:29:15:01AM 8/17/98」。
前一個數據類型是日期在前,時間在後一個數據類型是霎時間在前,日期在後。
在 Microsoft SQL Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,
所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。
使用 Smalldatetime 數據類型時,
所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4 個存儲位元組)。
日期的格式可以設定。設置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。
例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;
當執行 Set DateFormat DMY 之後,日期的格式為日 月有年 形式
(5)數字數據類型
數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點數)和整數
整數由正整數和負整數組成,例如 39、25、0-2 和 33967。
在 Micrsoft SQL Server 中,整數存儲的數據類型是Int,Smallint和 Tinyint。
Int 數據類型存儲數據的范圍大於 Smallint 數據類型存儲數據的范圍,
而 Smallint 據類型存儲數據的范圍大於Tinyint 數據類型存儲數據的范圍。
使用 Int 數據存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組存儲空間)。
使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個位元組存儲空間)。
使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個位元組存儲空間)。
精確小 數數據在 SQL Server 中的數據類型是 Decimal 和 Numeric。這種數據所佔的存儲空間根據該數據的位數後的位數來確定。
在SQL Server 中,近似小數數據的數據類型是 Float 和 Real。例如,三分之一這個分數記作。
3333333,當使用近似數據類型時能准確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。
=======================================================================================
SQL Server的數據類型介紹(二)
(6)貨幣數據表示正的或者負的貨幣數量 。
在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney 。
而Money數據類型要求 8 個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。
(7)特殊數據類型
特殊數據類型包括前面沒有提過的數據類型。特殊的數據類型有3種,即Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用於表示SQL Server 活動的先後順序,以二進投影的格式表示。Timestamp 數據與插入數據或者日期和時間沒有關系。
Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit 數據類型。
例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數據類型的列中。
Uniqueidentifier 由 16 位元組的十六進制數字組成,表示一個全局唯一的。
當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數據類型可以區別不同的客戶。
=======================================================================
用戶定義的數據類型
用戶定義的數據類型基於在 Microsoft SQL Server 中提供的數據類型。當幾個表中必須存儲同一種數據類型時,
並且為保證這些列有相同的數據類型、長度和可空性時,可以使用用戶定義的數據類型。
例如,可定義一種稱為 postal_code 的數據類型,它基於 Char 數據類型。
當創建用戶定義的數據類型時,必須提供三個數:數據類型的名稱、所基於的系統數據類型和數據類型的可空性。
(1)創建用戶定義的數據類型
創建用戶定義的數據類型可以使用 Transact-SQL 語句。系統存儲過程 sp_addtype 可以來創建用戶定義的數據類型。其語法形式如下:
sp_addtype {type},[,system_data_bype][,'null_type']
其中,type 是用戶定義的數據類型的名稱。system_data_type 是系統提供的數據類型,例如 Decimal、Int、Char 等等。
null_type 表示該數據類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use cust
Exec sp_addtype ssn,'Varchar(11)','Not Null'
創建一個用戶定義的數據類型 ssn,其基於的系統數據類型是變長為11 的字元,不允許空。
例子:
Use cust
Exec sp_addtype birthday,datetime,'Null'
創建一個用戶定義的數據類型 birthday,其基於的系統數據類型是 DateTime,允許空。
例子:
Use master
Exec sp_addtype telephone,'varchar(24),'Not Null'
Eexc sp_addtype fax,'varchar(24)','Null'
創建兩個數據類型,即 telephone 和 fax
(2)刪除用戶定義的數據類型
當用戶定義的數據類型不需要時,可刪除。刪除用戶定義的數據類型的命令是 sp_droptype {'type'}。
例子:
Use master
Exec sp_droptype 'ssn'
注意:當表中的列還正在使用用戶定義的數據類型時,或者在其上面還綁定有默認或者規則時,這種用戶定義的數據類型不能刪除。
③ 判斷一個SQL表的欄位類型,用什麼函數
sp_columns
返回當前環境中可查詢的指定表或視圖的列信息。
Transact-SQL 語法約定
語法
sp_columns [ @table_name = ] object [ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
參數
[ @table_name =] object
用於返回目錄信息的表或視圖的名稱。object_name 的數據類型為 nvarchar(384),沒有默認值。支持通配符模式匹配。
[ @table_owner =] owner
用於返回目錄信息的表或視圖的對象所有者。owner 的數據類型為 nvarchar(384),默認值是 NULL。支持通配符模式匹配。如果未指定 owner,則應用基礎 DBMS 的默認表或視圖可見性規則。
在 SQL Server 2005 中,如果當前用戶擁有的表或視圖具有指定名稱,則返回該表的列。如果未指定 owner,並且當前用戶不擁有具有指定 object 的表或視圖,則 sp_columns 將搜索資料庫所有者所擁有的具有指定 object 的表或視圖。如果有,則返回該表的列。
[ @table_qualifier =] qualifier
表或視圖限定符的名稱。qualifier 的數據類型為 sysname,默認值是 NULL。許多 DBMS 產品都支持表的三部分構成命名方式 (qualifier.owner.name)。在 SQL Server 中,此列表示資料庫名稱。在某些產品中,該列表示表所在資料庫環境的伺服器名。
[ @column_name =] column
一個單獨的列,當只需要目錄信息的一列時可使用該參數。column 的數據類型為 nvarchar(384),默認值是 NULL。如果未指定 column,則返回所有列。在 SQL Server 中,column 表示在 syscolumns 表中列出的列名。支持通配符模式匹配。為了獲得最大互操作性,網關客戶端應只採用 SQL-92 標准模式匹配(% 和 _ 通配符)。
[ @ODBCVer =] ODBCVer
當前使用的 ODBC 版本。ODBCVer 的數據類型為 int,默認值為 2。該值指示 ODBC 版本為 2。有效值為 2 或 3。有關版本 2 與版本 3 之間的行為差異,請參閱 ODBC SQLColumns 規范。
返回代碼值
無
結果集
sp_columns 目錄存儲過程與 ODBC 中的 SQLColumns 等價。返回的結果按 TABLE_QUALIFIER、TABLE_OWNER 和 TABLE_NAME 排序。
列名 數據類型 說明
TABLE_QUALIFIER
sysname
表或視圖限定符的名稱。該欄位可以為 NULL。
TABLE_OWNER
sysname
表或視圖所有者的名稱。該欄位始終返回值。
TABLE_NAME
sysname
表或視圖的名稱。該欄位始終返回值。
COLUMN_NAME
sysname
所返回的 TABLE_NAME 中每列的列名。該欄位始終返回值。
DATA_TYPE
smallint
ODBC 數據類型的整數代碼。如果該數據類型無法映射到 ODBC 類型,則為 NULL。本機數據類型名稱在 TYPE_NAME 列中返回。
TYPE_NAME
sysname
表示數據類型的字元串。基礎 DBMS 提供此數據類型的名稱。
PRECISION
int
有效數字位數。PRECISION 列的返回值以 10 為基數。
LENGTH
int
數據的傳輸大小。1
SCALE
smallint
小數點後的數字位數。
RADIX
smallint
數值數據類型的基數。
NULLABLE
smallint
指定為空性。
1 = 可以為 NULL。
0 = NOT NULL。
REMARKS
varchar(254)
該欄位總是返回 NULL。
COLUMN_DEF
nvarchar(4000)
列的默認值。
SQL_DATA_TYPE
smallint
SQL 數據類型出現在說明符的 TYPE 欄位中時的值。該列與 DATA_TYPE 列相同,datetime 和 SQL-92 interval 數據類型除外。該列始終返回值。
SQL_DATETIME_SUB
smallint
datetime 及 SQL-92 interval 數據類型的子類型代碼。對於其他數據類型,該列返回 NULL。
CHAR_OCTET_LENGTH
int
字元或整數數據類型的列的最大長度(位元組)。對於所有其他數據類型,該列返回 NULL。
ORDINAL_POSITION
int
列在表中的序號位置。表中的第一列為 1。此列始終返回值。
IS_NULLABLE
varchar(254)
表中列的為空性。根據 ISO 規則確定為空性。符合 ISO SQL 的 DBMS 無法返回空字元串。
YES = 列可以包含 NULL。
NO = 列不能包含 NULL。
如果不知道為空性,該列則返回零長度字元串。
該列的返回值與 NULLABLE 列的返回值不同。
SS_DATA_TYPE
tinyint
擴展存儲過程使用的 SQL Server 數據類型。有關詳細信息,請參閱數據類型 (Transact-SQL)。
④ sql資料庫中常用的數據類型有什麼
一、整數數據類型:整數數據類型是最常用的數據類型之一。
1、INT(INTEGER)
INT (或INTEGER)數據類型存儲從-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之間的所有正負整數。每個INT 類型的數據按4 個位元組存儲,其中1 位表示整數值的正負號,其它31 位表示整數值的長度和大小。
2、SMALLINT
SMALLINT 數據類型存儲從-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之間的所有正負整數。每個SMALLINT 類型的數據佔用2 個位元組的存儲空間,其中1 位表示整數值的正負號,其它15 位表示整數值的長度和大小。
二、浮點數據類型:浮點數據類型用於存儲十進制小數。浮點數值的數據在SQL Server 中採用上舍入(Round up 或稱為只入不舍)方式進行存儲。
1、REAL數據類型
REAL數據類型可精確到第7 位小數,其范圍為從-3.40E -38 到3.40E +38。 每個REAL類型的數據佔用4 個位元組的存儲空間。
2、FLOAT
FLOAT數據類型可精確到第15 位小數,其范圍為從-1.79E -308 到1.79E +308。 每個FLOAT 類型的數據佔用8 個位元組的存儲空間。 FLOAT數據類型可寫為FLOAT[ n ]的形式。n 指定FLOAT 數據的精度。n 為1到15 之間的整數值。
當n 取1 到7 時,實際上是定義了一個REAL 類型的數據,系統用4 個位元組存儲它;當n 取8 到15 時,系統認為其是FLOAT 類型,用8 個位元組存儲它。
三、二進制數據類型
1、BINARY
BINARY 數據類型用於存儲二進制數據。其定義形式為BINARY( n), n 表示數據的長度,取值為1 到8000 。在使用時必須指定BINARY 類型數據的大小,至少應為1 個位元組。BINARY 類型數據佔用n+4 個位元組的存儲空間。
在輸入數據時必須在數據前加上字元「0X」 作為二進制標識,如:要輸入「abc 」則應輸入「0xabc 」。若輸入的數據過長將會截掉其超出部分。若輸入的數據位數為奇數,則會在起始符號「0X 」後添加一個0,如上述的「0xabc 」會被系統自動變為「0x0abc」。
2、VARBINARY
VARBINARY數據類型的定義形式為VARBINARY(n)。 它與BINARY 類型相似,n 的取值也為1 到8000, 若輸入的數據過長,將會截掉其超出部分。
不同的是VARBINARY數據類型具有變動長度的特性,因為VARBINARY數據類型的存儲長度為實際數值長度+4個位元組。當BINARY數據類型允許NULL 值時,將被視為VARBINARY數據類型。
四、邏輯數據類型
1、BIT:BIT數據類型佔用1 個位元組的存儲空間,其值為0 或1 。如果輸入0 或1 以外的值,將被視為1。 BIT 類型不能定義為NULL 值(所謂NULL 值是指空值或無意義的值)。
五、字元數據類型:字元數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。一般情況下,使用字元類型數據時須在其前後加上單引號』或雙引號」 。
1、CHAR
CHAR 數據類型的定義形式為CHAR[ (n) ]。 以CHAR 類型存儲的每個字元和符號佔一個位元組的存儲空間。n 表示所有字元所佔的存儲空間,n 的取值為1 到8000, 即可容納8000 個ANSI 字元。
若不指定n 值,則系統默認值為1。 若輸入數據的字元數小於n,則系統自動在其後添加空格來填滿設定好的空間。若輸入的數據過長,將會截掉其超出部分。
(4)sql中如何確定列的數據類型擴展閱讀:
SQL包括了所有對資料庫的操作,主要是由4個部分組成:
1、數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。
2、數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
3、數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
4、嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
⑤ SQL數據類型的數據類型
下面的表格列出了主要數據類型。這些同義字在 Microsoft Jet資料庫引擎SQL 保留字中被識別。
數據類型 存儲大小 說明
BINARY 每個字元佔一個位元組 任何類型的數據都可存儲在這種類型的欄位中。不需數據轉換(例如,轉換到文本數據)。數據輸入二進制欄位的方式決定了它的輸出方式。
BIT 1 個位元組0 和 1 ,以及只包含這兩個數值之一的欄位。
TINYINT 1 個位元組 介於 0 到 255 之間的整型數。
MONEY 8 個位元組 介於 – 922,337,203,685,477.5808 到 922,337,203,685,477.5807 之間的符號整數。
DATETIME
(請參閱 DOUBLE ) 8 個位元組 介於 100 到 9999 年的日期或時間數值。
UNIQUEIDENTIFIER 128 個位 用於遠程過程調用的唯一識別數字。
REAL 4 個位元組單精度浮點數,負數范圍是從 –3.402823E38 到 –1.401298E-45,正數從1.401298E-45 到 3.402823E38,和 0。
SMALLINT 2 個位元組 介於 –32,768 到 32,767 的短整型數。
INTEGER 4 個位元組介於 –2,147,483,648 到 2,147,483,647 的長整型數。
DECIMAL 17 個位元組容納從 1028 - 1到 - 1028 - 1. 的值的精確的數字數據類型。你可以定義精度 (1 - 28) 和 符號 (0 - 定義精度)。預設精度和符號分別是18和0。
TEXT 每一字元兩位元組(參見注意) 從零到最大 2.14 千兆位元組。
IMAGE 視實際需要而定 從零到最大 2.14 千兆位元組。用於 OLE 對象。
CHARACTER 每一字元兩位元組(參見注意) 長度從 0 到 255 個字元。
注意
可以用ALTER TABLE 語句修正基數和增量。剛插進表中的行會有自動為基於新種值和增量值的列生成的值。如果新種和增長的值和以前的種值及增量匹配,就會造成復制。如果這個列是主鍵,復制值生成時可能導致錯誤。
定義成TEXT也稱作MEMO)或CHAR(也稱作有具體長度的 TEXT(n))的欄位中的字元被儲存在 Unicode 表示格式。Unicode字元一律需要兩個位元組存儲每一字元。對於現有的主要包含字元數據的 Microsoft Jet資料庫,這可能意味著資料庫文件被轉換成 Microsoft Jet 4.0格式時字長會增加將近一倍。然而,從前由單位元組字元群(SBCS)指示的眾多字元群的Unicode 表示可以很容易地被壓縮成一個單位元組。有關的詳細信息,參見CREATE TABLE。如果用COMPRESSION屬性定義CHAR列,數據存儲時會自動被壓縮,提取時解壓縮。
請參閱
等效的 ANSI SQL 數據類型 Microsoft Jet 資料庫引擎 SQL 的保留字 數據類型是數據的一種屬性,表示數據所表示信息的類型。任何一種計算機語言都定義了自己的數據類型。當然,不同的程序語言都具有不同的特點,所定義的數據類型的種類和名稱都或多或少有些不同。SQLServer 提供了 25 種數據類型:
·Binary [(n)]
·Varbinary [(n)]
·Char [(n)]
·Varchar[(n)]
·Nchar[(n)]
·Nvarchar[(n)]
·Datetime
·Smalldatetime
·Decimal[(p[,s])]
·Numeric[(p[,s])]
·Float[(n)]
·Real
·Int
·Smallint
·Tinyint
·Money
·Smallmoney
·Bit
·Cursor
·Sysname
·Timestamp
·Uniqueidentifier
·Text
·Image
·Ntext
(1)二進制數據類型
二進制數據包括 Binary、Varbinary 和 Image
Binary 數據類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲空間的大小是 n + 4 個位元組。
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲空間的大小是 n + 4個位元組,不是n 個位元組。
在 Image 數據類型中存儲的數據是以位字元串存儲的,不是由 SQL Server 解釋的,必須由應用程序來解釋。例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類型中。
(2)字元數據類型
字元數據的類型包括 Char,Varchar 和 Text
字元數據是由任何字母、符號和數字任意組合而成的數據。
Varchar 是變長字元數據,其長度不超過 8KB。Char 是定長字元數據,其長度最多為 8KB。超過 8KB 的ASCII 數據可以使用Text數據類型存儲。例如,因為 Html 文檔全部都是 ASCII字元,並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數據類型存儲在SQL Server 中。
(3)Unicode 數據類型
Unicode 數據類型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,傳統的非 Unicode 數據類型允許使用由特定字元集定義的字元。在 SQL Server安裝過程中,允許選擇一種字元集。使用 Unicode 數據類型,列中可以存儲任何由Unicode 標準定義的字元。在 Unicode 標准中,包括了以各種字元集定義的全部字元。使用Unicode數據類型,所佔用的空間是使用非Unicode數據類型所佔用的空間大小的兩倍。
在 SQL Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext 數據類型存儲。使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar字元類型,這時最多可以存儲 4000 個字元。當列的長度固定不變時,應該使用 Nchar字元類型,同樣,這時最多可以存儲4000 個字元。當使用 Ntext 數據類型時,該列可以存儲多於 4000 個字元。
(4)日期和時間數據類型
日期和時間數據類型包括 Datetime 和 Smalldatetime兩種類型
日期和時間數據類型由有效的日期和時間組成。例如,有效的日期和時間數據包括「4/01/98 12:15:00:00:00 PM」和「1:28:29:15:01AM 8/17/98」。前一個數據類型是日期在前,時間在後;後一個數據類型是時間在前,日期在後。在 Microsoft SQL Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。使用 Smalldatetime 數據類型時,所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4 個存儲位元組)。
日期的格式可以設定。設置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。
例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;當執行 Set DateFormat DMY 之後,日期的格式為日 月有年 形式
(5)數字數據類型
數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點數)和整數
整數由正整數和負整數組成,例如 39、25、0-2 和 33967。在 Microsoft SQL Server 中,整數存儲的數據類型是 Int,Smallint和 Tinyint。Int 數據類型存儲數據的范圍大於 Smallint 數據類型存儲數據的范圍,而 Smallint 據類型存儲數據的范圍大於Tinyint 數據類型存儲數據的范圍。使用 Int 數據類型存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組存儲空間)。使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個位元組存儲空間)。使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個位元組存儲空間)。
精確小數數據在 SQL Server 中的數據類型是 Decimal 和 Numeric。這種數據所佔的存儲空間根據該數據的位數後的位數來確定。Decimal 數據類型使用128位來表示值來用作數值計算。
在SQL Server 中,近似小數數據的數據類型是 Float 和 Real。例如,三分之一這個分數記作0.333333,當使用近似數據類型時能准確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。
(6)貨幣數據類型
在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney
Money數據類型要求 8 個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。
(7)特殊數據類型
特殊數據類型包括前面沒有提過的數據類型。特殊的數據類型有3種,即 Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用於表示SQL Server 活動的先後順序,以二進投影的格式表示。Timestamp 數據與插入數據或者日期和時間沒有關系。Timestamp 類型的欄位是一個基於系統時鍾在數據行被創建或修改時由SQL Server自動填充的值。
Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit 數據類型。例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數據類型的列中。
Uniqueidentifier 由 16位元組的十六進制數字組成,表示一個全局唯一的。當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數據類型可以區別不同的客戶。 用戶定義的數據類型基於在 Microsoft SQL Server 中提供的數據類型。當幾個表中必須存儲同一種數據類型時,並且為保證這些列有相同的數據類型、長度和可空性時,可以使用用戶定義的數據類型。例如,可定義一種稱為 postal_code 的數據類型,它基於 Char 數據類型。
當創建用戶定義的數據類型時,必須提供三個數:數據類型的名稱、所基於的系統數據類型和數據類型的可空性。
(1)創建用戶定義的數據類型
創建用戶定義的數據類型可以使用Transact-SQL語句。系統存儲過程sp_addtype 可以來創建用戶定義的數據類型。其語法形式如下:
sp_addtype {type},[,system_data_bype][,'null_type']
其中,type 是用戶定義的數據類型的名稱。system_data_type 是系統提供的數據類型,例如 Decimal、Int、Char 等等。 null_type 表示該數據類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use cust
Exec sp_addtype ssn,'Varchar(11)','Not Null'
創建一個用戶定義的數據類型 ssn,其基於的系統數據類型是變長為11 的字元,不允許空。
例子:
Use cust
Exec sp_addtype birthday,datetime,'Null'
創建一個用戶定義的數據類型 birthday,其基於的系統數據類型是 DateTime,允許空。
例子:
Use master
Exec sp_addtype telephone,'varchar(24)','Not Null'
Eexc sp_addtype fax,'varchar(24)','Null'
創建兩個數據類型,即 telephone 和 fax
(2)刪除用戶定義的數據類型
當用戶定義的數據類型不需要時,可刪除。刪除用戶定義的數據類型的命令是 sp_droptype {'type'}。
例子:
Use master
Exec sp_droptype 'ssn'
注意:當表中的列還正在使用用戶定義的數據類型時,或者在其上面還綁定有默認或者規則時,這種用戶定義的數據類型不能刪除。
⑥ 如何查看sql server中所有的數據類型
可用兩種方法,一種是在Microsoft SQL Server Manager Studio中的圖形界面查詢,另一種是語句查詢。
方法1:
1、使用Microsoft SQL Server Manager Studio登錄資料庫。
2、在左邊樹找到要查的表,並點擊前邊的「+」
3、點擊「列」前邊的「+」
4、然後就可以看到要查的欄位的類型了,如圖:
方法2:
直接用語句查詢,如要查student表中的所有欄位類型:
select a.name 表名,b.name 欄位名,c.name 欄位類型,c.length 欄位長度 from sysobjects a,syscolumns b,systypes c where a.id=b.id
and a.name='student' and a.xtype='U'
and b.xtype=c.xtype
結果截圖: