MySQL的資料型別
學習下資料型別~
1、日期型別
2、數值整型
Mysql支援所有標準SQL中的數值型別,其中包括嚴格資料型別(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似數值資料型別(FLOAT,REAL,DOUBLE PRESISION),並在此基礎上進行擴充套件。
擴充套件後增加了TINYINT,MEDIUMINT,BIGINT這3種長度不同的整形,並增加了BIT型別,用來存放位資料。
上面定義的都是有符號的,當然了,也可以加上unsigned關鍵字,定義成無符號的型別,那麼對應的取值範圍就要翻倍了,比如:
tinyint unsigned的取值範圍為0~255。
INSERT INTO test123 VALUES(-10);
1 queries executed, 0 success, 1 errors, 0 warnings
查詢:insert into test123 values(-10)
錯誤程式碼: 1264
Out of range value for column 'id' at row 1
3、數值浮點型
CREATE TABLE test123 (id FLOAT(5,3) PRIMARY KEY AUTO_INCREMENT) ENGINE=INNODB;
INSERT INTO test123 VALUES(12.7);
INSERT INTO test123 VALUES(12.7333);
INSERT INTO test123 VALUES(13.777);
查詢的結果為如下:當然插入123.4是插不進去的!當然unsigned只是去掉了負數部分,加上這個關鍵字插入的範圍減半~
id
--------
12.700
12.733
13.777
4、字串型別
1.char(n)和varchar(n)中括號中n代表字元的個數,並不代表位元組個數,所以當使用了中文的時候(UTF8)意味著可以插入m箇中文,但是實際會佔用m*3個位元組。
CREATE TABLE test123 (id CHAR(5) PRIMARY KEY ) ENGINE=INNODB CHARSET=utf8; 這裡不能新增自增主鍵,字元無法自增額INSERT INTO test123 VALUES('我');
INSERT INTO test123 VALUES('我的');
INSERT INTO test123 VALUES('我的蛋');
INSERT INTO test123 VALUES('我的蛋蛋');
INSERT INTO test123 VALUES('我的蛋蛋大');
INSERT INTO test123 VALUES('我的蛋蛋大啊'); --這個不能插入,因為最多5個字元,UTF8的字符集試試就知道了
INSERT INTO test123 VALUES('abcde');
INSERT INTO test123 VALUES('abcdef'); --這個不能插入,因為最多5個字元
2.同時char和varchar最大的區別就在於char不管實際value都會佔用n個字元的空間,而varchar只會佔用實際字元應該佔用的空間+1,並且實際空間+1<=n。VARCHAR 型別可以根據實際內容動態改變儲存值的長度,所以在不能確定欄位需要多少字元時使用 VARCHAR 型別可以大大地節約磁碟空間、提高儲存效率。
3.超過char和varchar的n設定後,字串會被截斷。
4.char的上限為255位元組,varchar的上限65535位元組,text的上限為65535。
5.char在儲存的時候會截斷尾部的空格,varchar和text不會。
6.varchar會使用1-3個位元組來儲存長度,text不會。
其他型別
1.enum(“member1″, “member2″, … “member65535″)
enum資料型別就是定義了一種列舉,最多包含65535個不同的成員。當定義了一個enum的列時,該列的值限制為列定義中宣告的值。如果列宣告包含NULL屬性,則NULL將被認為是一個有效值,並且是預設值。如果宣告瞭NOT NULL,則列表的第一個成員是預設值。
2.set(“member”, “member2″, … “member64″)
set資料型別為指定一組預定義值中的零個或多個值提供了一種方法,這組值最多包括64個成員。值的選擇限制為列定義中宣告的值。
1、日期型別
點選(此處)摺疊或開啟
-
MySQL資料型別 含義
-
date 3位元組, 日期, 格式:2014-09-18
-
time 3位元組, 時間, 格式:08:42:30
-
datetime 8位元組, 日期和時間, 格式:2014-09-18 08:42:30
-
timestamp 4位元組, 自動儲存記錄修改的時間
- year 1位元組, 年份
Mysql支援所有標準SQL中的數值型別,其中包括嚴格資料型別(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似數值資料型別(FLOAT,REAL,DOUBLE PRESISION),並在此基礎上進行擴充套件。
擴充套件後增加了TINYINT,MEDIUMINT,BIGINT這3種長度不同的整形,並增加了BIT型別,用來存放位資料。
點選(此處)摺疊或開啟
-
MySQL資料型別 含義(有符號)
-
tinyint 1位元組,範圍(-128~127)
-
smallint 2位元組,範圍(-32768~32767)
-
mediumint 3位元組,範圍(-8388608~8388607)
-
int 4位元組,範圍(-2147483648~2147483647)
- bigint 8位元組,範圍(+-9.22*10的18次方)
tinyint unsigned的取值範圍為0~255。
點選(此處)摺疊或開啟
- CREATE TABLE test123 (id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT) ENGINE=INNODB
1 queries executed, 0 success, 1 errors, 0 warnings
查詢:insert into test123 values(-10)
錯誤程式碼: 1264
Out of range value for column 'id' at row 1
3、數值浮點型
點選(此處)摺疊或開啟
-
MySQL資料型別 含義
-
float(m, d) 4位元組,單精度浮點型,m總個數,d小數位
-
double(m, d) 8位元組,雙精度浮點型,m總個數,d小數位
- decimal(m, d) decimal是儲存為字串的浮點數
INSERT INTO test123 VALUES(12.7);
INSERT INTO test123 VALUES(12.7333);
INSERT INTO test123 VALUES(13.777);
查詢的結果為如下:當然插入123.4是插不進去的!當然unsigned只是去掉了負數部分,加上這個關鍵字插入的範圍減半~
id
--------
12.700
12.733
13.777
4、字串型別
點選(此處)摺疊或開啟
-
MySQL資料型別 含義
-
char(n) 固定長度,最多255個字元
-
varchar(n) 可變長度,最多65535個字元
-
tinytext 可變長度,最多255個字元
-
text 可變長度,最多65535個字元
-
mediumtext 可變長度,最多2的24次方-1個字元
- longtext 可變長度,最多2的32次方-1個字元
CREATE TABLE test123 (id CHAR(5) PRIMARY KEY ) ENGINE=INNODB CHARSET=utf8; 這裡不能新增自增主鍵,字元無法自增額INSERT INTO test123 VALUES('我');
INSERT INTO test123 VALUES('我的');
INSERT INTO test123 VALUES('我的蛋');
INSERT INTO test123 VALUES('我的蛋蛋');
INSERT INTO test123 VALUES('我的蛋蛋大');
INSERT INTO test123 VALUES('我的蛋蛋大啊'); --這個不能插入,因為最多5個字元,UTF8的字符集試試就知道了
INSERT INTO test123 VALUES('abcde');
INSERT INTO test123 VALUES('abcdef'); --這個不能插入,因為最多5個字元
2.同時char和varchar最大的區別就在於char不管實際value都會佔用n個字元的空間,而varchar只會佔用實際字元應該佔用的空間+1,並且實際空間+1<=n。VARCHAR 型別可以根據實際內容動態改變儲存值的長度,所以在不能確定欄位需要多少字元時使用 VARCHAR 型別可以大大地節約磁碟空間、提高儲存效率。
3.超過char和varchar的n設定後,字串會被截斷。
4.char的上限為255位元組,varchar的上限65535位元組,text的上限為65535。
5.char在儲存的時候會截斷尾部的空格,varchar和text不會。
6.varchar會使用1-3個位元組來儲存長度,text不會。
其他型別
1.enum(“member1″, “member2″, … “member65535″)
enum資料型別就是定義了一種列舉,最多包含65535個不同的成員。當定義了一個enum的列時,該列的值限制為列定義中宣告的值。如果列宣告包含NULL屬性,則NULL將被認為是一個有效值,並且是預設值。如果宣告瞭NOT NULL,則列表的第一個成員是預設值。
2.set(“member”, “member2″, … “member64″)
set資料型別為指定一組預定義值中的零個或多個值提供了一種方法,這組值最多包括64個成員。值的選擇限制為列定義中宣告的值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30496894/viewspace-1814622/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 的資料型別MySql資料型別
- [Mysql]資料型別MySql資料型別
- MySQL資料型別MySql資料型別
- MYSQL 資料型別MySQL 資料型別
- mysql 常用的資料型別MySql資料型別
- MySQL基本資料型別MySql資料型別
- mysql 資料型別TIMESTAMPMySQL 資料型別
- 06. MySQL的資料型別MySql資料型別
- 【MySQL】資料型別的基本用法MySql資料型別
- Mysql 資料型別之整數型別MySQL 資料型別
- Java 支援的資料型別與 MySQL 支援的資料型別對比Java資料型別MySql
- MySQL基礎之----資料型別篇(常用資料型別)MySql資料型別
- MySQL JSON資料型別操作MySqlJSON資料型別
- 詳解MySQL資料型別MySql資料型別
- MySQL資料型別筆記MySql資料型別筆記
- mysql常見資料型別MySql資料型別
- MySQL資料型別DECIMAL用法MySql資料型別Decimal
- MySQL入門--資料型別MySql資料型別
- MySQL 資料型別詳解MySQL 資料型別
- Mysql支援的資料型別(總結)MySql資料型別
- MySQL中資料型別的驗證MySql資料型別
- MySQL入門系列:MySQL資料型別MySql資料型別
- Java 資料型別和 MySql 資料型別對應一覽表JavaMySQL 資料型別
- 1-02:MySQL中的資料型別MySql資料型別
- PHP 操作 mysql blob 資料型別的欄位PHPMySql資料型別
- MYSQL資料庫型別與JAVA型別對應關係MySql資料庫型別Java
- sql學習(mysql)(1)資料型別MySql資料型別
- python 與 Mysql 資料型別轉換PythonMySQL 資料型別
- 《MySQL 基礎篇》七:資料型別MySql資料型別
- MySQL資料型別操作(char與varchar)MySql資料型別
- mysql整數資料型別深入解析MySql資料型別
- MySQL 資料庫的對庫的操作及其資料型別悔鋒MySql資料庫資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 資料型別: 資料型別有哪些?資料型別
- 拋磚系列之-MySQL中的資料型別JSONMySql資料型別JSON
- 建立一個MySQL資料庫中的datetime型別MySql資料庫型別
- mysql資料庫中decimal資料型別比較大小MySql資料庫Decimal資料型別
- 高效能Mysql(第3版)_資料型別的選擇_整數型別MySql資料型別
- MySQL 資料型別分類和選擇MySQL 資料型別