SQL資料型別使用,sql資料型別有哪些?

2022-09-02 10:15:03 字數 4687 閱讀 2938

1樓:

各種資料型別並不是死的,很多東西需要看你使用時的習慣和一致性需要學號字段設定時基本上是通長度,這時候用char正好契合,如果你非要用int,float或者varchar等也是可以的,但是在使用以及給使用者看的時候有很多需要轉換,比較麻煩

bit只用2個值用來定義是/否,男/女,有效/無效,等標記性質的字段text為很長的字段,如果你要存幾千字那就用textint,float是存數字的,沒什麼可說的char和nchar的主要區別是字元編碼的不同,char是ascii碼,nchar是uncode,如果這個欄位存的是中文就用nchar,其實用char也是可以的,如果是英文用nchar也能存,就是有點浪費

varchar和char的區別就是是否定長,char的話如果不足長度,會自動補足,varchar則不會

2樓:匿名使用者

學號位數多,而且不能用數值而要用字元。否則0001111和1111無法體現區別,所以是char;備註通常要打字說明,所以是text;性別只有2種吧?用位型就可以了,省空間。

什麼欄位用什麼資料型別是看它的實際情況和需要來的,不是死的。

3樓:

實際上沒有必要給各欄位太多種類的資料型別。

如果你要做**開發之類的工作你就會知道了,定義資料型別種類越少越好。

不然,轉換起來非常麻煩,而且非常容易出錯。

能按意思表達出來就可以了。

sql資料型別有哪些?

sql server中的demical資料型別怎麼使用?

4樓:匿名使用者

demical(m,n) 和 numeric(m,n) 表示 共m位數字,其中n位是小數,其中n <=m

這倆都是sql標準中的。

demical(18,0) 相當於定義了乙個18位的整數

5樓:匿名使用者

--就是精度的表達

demical(18,0) 18說明長度是18位,0代表小數點後的小數字數

有什麼不明白的可以隨時問我 希望採納

這裡需要注意的是 不包含小數點

比如demical(8,2) 這裡可以說 整數部分是8-2=6位 小數是2位 小數點不算

6樓:匿名使用者

是decimal,,,,18表示可以儲存的總位數,預設為18.最大38;0表示小數點右邊有幾位,0就表示後面沒有了,,,2就表示小數點後面2位

7樓:匿名使用者

語法:demical(整數部分位數+小數部分位數,小數部分位數)示例:demical(3, 1)

解釋:[整數部分的位數] + [小數部分的位數] <= 3[小數部分的位數] <= 1

sql中資料型別有哪些?

8樓:邦德和他的

字元型 varchar2

數字型 number(10,2) 可以整數也可以小數 逗號後面就是小數的位數

時間 date

9樓:匿名使用者

這個問題也問。

靠。幫助文件裡沒有麼!

10樓:電子錶

具體要看你使用的是哪種資料庫,比如sql server和oracle的都不一樣。常見的有:

整形,單精度,雙精度,可變長度字元,固定長度字元,長型,日期……

sql詳細舉例子說明下面這些資料型別有什麼用? 100

11樓:乘風破浪

1,整型:比如說儲存乙個人的年齡

2,浮點型:比如儲存乙個人的收入

3,字元型:比如儲存乙個人的姓名

4,日期和時間資料型別:比如儲存乙個人的出生年月(可以用between....and...查詢時間段)

5,文字:比如儲存乙個人的興趣愛好,描述乙個人等

6,圖形:比如說儲存乙個人的相片等

7,貨幣型:在前面要用貨幣符號;$1555.445,不過一般用的很少,一般用decimal或者double

8,位資料:只儲存0和1(比如說當時0時,表示性別女,1時表示性別男)

9,二進位制:最大為8000個位元組,用於存數二進位制資料

10,特殊:(1)timestamp(時間戳) 用於表示sql server 活動的先後順序,以二進投影的格式表示。timestamp 資料與插入資料或者日期和時間沒有關係。

(2)uniqueidentifier 由 16 位元組的十六進位制數字組成,表示乙個全域性唯一的。當表的記錄行要求唯一時,guid是非常有用。例如,在客戶標識號列使用這種資料型別可以區別不同的客戶。

11新增:sql2008新增:(1)date 只記錄日期資料 date = getdate() 2010-08-07;(2)

time 只記錄時間,精確100納秒time = getdate()00:14:36.2000000 (3)datetime2

不包含時區,精確100納秒;(4)datetimeoffset 包含時區,精確100納秒

好吧,能理解的就這麼多!其實後面的我只記也不熟,沒怎麼用過!

【sql】金額如果存在資料庫中應該使用何種型別?

