成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

中的數(shù)據(jù)類型概念

中的數(shù)據(jù)類型概念?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蘆淞,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

一、數(shù)據(jù)是什么?

數(shù)據(jù)是一個(gè)信息集合,以某種數(shù)據(jù)類型保存在數(shù)據(jù)庫里。數(shù)據(jù)包括姓名、數(shù)字、貨幣、文本、圖像、小數(shù)、計(jì)算、統(tǒng)計(jì)等,幾乎涵蓋能夠想象到的任何東西。數(shù)據(jù)客戶保存為大寫、小寫或大小寫混合,數(shù)據(jù)可以被操作或修改,大多數(shù)數(shù)據(jù)在其生存周期內(nèi)不會(huì)保持不變。

數(shù)據(jù)類型用于指定列所包含數(shù)據(jù)的規(guī)則,它決定了數(shù)據(jù)保存在列里的方式,包括分配給列的寬度,以及值是否可以是字母、數(shù)字、日期和時(shí)間等。任何數(shù)據(jù)或數(shù)據(jù)的組合都有對(duì)應(yīng)的數(shù)據(jù)類型,這些數(shù)據(jù)類型用于存儲(chǔ)像字母、數(shù)字、日期和時(shí)間、圖像、二進(jìn)制數(shù)據(jù)等。更詳細(xì)地說,數(shù)據(jù)可以包括姓名、描述、數(shù)字、計(jì)算、圖像、圖像描述、文檔等。

數(shù)據(jù)是數(shù)據(jù)庫的意義所在,必須受到保護(hù)。數(shù)據(jù)的保護(hù)著就是數(shù)據(jù)庫管理員(DBA),但是每個(gè)數(shù)據(jù)庫用戶也有責(zé)任采取必要手段來保護(hù)數(shù)據(jù)。

二、基本數(shù)據(jù)類型

數(shù)據(jù)類型是數(shù)據(jù)本身的特征,其特性被設(shè)置到表里的字段。舉例來說,我們可以指定某個(gè)字段必須包含數(shù)字值,不允許輸入由數(shù)字或字母組成的字符串;我們也不希望在保存貨幣數(shù)值的字段里輸入字母。為數(shù)據(jù)庫里每個(gè)字段定義數(shù)據(jù)類型可以大幅減少數(shù)據(jù)庫里由于錯(cuò)誤而產(chǎn)生的錯(cuò)誤數(shù)據(jù)。字段定義(數(shù)據(jù)類型定義)是一種數(shù)據(jù)校驗(yàn)方式,通知了每個(gè)字段里可以輸入的數(shù)據(jù)。

1.定長字符串。

定長字符串通常具有相同的長度,是使用定長數(shù)據(jù)類型保存的。下面是Sql定長字符串的標(biāo)準(zhǔn):

CHARACTER(n)

n是一個(gè)數(shù)字,定義了字段里能夠保存的最多字符數(shù)量。

有些Sql實(shí)現(xiàn)使用CHAR數(shù)據(jù)類型來保存定長數(shù)據(jù)。字母可以保存到這種數(shù)據(jù)類型里。

在定長數(shù)據(jù)類型里,通常使用空格來補(bǔ)充數(shù)量不足的字符。如果字符長度是10,而輸入的數(shù)據(jù)只有5位,那么剩余5位就會(huì)被記錄為空格。填充空格確保了字段里每個(gè)值都具有相同的長度。

PS:不要使用定長數(shù)據(jù)類型來保存長度不定的數(shù)據(jù),比如姓名,如果不恰當(dāng)?shù)厥褂枚ㄩL數(shù)據(jù)類型,可能會(huì)導(dǎo)致浪費(fèi)可用空間,以及影響對(duì)不同的數(shù)據(jù)進(jìn)行精確比較。應(yīng)該使用變長數(shù)據(jù)類型來保存長度不定的字符串,從而節(jié)省數(shù)據(jù)庫空間。

