⑴ 資料庫表中欄位類型有哪些
資料庫表中欄位類型有以下幾種:
二進制數據類型
Binary、Varbinary、Image
2.字元數據類型
Char,Varchar和 Text
3.Unicode數據類型
包括Nchar,Nvarchar和Ntext
4.日期和時間數據類型
包括Datetime, Smalldatetime, Date, TimeStamp
5.數字數據類型
數字數據類型包括正數和負數、小數和整數
6.貨幣數據類型
表示正的或者負的貨幣數量。
7.特殊數據類型
特殊的數據類型有3種,即Timestamp、Bit 和 Uniqueidentifier。
⑵ sql 欄位類型(字元型)
char,varchar,nvarchar.沒有很大的
區別
。nvarchar一盤用來存儲
漢字
,如果用它來存儲
英文
會浪費一個
位元組
的空間。
char和varchar的區別在於,varchar佔用的空間會自動調節,用於不確定的
字元
長度
。比如你定義varchar(20),但是在插入數據的時候只插入'aa',那麼它只佔用2個位元組的空間,如果是cahr則是20
⑶ ORACLE SQL語句 欄位類型有哪些
1、需要用到兩個字元類函數instr和substr,具體用法介紹如下:
函數:字元定位函數
instr
語法:instr(待處理的字元串,需要查找的字元,開始查找的起始位置,第n次出現)
返回值:字母所在的位置,沒有返回
0;
函數:字元定位函數
substr
語法:substr('要切割的值',從第幾個位置開始切割,切割幾位);
返回值:截取的字元串。
2、該題實現步驟,以欄位a內容為'武漢一一科技公司(2009年2月注銷)'為例:
第一步:先從欄位a的欄位第一個字元往前找左括弧'('
第一次出現的位置,如下:
select
instr('武漢一一科技公司(2009年2月注銷)',
'(',
1,
1)
--
9
from
al;
第二步:從欄位第一個字元開始,一直找出左括弧'('的前一位就行,如下:
select
substr('武漢一一科技公司(2009年2月注銷)',
1,
instr('武漢一一科技公司(2009年2月注銷)',
'(',
1,
1)
-
1)
from
al;
註:如果某某公司名稱本身可能含有括弧的話,建議從最後一個字元倒著往回找左括弧出現第一次的位置,即
select
instr('武漢一一科技公司(2009年2月注銷)',
'(',
-1,
1)
--
9
from
al;
3、最終答案
select
select
substr(a,
1,
instr(a,
'(',
-1,
1)
-
1)
from
table
;
⑷ 資料庫表中欄位類型有哪些
資料庫表中欄位類型有二進制數據類型、字元數據類型、數字數據類型 等其中類型。具體類型如下所示:
1、二進制數據類型
Binary、Varbinary、Image
2、字元數據類型
Char,Varchar和 Text
3、Unicode數據類型
包括Nchar,Nvarchar和Ntext
4、日期和時間數據類型
包括Datetime, Smalldatetime, Date, TimeStamp
5、數字數據類型
數字數據類型包括正數和負數、小數和整數
6、貨幣數據類型
表示正的或者負的貨幣數量。
7、特殊數據類型
特殊的數據類型有3種,即Timestamp、Bit 和 Uniqueidentifier。
⑸ SQL 欄位類型(字元型)
char 定長字元串,一般用於存儲類似郵政編碼信息.
nvarchar 雙位元組字元串,適合存儲漢字,一個字元也將浪費1個雙位元組位.
varchar 單位元組字元串,在這里一個漢字佔用兩個位元組.
如果是混排個人覺得適合使用varchar.
⑹ SQL Server的常用數據類型(字元型)詳解
對於程序中的string型欄位,SQLServer中有char、varchar、nchar、nvarchar四種類型來對應(暫時不考慮text和ntext),開建立資料庫中,對這四種類型往往比較模糊,這里做一下對比。
定長或變長
所謂定長就是長度固定的,當輸入的數據長度沒有達到指定的長度時將自動以英文空格在其後面填充,使長度達到相應的長度;有var前綴的,表示是實際存儲空間是變長的,比如varchar,nvarchar變長字元數據則不會以空格填充,比較例外的是,text存儲的也是可變長。
Unicode或非Unicode
資料庫中,英文字元只需要一個位元組存儲就足夠了,但漢字和其他眾多非英文字元,則需要兩個位元組存儲。如果英文與漢字同時存在,由於佔用空間數不同,容易造成混亂,導致讀取出來的字元串是亂碼。Unicode字元集就是為了解決字元集這種不兼容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。而前綴n就表示Unicode字元,比如nchar,nvarchar,這兩種類型使用了Unicode字元集。
基於以上兩點來看看欄位容量
char,varchar 最多8000個英文,4000個漢字
nchar,nvarchar 可存儲4000個字元,無論英文還是漢字
使用(個人偏好)
如果數據量非常大,又能100%確定長度且保存只是ansi字元,那麼char
能確定長度又不一定是ansi字元或者,那麼用nchar;
對於超大數據,如文章內容,使用nText
其他的通用nvarchar
char、varchar、nchar、nvarchar特點比較
CHAR
CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間。
VARCHAR
存儲變長數據,但存儲效率沒有CHAR高,如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼"+1"呢?這一個位元組用於保存實際使用了多大的長度。
從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
TEXT
text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字元。
NCHAR、NVARCHAR、NTEXT
這三種從名字上看比前面三種多了個"N"。和char、varchar比較起來,nchar、nvarchar最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在存儲英文時數量上有些損失。
所以一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar
⑺ ORACLE SQL語句 欄位類型有哪些
常用的類型有:varchar2,char,nchar,date,long,number,float,BLOB,CLOB 類型,詳細的用法,可以參考oracle官方給出的文檔。
CHAR 固定長度字元串 最大長度2000 bytes
VARCHAR2 可變長度的字元串 最大長度4000 bytes 可做索引的最大長度749
NCHAR 根據字元集而定的固定長度字元串 最大長度2000 bytes
NVARCHAR2 根據字元集而定的可變長度字元串 最大長度4000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 經過嚴格測試,無千蟲問題
LONG 超長字元串 最大長度2G(231-1) 足夠存儲大部頭著作
RAW 固定長度的二進制數據 最大長度2000 bytes 可存放多媒體圖象聲音等
LONG RAW 可變長度的二進制數據 最大長度2G 同上
BLOB 二進制數據 最大長度4G
CLOB 字元數據 最大長度4G
NCLOB 根據字元集而定的字元數據 最大長度4G
BFILE 存放在資料庫外的二進制數據 最大長度4G
ROWID 數據表中記錄的唯一行號 10 bytes ********.****.****格式,*為0或1
NROWID 二進制數據表中記錄的唯一行號 最大長度4000 bytes
NUMBER(P,S) 數字類型 P為整數位,S為小數位
DECIMAL(P,S) 數字類型 P為整數位,S為小數位
INTEGER 整數類型 小的整數
FLOAT 浮點數類型 NUMBER(38),雙精度
REAL 實數類型 NUMBER(63),精度更高
⑻ sql通用欄位類型
SQL 通用數據類型
資料庫表中的每個列都要求有名稱和數據類型。Each column in a database table is required to have a name and a data type.
SQL 開發人員必須在創建 SQL 表時決定表中的每個列將要存儲的數據的類型。數據類型是一個標簽,是便於 SQL 了解每個列期望存儲什麼類型的數據的指南,它也標識了 SQL 如何與存儲的數據進行交互。
下面的表格列出了 SQL 中通用的數據類型:
以上算是整理的非常全面了,希望樓主可以採納~
⑼ 資料庫表中欄位類型有哪些
資料庫表中欄位類型有二進制數據類型、字元數據類型、數字數據類型 等其中類型。具體類型如下所示:
1、二進制數據類型
Binary、Varbinary、Image
2、字元數據類型
Char,Varchar和 Text
3、Unicode數據類型
包括Nchar,Nvarchar和Ntext
4、日期和時間數據類型
包括Datetime, Smalldatetime, Date, TimeStamp
5、數字數據類型
數字數據類型包括正數和負數、小數和整數
6、貨幣數據類型
表示正的或者負的貨幣數量。
7、特殊數據類型
特殊的數據類型有3種,即Timestamp、Bit 和 Uniqueidentifier。
⑽ sql2000欄位類型有哪些
(1)char、varchar、text和nchar、nvarchar、ntext
char和varchar的長度都在1到8000之間,它們的區別在於char是定長字元數據,而varchar是變長字元數據。所謂定長就是長度固定的,當輸入的數據長度沒有達到指定的長度時將自動以英文空格在其後面填充,使長度達到相應的長度;而變長字元數據則不會以空格填充。text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字元。
後面三種數據類型和前面的相比,從名稱上看只是多了個字母"n",它表示存儲的是Unicode數據類型的字元。寫過程序的朋友對Unicode應該很了解。字元中,英文字元只需要一個位元組存儲就足夠了,但漢字眾多,需要兩個位元組存儲,英文與漢字同時存在時容易造成混亂,Unicode字元集就是為了解決字元集這種不兼容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。nchar、nvarchar的長度是在1到4000之間。和char、varchar比較:nchar、nvarchar則最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在存儲英文時數量上有些損失。
(2)datetime和smalldatetime
datetime:從1753年1月1日到9999年12月31日的日期和時間數據,精確到百分之三秒。
smalldatetime:從1900年1月1日到2079年6月6日的日期和時間數據,精確到分鍾。
(3)bitint、int、smallint、tinyint和bit
bigint:從-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型數據。
int:從-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型數據。
smallint:從-2^15(-32,768)到2^15-1(32,767)的整數數據。
tinyint:從0到255的整數數據。
bit:1或0的整數數據。
(4)decimal和numeric
這兩種數據類型是等效的。都有兩個參數:p(精度)和s(小數位數)。p指定小數點左邊和右邊可以存儲的十進制數字的最大個數,p必須是從 1到38之間的值。s指定小數點右邊可以存儲的十進制數字的最大個數,s必須是從0到p之間的值,默認小數位數是0。
(5)float和real
float:從-1.79^308到1.79^308之間的浮點數字數據。
real:從-3.40^38到3.40^38之間的浮點數字數據。在SQL Server中,real的同義詞為float(24)。
資料庫定義到char類型的欄位時,不知道大家是否會猶豫一下,到底選char、nchar、varchar、nvarchar、text、ntext中哪一種呢?結果很可能是兩種,一種是節儉人士的選擇:最好是用定長的,感覺比變長能省些空間,而且處理起來會快些,無法定長只好選用定長,並且將長度設置盡可能地小;另一種是則是覺得無所謂,盡量用可變類型的,長度盡量放大些。
鑒於現在硬體像蘿卜一樣便宜的大好形勢,糾纏這樣的小問題實在是沒多大意義,不過如果不弄清它,總覺得對不起勞累過度的CPU和硬碟。
下面開始了(以下說明只針對SqlServer有效):
1、當使用非unicode時慎用以下這種查詢:
select f from t where f = N'xx'
原因:無法利用到索引,因為資料庫會將f先轉換到unicode再和N'xx'比較
2、char 和相同長度的varchar處理速度差不多(後面還有說明)
3、varchar的長度不會影響處理速度!!!(看後面解釋)
4、索引中列總長度最多支持總為900位元組,所以長度大於900的varchar、char和大於450的nvarchar,nchar將無法創建索引
5、text、ntext上是無法創建索引的
6、O/R Mapping中對應實體的屬性類型一般是以string居多,用char[]的非常少,所以如果按mapping的合理性來說,可變長度的類型更加吻合
7、一般基礎資料表中的name在實際查詢中基本上全部是使用like '%xx%'這種方式,而這種方式是無法利用索引的,所以如果對於此種欄位,索引建了也白建
8、其它一些像remark的欄位則是根本不需要查詢的,所以不需要索引
9、varchar的存放和string是一樣原理的,即length {block}這種方式,所以varchar的長度和它實際佔用空間是無關的
10、對於固定長度的欄位,是需要額外空間來存放NULL標識的,所以如果一個char欄位中出現非常多的NULL,那麼很不幸,你的佔用空間比沒有NULL的大(但這個大並不是大太多,因為NULL標識是用bit存放的,可是如果你一行中只有你一個NULL需要標識,那麼你就白白浪費1byte空間了,罪過罪過!),這時候,你可以使用特殊標識來存放,如:'NV'
11、同上,所以對於這種NULL查詢,索引是無法生效的,假如你使用了NULL標識替代的話,那麼恭喜你,你可以利用到索引了
12、char和varchar的比較成本是一樣的,現在關鍵就看它們的索引查找的成本了,因為查找策略都一樣,因此應該比較誰佔用空間小。在存放相同數量的字元情況下,如果數量小,那麼char佔用長度是小於varchar的,但如果數量稍大,則varchar完全可能小於char,而且要看實際填充數值的充實度,比如說varchar(3)和char(3),那麼理論上應該是char快了,但如果是char(10)和varchar(10),充實度只有30%的情況下,理論上就應該是varchar快了。因為varchar需要額外空間存放塊長度,所以只要length(1-fillfactor)大於這個存放空間(好像是2位元組),那麼它就會比相同長度的char快了。
13、nvarchar比varchar要慢上一些,而且對於非unicode字元它會佔用雙倍的空間,那麼這么一種類型推出來是為什麼呢?對,就是為了國際化,對於unicode類型的數據,排序規則對它們是不起作用的,而非unicode字元在處理不同語言的數據時,必須指定排序規則才能正常工作,所以n類型就這么一點好處。
總結:
1、如果數據量非常大,又能100%確定長度且保存只是ansi字元,那麼char
2、能確定長度又不一定是ansi字元或者,那麼用nchar;
3、不確定長度,要查詢且希望利用索引的話,用nvarchar類型吧,將它們設到400;
4、不查詢的話沒什麼好說的,用nvarchar(4000)
5、性格豪爽的可以只用3和4,偶爾用用1,畢竟這是一種額外說明,等於告訴別人說,我一定需要長度為X位的數據