




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1. mysql的數(shù)據(jù)類型 在mysql中有如下幾種數(shù)據(jù)類型: (1)字符(串)型 字符型(也叫字符串型,簡(jiǎn)稱串)是諸如“hello, world!”或“一個(gè)饅頭引起的血案”這樣的值,或者是電話號(hào)碼87398413這樣的值。既可用單引號(hào)也可用雙引號(hào)將串值括起來。 初學(xué)者往往分不清數(shù)值87398143和字符串87398143
2、的區(qū)別。都是數(shù)字啊,怎么一個(gè)要用數(shù)值型,一個(gè)要用字符型呢?關(guān)鍵就在于:數(shù)值型的87398143是要參與計(jì)算的,比如它是金融中的一個(gè)貨款總額;而字符型的87398143是不參與計(jì)算的,只是表示電話號(hào)碼,這樣的還有街道號(hào)碼、門牌號(hào)碼等等,它們都不參與計(jì)算。 (2)數(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 都
3、是合法的科學(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ù)值。 (3)日期和時(shí)間型 日期和時(shí)間是一些諸如“2006-07-12”或“12:30:43”這樣的值。mysql還支持日期/時(shí)間的組合,如“2006
4、-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è)列: create table(content va
5、rchar(20) not null,writer varchar(10) null) 定義一個(gè)列的語法如下: col_name col_typy col_attributes general_attributes 其中列名由col_name 給出。列名可最多包含64個(gè)字符,字符包括字母、數(shù)字、下劃線及美元符號(hào)。列名可以名字中合法的任何符號(hào)(包括數(shù)字)開頭。但列名不能完全由數(shù)字組成,因?yàn)槟菢涌赡苁蛊渑c
6、數(shù)據(jù)分不開。mysql保留諸如select、delete和create這樣的詞,這些詞不能用做列名,但是函數(shù)名(如pos 和min)是可以使用的。 列類型col_type表示列可存儲(chǔ)的特定值。列類型說明符還能表示存放在列中的值的最大長(zhǎng)度。對(duì)于某些類型,可用一個(gè)數(shù)值明確地說明其長(zhǎng)度。而另外一些值,其長(zhǎng)度由類型名蘊(yùn)含。例如,char(10) 明確指定了10個(gè)字符的長(zhǎng)度,而tinyblob值隱含最大長(zhǎng)度為255個(gè)字符。有的類型說明符允許指定最大的顯示寬度(即顯示值時(shí)使用多少個(gè)字符)。浮點(diǎn)類型允許指定小數(shù)位數(shù),所以能控制浮點(diǎn)
7、數(shù)的精度值為多少。 可以在列類型之后指定可選的類型說明屬性,以及指定更多的常見屬性。屬性起修飾類型的作用,并更改其處理列值的方式,屬性有以下類型: (1)專用屬性用于指定列。例如,unsigned 屬性只針對(duì)整型,而binary屬性只用于char 和varchar。 (2)通用屬性除少數(shù)列之外可用于任意列。可以指定null 或not null 以表示某個(gè)列是否能夠存放nul
8、l。還可以用default,def_value 來表示在創(chuàng)建一個(gè)新行但未明確給出該列的值時(shí),該列可賦予值def_value。def_value 必須為一個(gè)常量;它不能是表達(dá)式,也不能引用其他列。不能對(duì)blob 或text 列指定缺省值。 如果想給出多個(gè)列的專用屬性,可按任意順序指定它們,只要它們跟在列類型之后、通用屬性之前即可。類似地,如果需要給出多個(gè)通用屬性,也可按任意順序給出它們,只要將它們放在列類型和可能給出的列專用屬性之后即可。 2.
9、;mysql的列(字段)類型 數(shù)據(jù)庫中的每個(gè)表都是由一個(gè)或多個(gè)列(字段)構(gòu)成的。在用create table語句創(chuàng)建一個(gè)表時(shí),要為每列(字段)指定一個(gè)類型。列(字段)的類型比數(shù)據(jù)類型更為細(xì)化,它精確地描述了給定表列(字段)可能包含的值的種類,如是否帶小數(shù)、是否文字很多。 2.1數(shù)值列類型 mysql有整數(shù)和浮點(diǎn)數(shù)值的列類型,如表1所示。整數(shù)列類型可以有符號(hào)也可無符號(hào)。有一種特殊的屬性允許整數(shù)列值自動(dòng)生成,這對(duì)需要
10、唯一序列或標(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(
11、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 到
12、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 - 38double(m,d)最
13、小非零值:±2.2250738585072014e - 308decimal (m, d)可變;其值的范圍依賴于m 和d表2:數(shù)值列類型的取值范圍 各種類型值所需的存儲(chǔ)量如表3所示。類型說明存儲(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 <
14、60;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。與整型
15、不同,浮點(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ù)百萬的值并且可用于更多類型的值,但
16、存儲(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è)缺省的寬
17、度。缺省值為每種類型的“最長(zhǎng)”值的長(zhǎng)度。如果某個(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(xù) 和d 對(duì)應(yīng)于odbc 概念的“精度”和“小數(shù)點(diǎn)位數(shù)”)。m和d對(duì)float和double 都是可選的,但對(duì)于decimal
18、是必須的。在選項(xiàng)m 和d時(shí),如果省略了它們,則使用缺省值。 2.2字符串列類型 mysql提供了幾種存放字符數(shù)據(jù)的串類型,其類型如下:類型名說明char定長(zhǎng)字符串varchar可變長(zhǎng)字符串tinyblob非常小的blob(二進(jìn)制大對(duì)象)blob小blobmediumblob中等的bloblongblob大blobtinytext非常小的文本串text小文本串mediumtext中等文本串longtext大文本串enum枚舉;列可賦予某個(gè)枚舉成員set集合;列可賦予多個(gè)集
19、合成員表4:字符串列類型 下表給出了mysql 定義串值列的類型,以及每種類型的最大尺寸和存儲(chǔ)需求。對(duì)于可變長(zhǎng)的列類型,各行的值所占的存儲(chǔ)量是不同的,這取決于實(shí)際存放在列中的值的長(zhǎng)度。這個(gè)長(zhǎng)度在表中用l 表示。類型說明最大尺寸存儲(chǔ)需求char( m)m 字節(jié)m 字節(jié)varchar(m)m 字節(jié)l + 1字節(jié)tinyblob, tinytext28- 1字節(jié)l + 1字節(jié)blob, text216 -
20、1 字節(jié)l + 2字節(jié)mediumblob, mediumtext224- 1字節(jié)l + 3字節(jié)longblob, longtext232- 1字節(jié)l + 4字節(jié)enum(“value1”, “value2”, .)65535 個(gè)成員1 或2字節(jié)set (“value1”, “value2”, .)64個(gè)成員1、2、3、4 或8字節(jié)表5:串列類型最大尺寸及存儲(chǔ)需求
21、0;l 以外所需的額外字節(jié)為存放該值的長(zhǎng)度所需的字節(jié)數(shù)。mysql 通過存儲(chǔ)值的內(nèi)容及其長(zhǎng)度來處理可變長(zhǎng)度的值。這些額外的字節(jié)是無符號(hào)整數(shù)。請(qǐng)注意,可變長(zhǎng)類型的最大長(zhǎng)度、此類型所需的額外字節(jié)數(shù)以及占用相同字節(jié)數(shù)的無符號(hào)整數(shù)之間的對(duì)應(yīng)關(guān)系。例如,mediumblob 值可能最多224 - 1字節(jié)長(zhǎng)并需要3 個(gè)字節(jié)記錄其結(jié)果。3 個(gè)字節(jié)的整數(shù)類型mediumint 的最大無符號(hào)值為224 - 1。這并非偶然。 2.3日期時(shí)間列類型 mysql 提供了幾種時(shí)間值的列類型,它們分別是: date、datetime、time、timestamp和year。下表給出了mysql 為定義存儲(chǔ)日期和時(shí)間值所提供的這些類型,并給出了每種類型的合法取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件技術(shù)專業(yè)教學(xué)標(biāo)準(zhǔn)(高等職業(yè)教育專科)2025修訂
- 2025年中國(guó)緊急救援和其他救助服務(wù)行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 2025年中國(guó)建筑護(hù)板行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 2025年中國(guó)咖啡器具行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資前景展望報(bào)告
- 癌癥患者情緒疏導(dǎo)
- 防爆培訓(xùn)課件
- 中國(guó)維生素B12行業(yè)市場(chǎng)調(diào)查研究及投資規(guī)劃建議報(bào)告
- 2020-2025年中國(guó)摩托車鋁輪行業(yè)市場(chǎng)調(diào)研分析及投資前景預(yù)測(cè)報(bào)告
- 2024年中國(guó)四氯吡啶行業(yè)市場(chǎng)調(diào)查報(bào)告
- 2025年 云南省行測(cè)考試試題附答案
- 住院費(fèi)用清單2
- 2025水發(fā)集團(tuán)限公司招聘若干人(山東)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 《汽車電氣設(shè)備構(gòu)造與維修》配套教案:模塊四-項(xiàng)目1-啟動(dòng)機(jī)的認(rèn)知
- CSCO小細(xì)胞肺癌課件
- 安徽省合肥一中2024-2025學(xué)年高一(上)期末語文試卷(含答案)
- 《結(jié)腸癌護(hù)理查房》課件
- 2025年湖南省中職《思想政治》普測(cè)核心考點(diǎn)試題庫500題(重點(diǎn))
- DB37-T 3080-2022 特種設(shè)備作業(yè)人員配備要求
- 電焊工職業(yè)技能鑒定高級(jí)工理論題庫
- 火災(zāi)逃生自救知識(shí)培訓(xùn)
- 無線覆蓋系統(tǒng)施工方案
評(píng)論
0/150
提交評(píng)論