青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

MySQL數據庫基礎:數據類型及列類型

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

    1. MySQL的數據類型 

    在MySQL中有如下幾種數據類型: 

    (1)數值型 

    數值是諸如32 或153.4 這樣的值。MySQL 支持科學表示法,科學表示法由整數或浮點數后跟“e”或“E”、一個符號(“+”或“-”)和一個整數指數來表示。1.24E+12 和23.47e-1 都是合法的科學表示法表示的數。而1.24E12 不是合法的,因為指數前的符號未給出。 

    浮點數由整數部分、一個小數點和小數部分組成。整數部分和小數部分可以分別為空,但不能同時為空。 

    數值前可放一個負號“-”以表示負值。 

    (2)字符(串)型 

    字符型(也叫字符串型,簡稱串)是諸如“Hello, world!”或“一個饅頭引起的血案”這樣的值,或者是電話號碼87398413這樣的值。既可用單引號也可用雙引號將串值括起來。
 
    初學者往往分不清數值87398143和字符串87398143的區別。都是數字啊,怎么一個要用數值型,一個要用字符型呢?關鍵就在于:數值型的87398143是要參與計算的,比如它是金融中的一個貨款總額;而字符型的87398143是不參與計算的,只是表示電話號碼,這樣的還有街道號碼、門牌號碼等等,它們都不參與計算。 

    (3)日期和時間型 

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

    (4)NULL值 

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

    我們用Create Table語句創建一個表(參看前面的章節),這個表中包含列的定義。例如我們在前面創建了一個joke表,這個表中有content和writer兩個列:

  

CREATE TABLE
(
content varchar(20) NOT NULL,
writer varchar(10) NULL
)
 

 

   定義一個列的語法如下:

col_name col_typy [col_attributes] 
[general_attributes]
 

 

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

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

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

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

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

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

[NextPage]        2. MySQL的列(字段)類型

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

    2.1數值列類型

    MySQL有整數和浮點數值的列類型,如表1所示。整數列類型可以有符號也可無符號。有一種特殊的屬性允許整數列值自動生成,這對需要唯一序列或標識號的應用系統來說是非常有用的。

類型

說明

TINYINT 非常小的整數 SMALLINT 較小整數 MEDIUMINT 中等大小整數 INT 標準整數 BIGINT 較大整數 FLOAT 單精度浮點數 DOUBLE 雙精度浮點數 DECIMAL 一個串的浮點數

 

表1:數值列類型

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

類型說明

取值范圍

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

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

 


表2:數值列類型的取值范圍

    各種類型值所需的存儲量如表3所示。

類型說明

存儲需求

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

 

表3:數值列類型的存儲需求

[NextPage]  

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

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

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

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

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


    2.2字符串列類型

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

類型名

說明

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

 

表4:字符串列類型

    下表給出了MySQL 定義串值列的類型,以及每種類型的最大尺寸和存儲需求。對于可變長的列類型,各行的值所占的存儲量是不同的,這取決于實際存放在列中的值的長度。這個長度在表中用L 表示。

類型說明

最大尺寸

存儲需求

CHAR( M) M 字節 M 字節 VARCHAR(M) M 字節 L + 1字節 TINYBLOB, TINYTEXT 28- 1字節 L + 1字節 BLOB, TEXT 216 - 1 字節 L + 2字節 MEDIUMBLOB, MEDIUMTEXT 224- 1字節 L + 3字節 LONGBLOB, LONGTEXT 232- 1字節 L + 4字節 ENUM(“value1”, “value2”, ...) 65535 個成員 1 或2字節 SET (“value1”, “value2”, ...) 64個成員 1、2、3、4 或8字節

 

表5:串列類型最大尺寸及存儲需求

    L 以外所需的額外字節為存放該值的長度所需的字節數。MySQL 通過存儲值的內容及其長度來處理可變長度的值。這些額外的字節是無符號整數。請注意,可變長類型的最大長度、此類型所需的額外字節數以及占用相同字節數的無符號整數之間的對應關系。例如,MEDIUMBLOB 值可能最多224 - 1字節長并需要3 個字節記錄其結果。3 個字節的整數類型MEDIUMINT 的最大無符號值為224 - 1。這并非偶然。