12樓:情投意合張老師

在工作中發現原本系統中金額型別(int 10,存入資料庫時乘100)已經不能滿足當前需求,需要重新修改型別。於是像技術總監發起兩次審批,但都被駁回了。第一次金額型別為 decimal(32,8) , 第二次型別是 decimal(10,2),之後技術總監說,你第一次的型別可能是對的,於是小彭百思不得其解,引發以下的靈魂三問......

為什麼系統期初設定金額時要用 int 10 型別?

為什麼兩次審批都被駁回?

為什麼後來技術總監又說第一次的可能是對的?

簡單思考過後:小彭,大膽的推測了第乙個問題,可能是當初設計資料結構時,認為金額精確到分即可,所以預設乘100 (保留兩位小數)。但金額最大為 9千萬元,是否真的能符合要求,回頭還得再問問技術總監。

這時,小彭又想到兩個問題:

既然是保留小數了,為什麼還要用 int 型別呢?

如果說 float和 double型別可能會存在精度問題,又為什麼不用 decimal型別呢?

經過查閱部落格之後:小大概想通了第二個問題,第一次被駁回的原因是:decimal型別在資料庫中是根據傳入的數值來決定儲存的位元組長度的,32明顯過長會導致磁碟空間的浪費。

而第二次則是走了另外乙個極端:原本長度為10已經快要滿足不了需求的了,如果再修改為同樣的長度意義不大,還會引起後續再次修改型別的情況。

又結合系統反思了一下:大概明白了第三個問題,至於金額的長度其實是沒有沒有乙個具體的標準的,要根據具體業務情況,預估最大的金額上限,再決定具體長度。

意料之外的驚喜,在看書籍中意外的解決了第二組的兩個問題。 由於cpu不支援對 decimal 的 直接計算,所以在計算的過程中需要額外的空間及計算開銷,導致效能過慢。還存在另外一種解決方案:

使用 bigint 代替 decimal,在計算時,可以乘或除以相應的倍數即可,來取代 decimal 計算代價高的問題。

最後總結:

float和 double型別會存在精度問題,是因為十進位制0.1在電腦裡用二進位制是無法精確表示的。

decimal型別在資料庫中儲存的位元組長度計算公式:對decimal(m,d) ,如果m>d,長度為m+2,否則為d+2。

要根據具體業務情況,預估最大的金額上限,再決定具體長度。

decimal 計算的過程中需要額外的空間及計算開銷,效能低。

13樓:戎蘊秋梵

一般用money或decimal或numeric,而不用float或double,因為容易出現"失真".

money貨幣資料儲存的精確度為四位小數。可以儲存在 money 資料型別中的值的範圍是 -922,337,203,685,477.5808 至 +922,337,203,685,477.

5807(需 8 個位元組的儲存空間)。

在 sql server中,numeric 資料型別等價於 decimal 資料型別。儲存 decimal 或 numeric 數值所需的位元組數取決於該資料的數字總數和小數點右邊的小數字數。

14樓:匿名使用者

number(p,s)

精確到小數點後面s位

15樓:匿名使用者

看你的精度了。一般money decimal 都可以

16樓:

int varchar 都可以 輸出時做個格式化

sql資料庫,自定義資料型別不能使用

17樓:匿名使用者

試試直接create type char20 from char(20)

18樓:匿名使用者

teacher char20); 少了(

19樓:神崎橙

char20 少了引號

sql server中double資料型別

20樓:大龍

sql server沒有double型別,若是你需要用雙精度資料,如果不固定小數字,用float就可以了;

若是固定小數字,可以用numric;如果整數和小數都出現,可以用real

sql資料型別有哪些

一 整數資料型別 整數資料型別是最常用的資料型別之一。1 int integer 62616964757a686964616fe58685e5aeb931333335313233 int 或integer 資料型別儲存從 2的31次方 2 147 483 648 到2的31次方 1 2 147 48...

如何使用SQL?如何使用SQL資料庫

sql有什麼用途呀?一 sql的作用 1 sql主要用於資料庫系列的軟體的查詢 彙總 寫入 刪改等方面的操控,具體應用於資料庫程式設計或資料庫資料的維護。2 也就是說sql一般用於資料庫程式設計,以及現有資料庫錯誤排查。所以一般涉及資料庫的程式設計人員或電腦資訊化系統維護人員需要對sql 也就是對資...

sql中如何使datetime型別的資料只顯示日期

convert varchar 30 字段,23 查詢的時候用的.select convert varchar 30 字段,23 from 表 顯示的格式就是日期 查詢的話 用 select from 表 where date like 2010 7 12 或者select from 表 where...