<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 78  文章 - 25  trackbacks - 0
    <2009年6月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿

    隨筆分類(75)

    隨筆檔案(78)

    相冊(cè)

    實(shí)用Links

    我的Links

    搜索

    •  

    積分與排名

    • 積分 - 114078
    • 排名 - 516

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    轉(zhuǎn)自:http://tech.itzero.com/2006/1015/1202.html

    我們要把現(xiàn)實(shí)世界中的各種信息轉(zhuǎn)換成計(jì)算機(jī)能理解的東西,這些轉(zhuǎn)換后的信息就形成了數(shù)據(jù)。例 如,某人的出生日期是“1987年5月23日”,他的身高是170厘米,等等。數(shù)據(jù)不僅包括數(shù)字、字母、文字和其他特殊字符組成的文本形式的數(shù)據(jù),而且還 包括圖形、圖像、動(dòng)畫、影像、聲音等多媒體數(shù)據(jù)。但使用最多、最基本的仍然是文本數(shù)據(jù)。

    1. MySQL的數(shù)據(jù)類型

    在MySQL中有如下幾種數(shù)據(jù)類型:

    (1)數(shù)值型

    數(shù)值是諸如32 或153.4 這樣的值。MySQL 支持科學(xué)表示法,科學(xué)表示法由整數(shù)或浮點(diǎn)數(shù)后跟“e”或“E”、一個(gè)符號(hào)(“+”或“-”)和一個(gè)整數(shù)指數(shù)來表示。1.24E+12 和23.47e-1 都是合法的科學(xué)表示法表示的數(shù)。而1.24E12 不是合法的,因?yàn)橹笖?shù)前的符號(hào)未給出。

    浮點(diǎn)數(shù)由整數(shù)部分、一個(gè)小數(shù)點(diǎn)和小數(shù)部分組成。整數(shù)部分和小數(shù)部分可以分別為空,但不能同時(shí)為空。

    數(shù)值前可放一個(gè)負(fù)號(hào)“-”以表示負(fù)值。

    (2)字符(串)型

    字符型(也叫字符串型,簡稱串)是諸如“Hello, world!”或“一個(gè)饅頭引起的血案”這樣的值,或者是電話號(hào)碼87398413這樣的值。既可用單引號(hào)也可用雙引號(hào)將串值括起來。

    初學(xué)者往往分不清數(shù)值87398143和字符串87398143的區(qū)別。都是數(shù)字啊,怎么一 個(gè)要用數(shù)值型,一個(gè)要用字符型呢?關(guān)鍵就在于:數(shù)值型的87398143是要參與計(jì)算的,比如它是金融中的一個(gè)貨款總額;而字符型的87398143是不 參與計(jì)算的,只是表示電話號(hào)碼,這樣的還有街道號(hào)碼、門牌號(hào)碼等等,它們都不參與計(jì)算。

    (3)日期和時(shí)間型

    日期和時(shí)間是一些諸如“2006-07-12”或“12:30:43”這樣的值。MySQL還支持日期/時(shí)間的組合,如“2006-07-12 12:30:43”。

    (4)NULL值

    NULL表示未知值。比如填寫表格中通訊地址不清楚留空不填寫,這就是NULL值。

    我們用Create Table語句創(chuàng)建一個(gè)表(參看前面的章節(jié)),這個(gè)表中包含列的定義。例如我們?cè)谇懊鎰?chuàng)建了一個(gè)joke表,這個(gè)表中有content和writer兩個(gè)列:

    定義一個(gè)列的語法如下:

    其中列名由col_name 給出。列名可最多包含64個(gè)字符,字符包括字母、數(shù)字、下劃線及美元符號(hào)。列名可以名字中合法的任何符號(hào)(包括數(shù)字)開頭。但列名不能完全由數(shù)字組成,因 為那樣可能使其與數(shù)據(jù)分不開。MySQL保留諸如SELECT、DELETE和CREATE這樣的詞,這些詞不能用做列名,但是函數(shù)名(如POS 和MIN)是可以使用的。

    列類型col_type表示列可存儲(chǔ)的特定值。列類型說明符還能表示存放在列中的值的最大長 度。對(duì)于某些類型,可用一個(gè)數(shù)值明確地說明其長度。而另外一些值,其長度由類型名蘊(yùn)含。例如,CHAR(10) 明確指定了10個(gè)字符的長度,而TINYBLOB值隱含最大長度為255個(gè)字符。有的類型說明符允許指定最大的顯示寬度(即顯示值時(shí)使用多少個(gè)字符)。浮 點(diǎn)類型允許指定小數(shù)位數(shù),所以能控制浮點(diǎn)數(shù)的精度值為多少。

    可以在列類型之后指定可選的類型說明屬性,以及指定更多的常見屬性。屬性起修飾類型的作用,并更改其處理列值的方式,屬性有以下類型:

    (1)專用屬性用于指定列。例如,UNSIGNED 屬性只針對(duì)整型,而BINARY屬性只用于CHAR 和VARCHAR。

    (2)通用屬性除少數(shù)列之外可用于任意列??梢灾付∟ULL 或NOT NULL 以表示某個(gè)列是否能夠存放NULL。還可以用DEFAULT,def_value 來表示在創(chuàng)建一個(gè)新行但未明確給出該列的值時(shí),該列可賦予值def_value。def_value 必須為一個(gè)常量;它不能是表達(dá)式,也不能引用其他列。不能對(duì)BLOB 或TEXT 列指定缺省值。

    如果想給出多個(gè)列的專用屬性,可按任意順序指定它們,只要它們跟在列類型之后、通用屬性之前即可。類似地,如果需要給出多個(gè)通用屬性,也可按任意順序給出它們,只要將它們放在列類型和可能給出的列專用屬性之后即可。

    2. MySQL的列(字段)類型

    數(shù)據(jù)庫中的每個(gè)表都是由一個(gè)或多個(gè)列(字段)構(gòu)成的。在用CREATE TABLE語句創(chuàng)建一個(gè)表時(shí),要為每列(字段)指定一個(gè)類型。列(字段)的類型比數(shù)據(jù)類型更為細(xì)化,它精確地描述了給定表列(字段)可能包含的值的種類,如是否帶小數(shù)、是否文字很多。

    MySQL有整數(shù)和浮點(diǎn)數(shù)值的列類型,如表1所示。整數(shù)列類型可以有符號(hào)也可無符號(hào)。有一種特殊的屬性允許整數(shù)列值自動(dòng)生成,這對(duì)需要唯一序列或標(biāo)識(shí)號(hào)的應(yīng)用系統(tǒng)來說是非常有用的。

     

    類型

     

    說明

    TINYINT 非常小的整數(shù)
    SMALLINT 較小整數(shù)
    MEDIUMINT 中等大小整數(shù)
    INT 標(biāo)準(zhǔn)整數(shù)
    BIGINT 較大整數(shù)
    FLOAT 單精度浮點(diǎn)數(shù)
    DOUBLE 雙精度浮點(diǎn)數(shù)
    DECIMAL 一個(gè)串的浮點(diǎn)數(shù)

     

    表1:數(shù)值列類型

    每種數(shù)值類型的名稱和取值范圍如表2所示。

     

    類型說明

     

    取值范圍

    TINYINT[(M)] 有符號(hào)值:-128 到127(- 27 到27 - 1)
    無符號(hào)值:0到255(0 到28 - 1)
    SMALLINT[(M)] 有符號(hào)值:-32768 到32767(- 215 到215 - 1)
    無符號(hào)值:0到65535(0 到21 6 - 1)
    MEDIUMINT[(M)] 有符號(hào)值:-8388608 到8388607(- 22 3 到22 3 - 1 )
    無符號(hào)值:0到16777215(0 到22 4 - 1)
    INT[(M)] 有符號(hào)值:-2147683648 到2147683647(- 231 到231- 1)
    無符號(hào)值:0到4294967295(0 到232 - 1)
    BIGINT[(M)] 有符號(hào)值:-9223372036854775808 到9223373036854775807(- 263到263-1)

    無符號(hào)值:0到18446744073709551615(0到264 – 1)
    FLOAT[(M, D)] 最小非零值:±1.175494351E - 38
    DOUBLE[(M,D)] 最小非零值:±2.2250738585072014E - 308
    DECIMAL (M, D) 可變;其值的范圍依賴于M 和D

     

    表2:數(shù)值列類型的取值范圍

     

    類型說明

     

    存儲(chǔ)需求

    TINYINT[(M)] 1字節(jié)
    SMALLINT[(M)] 2字節(jié)
    MEDIUMINT[(M)] 3字節(jié)
    INT[(M)] 4字節(jié)
    BIGINT[(M)] 8字節(jié)
    FLOAT[(M, D)] 4字節(jié)
    DOUBLE[(M, D)] 8字節(jié)
    DECIMAL (M, D) M字節(jié)(MySQL < 3.23),M+2字節(jié)(MySQL > 3.23 )

     

    表3:數(shù)值列類型的存儲(chǔ)需求

    MySQL提供了五種整型: TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。INT為INTEGER的縮寫。這些類型在可表示的取值范圍上是不同的。 整數(shù)列可定義為UNSIGNED從而禁用負(fù)值;這使列的取值范圍為0以上。各種類型的存儲(chǔ)量需求也是不同的。取值范圍較大的類型所需的存儲(chǔ)量較大。

     

    MySQL 提供三種浮點(diǎn)類型: FLOAT、DOUBLE和DECIMAL。與整型不同,浮點(diǎn)類型不能是UNSIGNED的,其取值范圍也與整型不同,這種不同不僅在于這些類型有最大 值,而且還有最小非零值。最小值提供了相應(yīng)類型精度的一種度量,這對(duì)于記錄科學(xué)數(shù)據(jù)來說是非常重要的(當(dāng)然,也有負(fù)的最大和最小值)。

    在選擇了某種數(shù)值類型時(shí),應(yīng)該考慮所要表示的值的范圍,只需選擇能覆蓋要取值的范圍的最小類 型即可。選擇較大類型會(huì)對(duì)空間造成浪費(fèi),使表不必要地增大,處理起來沒有選擇較小類型那樣有效。對(duì)于整型值,如果數(shù)據(jù)取值范圍較小,如人員年齡或兄弟姐妹 數(shù),則TINYINT最合適。MEDIUMINT能夠表示數(shù)百萬的值并且可用于更多類型的值,但存儲(chǔ)代價(jià)較大。BIGINT在全部整型中取值范圍最大,而 且需要的存儲(chǔ)空間是表示范圍次大的整型INT類型的兩倍,因此只在確實(shí)需要時(shí)才用。對(duì)于浮點(diǎn)值,DOUBLE占用FLOAT的兩倍空間。除非特別需要高精 度或范圍極大的值,一般應(yīng)使用只用一半存儲(chǔ)代價(jià)的FLOAT型來表示數(shù)據(jù)。

    在定義整型列時(shí),可以指定可選的顯示尺寸M。如果這樣,M應(yīng)該是一個(gè)1 到255的整數(shù)。它表示用來顯示列中值的字符數(shù)。例如,MEDIUMINT(4)指定了一個(gè)具有4個(gè)字符顯示寬度的MEDIUMINT列。如果定義了一個(gè) 沒有明確寬度的整數(shù)列,將會(huì)自動(dòng)分配給它一個(gè)缺省的寬度。缺省值為每種類型的“最長”值的長度。如果某個(gè)特定值的可打印表示需要不止M個(gè)字符,則顯示完全 的值;不會(huì)將值截?cái)嘁赃m合M個(gè)字符。

    對(duì)每種浮點(diǎn)類型,可指定一個(gè)最大的顯示尺寸M 和小數(shù)位數(shù)D。M 的值應(yīng)該取1 到255。D的值可為0 到3 0,但是不應(yīng)大于M - 2(如果熟悉ODBC 術(shù)語,就會(huì)知道M 和D 對(duì)應(yīng)于ODBC 概念的“精度”和“小數(shù)點(diǎn)位數(shù)”)。M和D對(duì)FLOAT和DOUBLE 都是可選的,但對(duì)于DECIMAL是必須的。在選項(xiàng)M 和D時(shí),如果省略了它們,則使用缺省值。

    2.2字符串列類型

    MySQL提供了幾種存放字符數(shù)據(jù)的串類型,其類型如下:

     

    類型名

     

    說明

    CHAR 定長字符串
    VARCHAR 可變長字符串
    TINYBLOB 非常小的BLOB(二進(jìn)制大對(duì)象)
    BLOB 小BLOB
    MEDIUMBLOB 中等的BLOB
    LONGBLOB 大BLOB
    TINYTEXT 非常小的文本串
    TEXT 小文本串
    MEDIUMTEXT 中等文本串
    LONGTEXT 大文本串
    ENUM 枚舉;列可賦予某個(gè)枚舉成員
    SET 集合;列可賦予多個(gè)集合成員

     

    表4:字符串列類型
    posted on 2009-06-30 16:53 期待明天 閱讀(226) 評(píng)論(0)  編輯  收藏 所屬分類: MySQL

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久综合图区亚洲综合图区| 亚洲中文字幕无码久久| 天天影视色香欲综合免费| 亚洲人成网站免费播放| 亚洲精品天堂成人片?V在线播放| 暖暖免费在线中文日本| 亚洲国产精品无码观看久久| 色噜噜AV亚洲色一区二区| 青青青国产在线观看免费网站 | 性色av极品无码专区亚洲| 成人午夜亚洲精品无码网站| 国产在线观看免费观看不卡 | 最近中文字幕mv免费高清电影| 精品97国产免费人成视频| 亚洲一区精品视频在线| 亚洲无码黄色网址| 免费观看AV片在线播放| 免费看黄的成人APP| 国产AV无码专区亚洲AV琪琪| 亚洲精品免费在线| 亚洲乱码中文字幕久久孕妇黑人| 国产桃色在线成免费视频| a在线观看免费网址大全| 性色av极品无码专区亚洲| 亚洲精品国产福利在线观看| 国产精品亚洲αv天堂无码| 性xxxx视频播放免费| 一级毛片全部免费播放| 一区二区三区免费在线视频| 亚洲国产精品免费观看| 91亚洲精品第一综合不卡播放| 狠狠色婷婷狠狠狠亚洲综合 | 免费中文字幕在线观看| 黄页网站在线看免费| 日本免费一区二区三区| CAOPORM国产精品视频免费| 精品国产亚洲第一区二区三区| 亚洲国产夜色在线观看| 内射干少妇亚洲69XXX| 亚洲成a人片在线观看无码| 亚洲一区视频在线播放|