amp sqlserver中 什么意思_sql server中创建表时各个数据类型时什么意思??
(1)整數型
整數包括bigint、int、smallint和tinyint,從標識符的含義就可以看出,它們的表示數范圍逐漸縮小。
lbigint:大整數,數范圍為-263(-9223372036854775808)~263-1(9223372036854775807),其精度為19,小數位數為0,長度為8字節。
lint:整數,數范圍為-231(-2,147,483,648)~231-1(2,147,483,647),其精度為10,小數位數為0,長度為4字節。
lsmallint:短整數,數范圍為-215(-32768)~215-1(32767),其精度為5,小數位數為0,長度為2字節。
ltinyint:微短整數,數范圍為0~255,長度為1字節,其精度為3,小數位數為0,長度為1字節。
(2)精確整數型
精確整數型數據由整數部分和小數部分構成,其所有的數字都是有效位,能夠以完整的精度存儲十進制數。精確整數型包括decimal和numeric兩類。從功能上說兩者完全等價,兩者的唯一區別在于decimal不能用于帶有identity關鍵字的列。
聲明精確整數型數據的格式是numeric|decimal(p[,s]),其中p為精度,s為小數位數,s的缺省值為0。例如指定某列為精確整數型,精度為6,小數位數為3,即decimal(6,3),那么若向某記錄的該列賦值56.342689時,該列實際存儲的是56.3427。
decimal和numeric可存儲從-1038+1到1038–1的固定精度和小數位的數字數據,它們的存儲長度隨精度變化而變化,最少為5字節,最多為17字節。
l精度為1~9時,存儲字節長度為5;
l精度為10~19時,存儲字節長度為9;
l精度為20~28時,存儲字節長度為13;
l精度為29~38時,存儲字節長度為17。
例如若有聲明numeric(8,3),則存儲該類型數據需5字節,而若有聲明numeric(22,5),則存儲該類型數據需13字節。
注意:聲明精確整數型數據時,其小數位數必須小于精度;在給精確整數型數據賦值時,必須使所賦數據的整數部分位數不大于列的整數部分的長度。
(3)浮點型
浮點型也稱近似數值型。顧名思義,這種類型不能提供精確表示數據的精度,使用這種類型來存儲某些數值時,有可能會損失一些精度,所以它可用于處理取值范圍非常大且對精確度要求不是十分高的數值量,如一些統計量。
有兩種近似數值數據類型:float[(n)]和real,兩者通常都使用科學計數法表示數據,即形為:尾數E階數,如5.6432E20,-2.98E10,1.287659E-9等。
lreal:使用4字節存儲數據,表數范圍為-3.40E+38到3.40E+38,數據精度為7位有效數字。
lfloat:定義中的n取值范圍是1~53,用于指示其精度和存儲大小。當n在1~24之間時,實際上是定義了一個real型數據,存儲長度為4字節,精度為7位有效數字;當n在25~53之間時,存儲長度為8字節,精度為15位有效數字。當缺省n時,代表n在25~53之間。float型數據的數范圍為-1.79E+308到1.79E+308。
(4)貨幣型
SQLServer提供了兩個專門用于處理貨幣的數據類型:money和smallmoney,它們用十進制數表示貨幣值。
lmoney:數據的數范圍為-263(-922337203685477.5808)~263-1(922337203685477.5807),其精度為19,小數位數為4,長度為8字節。money的數的范圍與bigint相同,不同的只是money型有4位小數,實際上,money就是按照整數進行運算的,只是將小數點固定在末4位。
lsmallmoney:數范圍為–231(-2,147,48.3648)~231-1(2,147,48.3647),其精度為10,小數位數為4,長度為4字節。可見smallmoney與int的關系就如同money與bigint的關系。
當向表中插入money或smallmoney類型的值時,必須在數據前面加上貨幣表示符號($),并且數據中間不能有逗號(,);若貨幣值為負數,需要在符號$的后面加上負號(-)。例如:$15000.32,$680,$-20000.9088都是正確的貨幣數據表示形式。
(5)位型
SQLServer中的位(bit)型數據相當于其他語言中的邏輯型數據,它只存儲0和1,長度為一個字節。但要注意,SQLServer對表中bit類型列的存儲作了優化:如果一個表中有不多于8個的bit列,這些列將作為一個字節存儲,如果表中有9到16個bit列,這些列將作為兩個字節存儲,更多列的情況依此類推。
當為bit類型數據賦0時,其值為0,而賦非0(如100)時,其值為1。
若表中某列為bit類型數據,那么該列不允許為空值(有關空值概念本節稍后即做介紹),并且不允許對其建立索引。
(6)字符型
字符型數據用于存儲字符串,字符串中可包括字母、數字和其它特殊符號(如#、@、&等等)。在輸入字符串時,需將串中的符號用單引號或雙引號括起來,如’abc’、”Abc
SQLServer字符型包括兩類:固定長度(char)或可變長度(varchar)字符數據類型。
lchar[(n)]
定長字符數據類型,其中n定義字符型數據的長度,n在1到8000之間,缺省為1。當表中的列定義為char(n)類型時,若實際要存儲的串長度不足n時,則在串的尾部添加空格以達到長度n,所以char(n)的長度為n。例如某列的數據類型為char(20),而輸入的字符串為”ahjm1922”,則存儲的是字符ahjm1922和12個空格。若輸入的字符個數超出了n,則超出的部分被截斷。
lvarchar[(n)]
變長字符數據類型,其中n的規定與定長字符型char中n完全相同,但這里n表示的是字符串可達到的最大長度。varchar(n)的長度為輸入的字符串的實際字符個數,而不一定是n。例如,表中某列的數據類型為varchar(100),而輸入的字符串為”ahjm1922”,則存儲的就是字符ahjm1922,其長度為8字節。
當列中的字符數據值長度接近一致時,例如姓名,此時可使用char;而當列中的數據值長度顯著不同時,使用varchar較為恰當,可以節省存儲空間。
(7)Unicode字符型
Unicode是“統一字符編碼標準”,用于支持國際上非英語語種的字符數據的存儲和處理。SQLServer的Unicode字符型可以存儲Unicode標準字符集定義的各種字符。
Unicode字符型包括nchar[(n)]和nvarchar[(n)]兩類。nchar是固定長度Unicode數據的數據類型,nvarchar是可變長度Unicode數據的數據類型,二者均使用UNICODEUCS-2字符集。
lnchar[(n)]:nchar[(n)]為包含n個字符的固定長度Unicode字符型數據,n的值在1與4,000之間,缺省為1。長度為2n字節。若輸入的字符串長度不足n,將以空白字符補足。
lnvarchar[(n)]:nvarchar[(n)]為最多包含n個字符的可變長度Unicode字符型數據,n的值在1與4,000之間,缺省為1。長度是所輸入字符個數的兩倍。
實際上,nchar、nvarchar與char、varchar的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。
(8)文本型
當需要存儲大量的字符數據,如較長的備注、日志信息等等,字符型數據的最長8000個字符的限制可能使它們不能滿足這種應用需求,此時可使用文本型數據。
文本型包括text和ntext兩類,分別對應ASCII字符和Unicode字符。text類型可以表示最大長度為231-1(2,147,483,647)個字符,其數據的存儲長度為實際字符數個字節。ntext可表示最大長度為230-1(1,073,741,823)個Unicode字符,其數據的存儲長度是實際字符個數的兩倍(以字節為單位)。
(9)二進制型
二進制數據類型表示的是位數據流,包括binary(固定長度)和varbinary(可變長度)兩種。
lbinary[(n)]:固定長度的n個字節二進制數據。n取值范圍為1到8,000,缺省為1。binary(n)數據的存儲長度為n+4字節。若輸入的數據長度小于n,則不足部分用0填充;若輸入的數據長度大于n,則多余部分被截斷。
輸入二進制值時,在數據前面要加上0x,可以用的數字符號為0—9、A—F(字母大小寫均可)。因此,二進制數據有時也被稱為十六進制數據。例如0xFF、0x12A0分別表示值FF和12A0。因為每字節的數最大為FF,故在“0x”格式的數據每兩位占1個字節。
lvarbinary[(n)]:n個字節變長二進制數據。n取值范圍為1到8,000,缺省為1。varbinary(n)數據的存儲長度為實際輸入數據長度+4個字節。
(10)日期時間類型
日期時間類型數據用于存儲日期和時間信息,包括datetime和smalldatetime兩類。
ldatetime:datetime類型可表示的日期范圍從1753年1月1日到9999年12月31日的日期和時間數據,精確度為百分之三秒(3.33毫秒或0.00333秒),例如1到3毫秒的值都表示為0毫秒,4到6毫秒的值都表示為4毫秒。
datetime類型數據長度為8字節,日期和時間分別使用4個字節存儲。前4字節用于存儲datetime類型數據中距1900年1月1日的天數,為正數表示日期在1900年1月1日之后,為負數則表示日期在1900年1月1日之前。后4個字節用于存儲datetime類型數據中距12:00(24小時制)的毫秒數。
用戶以字符串形式輸入datetime類型數據,系統也以字符串形式輸出datetime類型數據,將用戶輸入到系統以及系統輸出的datetime類型數據的字符串形式稱為datetime類型數據的“外部形式”,而將datetime在系統內的存儲形式稱為“內部形式”,SQLServer負責datetime類型數據的兩種表現形式之間的轉換,包括合法性檢查。
用戶給出datetime類型數據值時,日期部分和時間部分分別給出。
取消
評論
總結
以上是生活随笔為你收集整理的amp sqlserver中 什么意思_sql server中创建表时各个数据类型时什么意思??的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全款车如何贷款 怎么全额贷款买车
- 下一篇: 4位加法器的设计代码verilog_一个