[NextPage]        2.3日期時間列類型

    MySQL 提供了幾種時間值的列類型,它們分別是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。下表給出了MySQL 為定義存儲日期和時間值所提供的這些類型,并給出了每種類型的合法取值范圍。

類型名

說明

DATE “YYYY-MM-DD”格式表示的日期值 TIME “hh:mm:ss”格式表示的時間值 DATETIME “YYYY-MM-DD hh:mm:ss”格式 TIMESTAMP “YYYYMMDDhhmmss”格式表示的時間戳值 YEAR “YYYY”格式的年份值

 

表6:日期時間列類型

類型名

取值范圍

存儲需求

DATE “1000-01-01”到“9999-12-31” 3字節 TIME “-838:59:59”到“838:59:59” 3字節 DATETIME “1000-01-01 00:00:00” 到“9999-12-31 23:59:59” 8字節 TIMESTAMP 19700101000000 到2037 年的某個時刻 4字節 YEAR 1901 到2155 1字節

 

表7: 日前時間列類型的取值范圍和存儲需求

    下面舉個例子:

CREATE TABLE student
(
Name varchar(20) NOT NULL,
Chinese TINYINT(3),
Maths TINYINT(3),
English TINYINT(3),
Birthday DATE
)

 

    這個例子創建一個student表,這個表中有name字段,字符類型列,不允許NULL(空值)。有Chinese、Maths和English三個整數類型列。還有個Birthday日期類型列。

posted on 2007-04-24 21:03 PeakGao 閱讀(632) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫開發

<2007年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

導航

統計

常用鏈接

留言簿(9)

隨筆分類(67)