2.變長字符串。

Sql支持變長字符串,也就是長度不固定的字符串。下面是Sql變長字符串的標(biāo)準(zhǔn):

CHARACTER VARYING(n)

n是一個(gè)數(shù)字,表示字段里能夠保存的最多字符數(shù)量。

常見的變長字符串?dāng)?shù)據(jù)類型有VARCHAR、VARINARY和VARCHAR2。VARCHAR是ANSI標(biāo)準(zhǔn),Microsoft Sql Server和MySQL也使用它;VARINARY和VARCHAR2都是由Oracle使用的。定義為字符的字段里可以保存數(shù)字和字母,這意味著數(shù)據(jù)中可能包含數(shù)字字符。VARBINARY類似于VARCHAR和VARCHAR2,只是它包含的是長度不定的字節(jié)。這種數(shù)據(jù)類型通常被用來保存數(shù)字式數(shù)據(jù),例如圖像文件。

定長數(shù)據(jù)類型利用空格來填充字段里的空白,但變長字符串不這樣做。舉例來說,如果某個(gè)變長字段的長度定義為10,而輸入的字符串長度為5,那么這個(gè)值的總長度也就是5,這時(shí)并不會(huì)使用空格來填充字段里的空白。

3.大對(duì)象類型。

有些變長數(shù)據(jù)類型需要保存更長的數(shù)據(jù),超過了一般情況下為VARCHAR字段所保留的長度,比如現(xiàn)在常見的BLOB和TEXT數(shù)據(jù)類型。這些數(shù)據(jù)類型專門用于保存大數(shù)據(jù)集的。BLOB是二進(jìn)制大對(duì)象,它的數(shù)據(jù)是很長的二進(jìn)制字符串。BLOB適合在數(shù)據(jù)庫里存儲(chǔ)二進(jìn)制媒體文件,比如圖像和MP3.

TEXT數(shù)據(jù)類型是一種長字符串類型,可以被看作一個(gè)大VARCHAR字段,通常用于在數(shù)據(jù)庫里保存大字符集,比如博客站點(diǎn)的HTML輸入。在數(shù)據(jù)庫里保存這種類型的數(shù)據(jù)可以實(shí)現(xiàn)站點(diǎn)的動(dòng)態(tài)更新。

4.數(shù)值類型。

數(shù)值被保存在定義為某種數(shù)值類型的字段里,一般包括NUMBER、INTERGER、REAL/DECIMAL等。

蝦米是Sql數(shù)值的標(biāo)準(zhǔn):

(1).BIT(n);

(2).BIT VARYING(n);

(3).DECIMAL(p,s);

(4).INTEGER;

(5).SMALLINT;

(6).SIGINT;

(7).FLOAT(p,s);

(8).DOUBLE PRECISION(P,S);

(9).REAL(S);

P 表示字段的最大長度。s 表示小數(shù)點(diǎn)后面的位數(shù)。

Sql實(shí)現(xiàn)中一個(gè)通用的數(shù)值類型是NUMERIC,它符合ANSI標(biāo)準(zhǔn)。數(shù)值可以是0、正數(shù)、定點(diǎn)數(shù)和浮點(diǎn)數(shù)。下面是使用NUMERIC的一個(gè)范例:

NUMERIC(s),這個(gè)命令把字段能夠接受的最大值限制為99 999.在本書范例所涉及的數(shù)據(jù)庫實(shí)現(xiàn)總,NUMERIC都是以DECIMAL類型實(shí)現(xiàn)的。

5.小數(shù)類型。

小數(shù)類型是數(shù)值的總體長度。舉例來說,在數(shù)值定義ZDECIMZAL(4,2)里,有效位數(shù)是4,也就是說數(shù)值總位數(shù)是4.標(biāo)度是小數(shù)點(diǎn)后面的位數(shù),在前例中是2。如果實(shí)際數(shù)值的小數(shù)位數(shù)超過了定義的位數(shù),數(shù)值就會(huì)被四舍五入,比如34.33寫入到定義為DECIMAL(3,1)的字段時(shí),會(huì)被四舍五入34.3。

