1. mysql常見的數據類型有哪些
MySQL數據類型有
整數類型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
浮點數類型:FLOAT、DOUBLE、DECIMAL
字元串類型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
日期類型:Date、DateTime、TimeStamp、Time、Year
其他數據類型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等
2. mysql資料庫中有幾種數據類型
MySQL數據類型之一字元型
VARCHAR VS CHAR
VARCHAR型和CHAR型數據的這個差別是細微的,但是非常重要。他們都是用來儲存字元串長度小於255的字元。
假如你向一個長度為四十個字元的VARCHAR型欄位中輸入數據Bill Gates。當你以後從這個欄位中取出此數據時,你取出的數據其長度為十個字元——字元串Bill Gates的長度。 現在假如你把字元串輸入一個長度為四十個字元的CHAR型欄位中,那麼當你取出數據時,所取出的數據長度將是四十個字元。字元串的後面會被附加多餘的空格。
當你建立自己的站點時,你會發現使用VARCHAR型欄位要比CHAR型欄位方便的多。使用VARCHAR型欄位時,你不需要為剪掉你數據中多餘的空格而操心。
VARCHAR型欄位的另一個突出的好處是它可以比CHAR型欄位佔用更少的內存和硬碟空間。當你的資料庫很大時,這種內存和磁碟空間的節省會變得非常重要
MySQL數據類型之二文本型
TEXT
使用文本型數據,你可以存放超過二十億個字元的字元串。當你需要存儲大串的字元時,應該使用文本型數據。
注意文本型數據沒有長度,而上一節中所講的字元型數據是有長度的。一個文本型欄位中的數據通常要麼為空,要麼很大。
當你從HTML form的多行文本編輯框(TEXTAREA)中收集數據時,你應該把收集的信息存儲於文本型欄位中。但是,無論何時,只要你能避免使用文本型欄位,你就應該不適用它。文本型欄位既大且慢,濫用文本型欄位會使伺服器速度變慢。文本型欄位還會吃掉大量的磁碟空間。
一旦你向文本型欄位中輸入了任何數據(甚至是空值),就會有2K的空間被自動分配給該數據。除非刪除該記錄,否則你無法收回這部分存儲空間。
MySQL數據類型之三數值型
SQL支持許多種不同的數值型數據。你可以存儲整數 INT 、小數 NUMERIC、和錢數 MONEY。
INT VS SMALLINT VS TINYINT
他們的區別只是字元長度:
INT型數據的表數范圍是從-2,147,483,647到2,147,483,647的整數
SMALLINT 型數據可以存儲從-32768到32768的整數
TINYINT 型的欄位只能存儲從0到255的整數,不能用來儲存負數
通常,為了節省空間,應該盡可能的使用最小的整型數據。一個TINYINT型數據只佔用一個位元組;一個INT型數據佔用四個位元組。這看起來似乎差別不大,但是在比較大的表中,位元組數的增長是很快的。另一方面,一旦你已經創建了一個欄位,要修改它是很困難的。因此,為安全起見,你應該預測以下,一個欄位所需要存儲的數值最大有可能是多大,然後選擇適當的數據類型。
MUNERIC
為了能對欄位所存放的數據有更多的控制,你可以使用NUMERIC型數據來同時表示一個數的整數部分和小數部分。NUMERIC型數據使你能表示非常大的數——比INT型數據要大得多。一個NUMERIC型欄位可以存儲從-1038到1038范圍內的數。NUMERIC型數據還使你能表示有小數部分的數。例如,你可以在NUMERIC型欄位中存儲小數3.14。
當定義一個NUMERIC型欄位時,你需要同時指定整數部分的大小和小數部分的大小。如:MUNERIC(23,0)
一個 NUMERIC型數據的整數部分最大隻能有28位,小數部分的位數必須小於或等於整數部分的位數,小數部分可以是零。
MONEY VS SMALLMONEY
你可以使用 INT型或NUMERIC型數據來存儲錢數。但是,專門有另外兩種數據類型用於此目的。如果你希望你的網點能掙很多錢,你可以使用MONEY型數據。如果你的野心不大,你可以使用SMALLMONEY型數據。MONEY型數據可以存儲從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢數。如果你需要存儲比這還大的金額,你可以使用NUMERIC型數據。
SMALLMONEY型數據只能存儲從-214,748.3648到214,748.3647 的錢數。同樣,如果可以的話,你應該用SMALLMONEY型來代替MONEY型數據,以節省空間。
MySQL數據類型之四邏輯型
BIT
如果你使用復選框( CHECKBOX)從網頁中搜集信息,你可以把此信息存儲在BIT型欄位中。BIT型欄位只能取兩個值:0或1。
當心,在你創建好一個表之後,你不能向表中添加 BIT型欄位。如果你打算在一個表中包含BIT型欄位,你必須在創建表時完成。
MySQL數據類型之五日期型
DATETIME VS SMALLDATETIME
一個 DATETIME型的欄位可以存儲的日期范圍是從1753年1月1日第一毫秒到9999年12月31日最後一毫秒。
如果你不需要覆蓋這么大范圍的日期和時間,你可以使用SMALLDATETIME型數據。它與DATETIME型數據同樣使用,只不過它能表示的日期和時間范圍比DATETIME型數據小,而且不如DATETIME型數據精確。一個SMALLDATETIME型的欄位能夠存儲從1900年1月1日到2079年6月6日的日期,它只能精確到秒。
DATETIME型欄位在你輸入日期和時間之前並不包含實際的數據,認識這一點是重要的。
3. mysql中常見的數據類型
一:MySQL數據類型
MySQL中定義數據欄位的類型對你資料庫的優化是非常重要的
MySQL支持多種數據類型,大致可以分為三類:數值 日期/時間和字元串
二、數值類型
1.整數類型
4. MySql數據類型有哪些
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兩個列:
定義一個列的語法如下:
其中列名由col_name 給出。列名可最多包含64個字元,字元包括字母、數字、下劃線及美元符號。列名可以名字中合法的任何符號(包括數字)開頭。但列名不能完全由數字組成,因 為那樣可能使其與MySQL數據類型分不開。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 列指定預設值。
如果想給出多個列的專用屬性,可按任意順序指定它們,只要它們跟在列類型之後、通用屬性之前即可。類似地,如果需要給出多個通用屬性,也可按任意順序給出它們,只要將它們放在列類型和可能給出的列專用屬性之後即可。
2. MySQL的列(欄位)類型
資料庫中的每個表都是由一個或多個列(欄位)構成的。在用CREATE TABLE語句創建一個表時,要為每列(欄位)指定一個類型。列(欄位)的類型比MySQL數據類型更為細化,它精確地描述了給定表列(欄位)可能包含的值的種類,如是否帶小數、是否文字很多。
5. mysql的數據類型都有哪些
1、整型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,則最大值翻倍,如tinyint unsigned的取值范圍為(0~256)。int(m)里的m是表示SELECT查詢結果集中的顯示寬度,並不影響實際的取值范圍,沒有影響到顯示的寬度,不知道這個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,但總個數還以實際為准,即6位。3、定點數浮點型在資料庫中存放的是近似值,而定點類型在資料庫中存放的是精確值。decimal(m,d) 參數m<65 是總個數,d<30且 d<m 是小數位。4、字元串(char,varchar,_text)MySQL數據類型 含義char(n) 固定長度,最多255個字元varchar(n) 固定長度,最多65535個字元tinytext 可變長度,最多255個字元text 可變長度,最多65535個字元mediumtext 可變長度,最多2的24次方-1個字元longtext 可變長度,最多2的32次方-1個字元char和varchar:1.char(n) 若存入字元數小於n,則以空格補於其後,查詢之時再將空格去掉。所以char類型存儲的字元串末尾不能有空格,varchar不限於此。2.char(n) 固定長度,char(4)不管是存入幾個字元,都將佔用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將佔用4個位元組。3.char類型的字元串檢索速度要比varchar類型的快。varchar和text:1.varchar可指定n,text不能指定,內部存儲varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),text是實際字元數+2個位元組。2.text類型不能有默認值。3.varchar可直接創建索引,text創建索引要指定前多少個字元。varchar查詢速度快於text,在都創建索引的情況下,text的索引似乎不起作用。5.二進制數據(_Blob)1._BLOB和_text存儲方式不同,_TEXT以文本方式存儲,英文存儲區分大小寫,而_Blob是以二進制方式存儲,不分大小寫。2._BLOB存儲的數據只能整體讀出。3._TEXT可以指定字元集,_BLO不用指定字元集。6.日期時間類型MySQL數據類型 含義date 日期 '2008-12-2'time 時間 '12:25:36'datetime 日期時間 '2008-12-2 22:06:44'timestamp 自動存儲記錄修改時間若定義一個欄位為timestamp,這個欄位里的時間數據會隨其他欄位修改的時候自動刷新,所以這個數據類型的欄位可以存放這條記錄最後被修改的時間。