• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統計

            最新評論

            MySQL數據表類型 數據類型

            表類型
              MySQL的數據表類型很多,其中比較重要的是MyISAM,InnoDB這兩種。
              這兩種類型各有優缺點,需要根據實際情況選擇適合的,MySQL支持對不同的表設置不同的類型。下面做個對比:
              MyISAM表類型是一種比較成熟穩定的表類型,但是MyISAM對一些功能不支持。
               MyISAM  InnoDB
            事務  不支持  支持
            數據行鎖定  不支持,只有表鎖定  支持
            外鍵約束  不支持   支持
            表空間大小  相對小 相對大,最大是2倍 
            全文索引 支持  不支持 
            GIS數據  支持  不支持 
            COUNT問題  無  執行COUNT(*)查詢時,速度慢 
             
              一般情況下我覺得選擇MyISAM就行,如果需要事務,或者需要很多用戶同時修改某個數據表里的數據時,可以考慮InnoDB數據表。
             
            數據類型
            1.整型(xxxint)
             MySQL數據類型  含義
             tinyint(m) 1個字節表示(-128~127)
             smallint(m) 2個字節表示(-32768~32767) 
             mediumint(m) 3個字節表示(-8388608~8388607) 
             int(m) 4個字節表示(-2147483648~2147483647) 
             bigint(m) 8個字節表示(+-9.22*10的18次方) 
            右側的取值范圍是在未加unsigned關鍵字的情況下,如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值范圍為(0~256)。
            書上說int(m)括弧里的m是表示SELECT查詢結果集中的顯示寬度,并不影響實際的取值范圍,我測了一下,定義一個字段number 類型為int(4),插入一條記錄"123456",用mysql query broswer執行SELECT查詢,返回的結果集中123456正確顯示,沒有影響到顯示的寬度,不知道這個m有什么用。

            2.浮點型(float和double)
            MySQL數據類型 含義 
             float(m,d) 單精度浮點型,8位精度(4字節),m是十進制數字的總個數,
            d是小數點后面的數字個數。
             double(m,d) 雙精度浮點型,16位精度(8字節)
            參數m只影響顯示效果,不影響精度,d卻不同,會影響到精度。
            比如設一個字段定義為float(5,3),如果插入一個數123.45678,實際數據庫里存的是123.457,小數點后面的數別四舍五入截成457了,但總個數不受到限制(6位,超過了定義的5位)。

            3.定點數(decimal)
            decimal(m,d)  定點類型
            浮點型在數據庫中存放的是近似值,而定點類型在數據庫中存放的是精確值。參數m是定點類型數字的最大個數(精度),范圍為0~65,d小數點右側數字的個數,范圍為0~30,但不得超過m。
            對定點數的計算能精確到65位數字。

            4.字符串(char,varchar,xxxtext)
            MySQL數據類型 含義 
            char(n)  固定長度的字符串,最多255個字符
            varchar(n)  固定長度的字符串,最多65535個字符
            tinytext  可變長度字符串,最多255個字符 
            text  可變長度字符串,最多65535個字符 
            mediumtext  可變長度字符串,最多2的24次方-1個字符 
            longtext  可變長度字符串,最多2的32次方-1個字符 
            char和varchar:
            1.都可以通過指定n,來限制存儲的最大字符數長度,char(20)和varchar(20)將最多只能存儲20個字符,超過的字符將會被截掉。n必須小于該類型允許的最大字符數。
            2.char類型指定了n之后,如果存入的字符數小于n,后面將會以空格補齊,查詢的時候再將末尾的空格去掉,所以char類型存儲的字符串末尾不能有空格,varchar不受此限制。
            3.內部存儲的機制不同。char是固定長度,char(4)不管是存一個字符,2個字符或者4個字符(英文的),都將占用4個字節,varchar是存入的實際字符數+1個字節(n<=255)或2個字節(n>255),所以varchar(4),存入一個字符將占用2個字節,2個字符占用3個字節,4個字符占用5個字節。
            4.char類型的字符串檢索速度要比varchar類型的快。

            varchar和text:
            1.都是可變長度的,最多能存儲65535個字符。
            2.varchar可指定n,text不能指定,內部存儲varchar是存入的實際字符數+1個字節(n<=255)或2個字節(n>255),text是實際字符數+2個字節。
            3.text類型不能有默認值。
            4.varchar可直接創建索引,text創建索引要指定前多少個字符。查詢速度varchar要快于text,在都創建了索引的情況下,text的索引好像沒起作用,參見這篇文章:http://forums.mysql.com/read.php?24,105964,105964

            5.二進制數據(xxxBlob)
            XXXBLOB和xxxtext是對應的,不過存儲方式不同,xxxTEXT是以文本方式存儲的,如果存儲英文的話區分大小寫,而xxxBlob是以二進制方式存儲的,不區分大小寫。
            xxxBlob存儲的數據只能整體讀出。
            xxxTEXT可以指定字符集,xxxblob不用指定字符集。

            6.日期時間類型(date,time,datetime,timestamp)
            MySQL數據類型 含義 
            date 日期'2008-12-2' 
            time  時間'12:25:36' 
            datetime 日期時間'2008-12-2 22:06:44' 
            timestamp  不固定
            timestamp比較特殊,如果定義一個字段的類型為timestamp,這個字段的時間會在其他字段修改的時候自動刷新。所以這個數據類型的字段可以存放這條記錄最后被修改的時間,而不是真正來的存放時間。

            數據類型的屬性
            MySQL關鍵字 含義 
            NULL  數據列可包含NULL值
            NOT NULL 數據列不允許包含NULL值 
            DEFAULT xxx 默認值,如果插入記錄的時候沒有指定值,將取這個默認值 
            PRIMARY KEY  主鍵 
            AUTO_INCREMENT  遞增,如果插入記錄的時候沒有指定值,則在上一條記錄的值上加1,僅適用于整數類型 
            UNSIGNED  無符號 
            CHARACTER SET name  指定一個字符集 

            posted on 2009-05-27 17:01 大龍 閱讀(347) 評論(0)  編輯 收藏 引用

            99久久香蕉国产线看观香| 久久精品国产亚洲av麻豆小说| 精品人妻久久久久久888| 久久久久成人精品无码中文字幕| 欧美丰满熟妇BBB久久久| 久久国产乱子精品免费女| 品成人欧美大片久久国产欧美...| 久久伊人色| 99国产欧美精品久久久蜜芽| 精品多毛少妇人妻AV免费久久| 久久久国产视频| 久久精品国产69国产精品亚洲| 亚洲欧美一级久久精品| 一本久久a久久精品综合夜夜| 久久伊人精品青青草原日本| 国产成人久久AV免费| 亚洲国产成人精品无码久久久久久综合 | 嫩草伊人久久精品少妇AV| 国产亚洲成人久久| 久久Av无码精品人妻系列| 久久这里的只有是精品23| 色偷偷888欧美精品久久久| 久久夜色精品国产欧美乱| 四虎亚洲国产成人久久精品| 久久综合九色综合久99| 久久久久人妻精品一区 | 国内精品伊人久久久久av一坑| 久久亚洲精品无码观看不卡| 精品人妻伦一二三区久久| 久久免费高清视频| 国产精品美女久久久| 国产精品一区二区久久| 久久精品国产99国产电影网 | 香港aa三级久久三级老师2021国产三级精品三级在 | 国产精品禁18久久久夂久| 国产精品久久久久久久人人看| 国产亚洲成人久久| 中文字幕亚洲综合久久2| 国产成人精品久久综合| 久久精品国产一区二区| 久久久久久久综合综合狠狠|