如果數(shù)值按照如下方式被定義,其最大值就是99.99:

DECIMAL(4,2)

有效位是4,表示數(shù)值的總體長度是4;標(biāo)度是2,表示小數(shù)點(diǎn)后面保留2位。小數(shù)點(diǎn)本身并不算作一個(gè)字符。

定義為DECIMAL(4,2)的字段允許輸入的數(shù)組包括:

(1).12

(2).12.4

(3).12.44

(4).12.449

最后一個(gè)值12.449在保存到字段時(shí)會(huì)四舍五入為12.45。在這種定義,任何12.45~12.499之間的數(shù)值會(huì)被四舍五入為12.45。

6.整數(shù)。

整數(shù)是不包含小數(shù)點(diǎn)的數(shù)值(包括正數(shù)和負(fù)數(shù))。

下面是一些有效的整數(shù):

(1).1;

(2).0;

(3).-1;

(4).99;

(5).-99;

(6).199;

7.浮點(diǎn)數(shù)。

浮點(diǎn)數(shù)是有效位數(shù)和標(biāo)度都可變并且沒有限制的小數(shù)數(shù)值,任何有效位數(shù)和標(biāo)度都是可以的。數(shù)據(jù)類型REAL代表單精度浮點(diǎn)數(shù)值,而DOUBLE PRECISION表示雙精度浮點(diǎn)數(shù)值。單精度浮點(diǎn)數(shù)值的有效位數(shù)為1~21(包含),雙精度浮點(diǎn)數(shù)值的有效位數(shù)為22~53(包含)。下面是一些FLOAT數(shù)據(jù)類型的范例:

(1).FLOAT;

(2).FLOAT(15);

(3).FLOAT(50);

8.日期和時(shí)間類型。

日期和時(shí)間數(shù)據(jù)類型很顯然是用于保存日期和時(shí)間信息的。標(biāo)準(zhǔn)Sql支持DATETIME數(shù)據(jù)類型,它包含以下類型:

(1).DATE;

(2).TIME;

(3).DATETIME;

(4).TIMESTAMP;

DATETIME數(shù)據(jù)類型的元素包括:

(1).YEAR;

(2).MONTH;

(3).DAY;

(4).HOUR;

(5).SECOND;

ps:SECOND元素還可以再分解為幾分之一秒,其范圍是00.000~61.999,但并不是所有Sql實(shí)現(xiàn)都支持這個(gè)范圍。多出來的1.999秒是用于實(shí)現(xiàn)閏秒的。
每種Sql實(shí)現(xiàn)可能都是具有自定義的數(shù)據(jù)類型來保存日期和時(shí)間。前面介紹的數(shù)據(jù)類型和元素是每個(gè)Sql廠商都應(yīng)該遵守的標(biāo)準(zhǔn),但大多數(shù)實(shí)現(xiàn)都具有自己的數(shù)據(jù)類型來保存日期值,其形式與實(shí)際存儲(chǔ)方式有所不同。

日期數(shù)據(jù)一般不指定長度。稍后我們會(huì)更詳細(xì)地介紹日期類型,包括日期信息在某些實(shí)現(xiàn)里的保存方式、如何使用轉(zhuǎn)換函數(shù)操作日期和時(shí)間,并且用范例展示在實(shí)際工作中如何使用日期和時(shí)間。

9.直義字符串。

直義字符串就是一系列字符,比如姓名或電話號(hào)碼,這是有用戶或者程序明確指定的。直義字符串包含的數(shù)據(jù)與前面介紹的數(shù)據(jù)類型具有一樣的屬性,但字符串的值是已知的。列本身的值通常是不能確定的,因?yàn)槊恳涣型ǔ0俗侄卧谌坑涗浝锏牟煌怠?/p>