隨筆檔案(65)

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久另类ts人妖一区二区| 男人天堂欧美日韩| 99精品热视频只有精品10| 欧美日韩国产探花| 麻豆精品精品国产自在97香蕉| 欧美高清一区| 亚洲精品一区二| 欧美国产日产韩国视频| 欧美三级网页| 亚洲精品国精品久久99热一| 免费毛片一区二区三区久久久| 久久婷婷蜜乳一本欲蜜臀| 香蕉av福利精品导航| 久久精品成人欧美大片古装| 欧美三级视频在线| 欧美人与禽猛交乱配| 亚洲一区二区三区国产| 久久九九热re6这里有精品| 在线视频免费在线观看一区二区| 蜜月aⅴ免费一区二区三区| 欧美激情中文字幕在线| 亚洲国内高清视频| 亚洲视频一区二区| 亚洲欧美精品伊人久久| 午夜久久黄色| 免费欧美视频| 国产啪精品视频| 亚洲欧美在线网| 国产精品毛片大码女人| 久久久久国产精品一区三寸| 欧美一区二区啪啪| 亚洲精品免费在线| 亚洲美女91| 久久精品伊人| 亚洲天堂av在线免费| 国产一区二区三区在线观看免费视频 | 欧美日韩一区二| 国产精品video| 亚洲黄色尤物视频| 亚洲欧洲在线播放| 久久精品亚洲精品| 亚洲第一精品夜夜躁人人躁| 久久久久成人精品| 亚洲激情校园春色| 国产一级久久| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲女人天堂av| 久久免费视频观看| 亚洲一二三四区| 中国av一区| 亚洲精品日韩在线| 中文亚洲免费| 一区二区欧美日韩| 欧美日在线观看| 欧美亚男人的天堂| 一区二区免费在线播放| 欧美激情久久久久久| 午夜欧美不卡精品aaaaa| 国产区亚洲区欧美区| 欧美专区亚洲专区| 亚洲女人天堂成人av在线| 在线日韩av片| 国产精品一卡二卡| 午夜精品一区二区三区在线视 | 午夜电影亚洲| 亚洲无限乱码一二三四麻| 一本久久综合| 亚洲欧美卡通另类91av | 亚洲国产99| 国产精品亚洲аv天堂网| 麻豆91精品91久久久的内涵| 亚洲网友自拍| 国产精品草草| 美女精品一区| 欧美精品自拍| 欧美ed2k| 欧美日韩一区在线播放| 欧美在线观看一区二区三区| 欧美亚洲综合另类| 一区电影在线观看| 久久久人成影片一区二区三区观看| 亚洲欧美视频一区| 亚洲精品中文字幕女同| 在线观看三级视频欧美| 永久免费视频成人| 亚洲国产精品一区二区久| 亚洲理论在线| 一道本一区二区| 亚洲中无吗在线| 亚洲电影在线| 久久av资源网| 欧美三区美女| 亚洲精品久久久一区二区三区| 1204国产成人精品视频| 亚洲一二三四久久| 亚洲美女在线一区| 噜噜噜91成人网| 亚洲一区www| 欧美巨乳在线| 欧美国产高清| 亚洲国产精品一区二区第一页 | 免费在线成人| 国产日韩精品一区二区三区| 亚洲欧美一区二区视频| 欧美一区二区三区在线播放| 欧美在线网站| 亚洲精品女av网站| 亚洲国产高清在线观看视频| 欧美fxxxxxx另类| 亚洲精品视频在线播放| 亚洲日本乱码在线观看| 欧美日韩一区二区三区四区五区 | 欧美亚洲三区| 久久综合九色欧美综合狠狠| 国内外成人在线| 久久久久成人精品| 欧美jizz19性欧美| 国产精品99久久久久久久女警| 欧美激情中文字幕在线| 99视频精品在线| 久久精品免视看| 日韩网站在线观看| 国产一区二区在线观看免费| 亚洲成人资源网| 欧美日韩中文字幕在线| 欧美日韩国产成人高清视频| 蜜桃久久av一区| 亚洲成人在线视频网站| 国产精品久久久久久久久久妞妞 | 欧美日韩高清不卡| 亚洲成人资源网| 亚洲视频免费| 国产一区二区精品久久| 欧美人与性动交a欧美精品| 亚洲视频一区在线观看| 免费成人你懂的| 亚洲一区二区三区在线视频 | 亚洲欧洲精品一区| 久久人人爽爽爽人久久久| 亚洲精品社区| 蜜桃av噜噜一区| 久久亚洲私人国产精品va媚药 | 亚洲综合精品自拍| 亚洲精品国精品久久99热| 久久综合色8888| 欧美视频久久| 亚洲国产美女精品久久久久∴| 欧美成人在线免费视频| 久久久久久综合网天天| 美日韩免费视频| 亚洲视频在线观看视频| 欧美成人午夜激情视频| 免费成人小视频| 欧美jjzz| 老牛嫩草一区二区三区日本 | 一本色道久久综合亚洲精品婷婷 | 欧美一区二区精品| 国产精品国产三级国产aⅴ入口| 亚洲国产成人porn| 在线精品一区二区| 欧美第一黄网免费网站| 亚洲国产精品成人综合色在线婷婷| 亚洲欧美激情在线视频| 99视频精品全部免费在线| 国产精品福利网站| 久久国产天堂福利天堂| 亚洲福利精品| 国产精品一区二区在线观看不卡 | 久久国产天堂福利天堂| 亚洲欧美日韩综合| 欧美在线观看www| 亚洲欧美成人网| 欧美一区二区观看视频| 午夜久久影院| 免费成人黄色片| 99精品国产高清一区二区| 亚洲第一福利视频| 一本久久精品一区二区| 国模套图日韩精品一区二区| 老司机午夜精品视频在线观看| 在线天堂一区av电影| 麻豆精品传媒视频| 亚洲免费观看高清在线观看| 国产欧美视频一区二区| 老**午夜毛片一区二区三区| 亚洲欧美一区二区精品久久久| 91久久精品日日躁夜夜躁国产| 久久久免费av| 亚洲欧美日韩视频二区| 欧美大片专区| 欧美日韩国内| 国产午夜精品在线| 99在线精品视频在线观看| 午夜精品www| 亚洲精品少妇网址| 久久九九久久九九| 国产日韩欧美成人| 亚洲美女中文字幕| 欧美国产另类| 久久精品国产999大香线蕉|