實(shí)際上并不需要把字段指定為直義字符串?dāng)?shù)據(jù)類型,而是指定字符串。直義字符串的范例如下所示:

(1).'Hello';

(2).45000;

(3).'45000';

(4).3.14;

(5).'November 1 ,1997';

字符型的字符串由單引號(hào)包圍,數(shù)值45000沒有單引號(hào)包圍,而第二個(gè)45000用雙引號(hào)包圍了。一般來說,字符型字符串需要使用單引號(hào),而數(shù)值型不需要。

將一個(gè)數(shù)據(jù)類型成數(shù)值類型的過程過程術(shù)語隱式轉(zhuǎn)換。在這個(gè)過程中,數(shù)據(jù)庫會(huì)自動(dòng)判斷應(yīng)該使用哪種數(shù)據(jù)類型。所以,如果一個(gè)數(shù)據(jù)沒有使用單引號(hào)包圍起來,那么Sql程序就會(huì)將其認(rèn)定為數(shù)值類型。因此,必須要特別留意數(shù)據(jù)的形式。否則,存儲(chǔ)結(jié)果可能會(huì)出現(xiàn)偏差,或者報(bào)錯(cuò)。稍后將介紹如何在數(shù)據(jù)庫查詢里使用直義字符串。

10.NULL數(shù)據(jù)類型。

NULL值表示沒有值。NULL值在Sql里有廣泛的應(yīng)用,包括表的創(chuàng)建、查詢的搜索條件,甚至是在直義字符串。

在使用NULL數(shù)據(jù)類型時(shí),需要明確表示相應(yīng)字段不是必須要輸入數(shù)據(jù)的。如果某個(gè)字段必須包含數(shù)據(jù),就把它設(shè)置為NOT NULL,只要字段有可能不包含數(shù)據(jù),最好就把它設(shè)置為NULL。

11.布爾值。

布爾值的取值范圍是TRUE、FlASE和NULL,用于進(jìn)行數(shù)據(jù)比較。舉例來說,在查詢中設(shè)置條件時(shí),每個(gè)條件都會(huì)被求值,得到TRUE、FLASE或NULL。如果查詢中所有條件的值都是TRUE,數(shù)據(jù)就會(huì)被返回;如果某個(gè)條件的值是FLASE或NULL,數(shù)據(jù)就不會(huì)返回。比如下面這個(gè)范例:

WHERE NAME =‘SMITH’

這可能是查詢里的一個(gè)條件,目標(biāo)表里每行數(shù)據(jù)都是根據(jù)這個(gè)條件進(jìn)行求值。如果表里某行的NAME字段值是SMITH,條件的值就是TRUE,相應(yīng)的記錄就會(huì)被返回。

大多數(shù)數(shù)據(jù)庫實(shí)現(xiàn)并沒有一個(gè)嚴(yán)格意義上的BOOLEAN類型,而是代之以各自不同的實(shí)現(xiàn)方法。MySql用于BOOLEAN類型,但實(shí)質(zhì)上與其現(xiàn)有的TINYINT類型相同。Oracle傾向于讓用戶使用一個(gè)CHAR(1)值來代替布爾值,而Sql Server則使用BIT來代替。

12.自定義類型。

自定義類型是由用戶定義的類型,它允許用戶根據(jù)已有的數(shù)據(jù)類型來定制自己的數(shù)據(jù)類型,從而滿足數(shù)據(jù)存儲(chǔ)的需要。自定義類型極大的豐富了數(shù)據(jù)存儲(chǔ)的可能性,使開發(fā)人員在數(shù)據(jù)庫程序開發(fā)過程中具有更大的靈活性。語句CREATE TYPE用于創(chuàng)建自定義類型。

舉例來說,在MySql和Oracle中,可以像下面這樣創(chuàng)建一個(gè)類型:

CREATE TYPE PERSON ASOBJECT

(NAME VARCHER (30),

SSN  VARCHAR(9);

)

然后可以像下面這樣引用自定義類型:

CREATE TABLE EMP_PAY

(EMPLOYEE PERSON,

SALARY DECIMAL(10,2),

HIRE_DATE DATE);

表EMP_PAY第一列EMPLOYEE的類型是PERSON,這正是在前面創(chuàng)建的自定義類型。

13.域。

域是能夠被使用的有效數(shù)據(jù)類型的集合。域與數(shù)據(jù)相關(guān)聯(lián),從而只接受特定的數(shù)據(jù)。在域創(chuàng)建之后,我們可以向域添加約束。約束與數(shù)據(jù)類型共同發(fā)揮作用,從而進(jìn)一步限制字段能夠接受的數(shù)據(jù)。域的使用類似于自定義類型。

像下面這樣就可以創(chuàng)建域:

CREATE DOMAIN MONEY_D AS NUMBER(0,2);

像下面這樣為域添加約束:

ALTER DOMAIN MONEy_D

ADD CONSTRAINT MONEY_CON

CHECK(VALUE>5);

然后像下面這樣引用域:

CREATE TABLE EMP_PAY

(EMP_ID NUMBER(9),

EMP_NAME VARCHER2(30),

PAY_RATE MONEY_D);

三、小結(jié)

Sql具有多種數(shù)據(jù)類型,對(duì)于使用過其他編程語言的人來說,這些都不算陌生。數(shù)據(jù)類型允許不同類型的數(shù)據(jù)保存到數(shù)據(jù)庫,比如單個(gè)字符、小數(shù)、日期和時(shí)間。無論是使用像c這樣的第三代編程語言,還是使用關(guān)系型數(shù)據(jù)庫實(shí)現(xiàn)Sql編碼,數(shù)據(jù)類型的概念都是一樣的。當(dāng)然,不同實(shí)現(xiàn)中數(shù)據(jù)類型的名稱坑你有所不同,但其工作方式基本上是一樣的。另外,關(guān)系型數(shù)據(jù)庫管理系統(tǒng)并不是一定要實(shí)現(xiàn),ANSI標(biāo)準(zhǔn)里規(guī)定的全部數(shù)據(jù)類型才會(huì)被認(rèn)為是與ANSI兼容的,因此最好查看具體的文檔來了解尅使用的數(shù)據(jù)類型。

在考慮數(shù)據(jù)類型、長度、標(biāo)度和精度時(shí),一定要仔細(xì)地進(jìn)行短期和長遠(yuǎn)的規(guī)劃。另外,公司制度和希望用戶以什么方式訪問數(shù)據(jù)也是要考慮的因素。開發(fā)人員應(yīng)該了解數(shù)據(jù)的本質(zhì)。以及數(shù)據(jù)在數(shù)據(jù)庫里是如何相互關(guān)聯(lián)的,從而使用恰當(dāng)?shù)臄?shù)據(jù)類型。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)中的數(shù)據(jù)類型概念大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享文章:中的數(shù)據(jù)類型概念
文章路徑:http://jinyejixie.com/article44/joodee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)靜態(tài)網(wǎng)站、Google網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站策劃、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
抚远县| 突泉县| 澄城县| 宁夏| 永泰县| 罗田县| 通许县| 巍山| 平果县| 平果县| 蓬溪县| 阳谷县| 丹江口市| 张家川| 海晏县| 深圳市| 莱州市| 正蓝旗| 蓝山县| 盘山县| 烟台市| 福贡县| 清徐县| 临颍县| 砚山县| 乌鲁木齐县| 磐安县| 兴山县| 泾阳县| 安康市| 乐都县| 钦州市| 武胜县| 孝感市| 黄平县| 邓州市| 湖北省| 辽宁省| 内丘县| 宜川县| 越西县|