二 MySQL支援的資料型別(MySQL讀書筆記)

2021-09-26 06:59:49 字數 2325 閱讀 6945

1、數值型別

1.1、按照取值範圍和儲存方式不同,分為tinyint smallint mediumint int bigint,如果超出型別範圍的操作,會發生「out of range」錯誤

1.2、整型資料,mysql支援在型別名稱後面的小括號內指定顯示寬度,預設為 int(11),一般配合 zerofill (零填充,即位數不夠的空間使用 0 填滿)使用

1.3、零填充不會對插入的資料有任何影響,還是按照型別的實際精度進行儲存

1.4、插入的整型資料超出寬度限制時,仍然會插入正確的數值而不會受寬度限制影響

1.5、所有的整數型別都有乙個可選屬性unsigned(無符號),如果需要在字段裡面儲存非負數或需要較大的上限值時,可用此選項(取值範圍是正常值的下限取 0,上限值取原值的 2 倍)。乙個列指定了 zerofill ,mysql預設新增 unsigned 屬性

1.6、整數型別還有乙個屬性auto_increment,只用於整數型別,一般從 1 開始,步長為 1 。一張表中最多只能有乙個 auto_increment 列,對於任意 auto_increment 的列應該被定義為 not null,並定義為 primary key | unique 鍵

1.7、小數表示:浮點數(float double),定點數(decimal)在mysql內部以字串形式存放,常用來表示貨幣等高精度的資料);都支援 (m,d) 定義精度(m - 精度,一共顯示幾位數字【整數字+小數字】;d - 標度,小數點後面的位數);mysql儲存時(超出精度)進行四捨五入;float 和 double 不指定精度時,按照實際精度顯示;decimal不指定精度時預設為(10,0),且資料超過了精度和標度值,系統報錯(新版不報錯了??);精度和標度的表示為非標準用法

1.8、bit(m) 型別:用於存放位字段值,m 範圍位 1~64,預設為 1 ,直接使用 select 命令看不到結果,可以使用 bin() | hex() 函式進行讀取。插入 bit 時,首先轉換為二進位制,如果位數允許,成功;如果位數小於實際定義的位數,則插入失敗。

2、日期時間型別date- 年月日;datetime- 年月日時分秒;time- 時分秒;timestamp-與時區有關;不適合存放比較久遠的日期,訪問都會轉換為本地時區進行操作;如果需要經常插入或更新日期為當前系統時間,返回結果顯示為 yyyy-mm-dd hh:mm:ss 格式字串;year- 年(有2|4位格式,預設為4位格式;2位的從5.5.27後不再支援)。每種日期都有乙個範圍,超出範圍,系統會錯誤提示並以零值進行儲存

2.1、datetime & timestamp 比較:timestamp 支援的時間範圍較小;表中第乙個 timestamp 列自動設定為系統時間;timestamp 的插入和查詢受當地時區影響,更能反映實際日期;timestamp 的屬性受 mysql 版本和伺服器 sqlmode 的影響很大

3、字串型別(char varchar binary varbinary blob text enum set 等)

3.1、char 列的長度固定為建立表時宣告的長度(0~255);varchar 列的值為可變長字串(0~65535)。檢索時,char 列刪除了尾部的空格,而 varchar 則保留了空格

3.2、binary & varbinary:包含二進位制字串而不包含非二進位制字串;類似於 char & vahrchar。當儲存 binary 時,在值的最後通過填充 0x00 (零位元組)以達到指定的字段定義長度

3.3、enum 型別:列舉型別,範圍需要通過建立表時通過列舉方式顯式指定(忽略大小寫;都會被轉換為大寫;可通過索引插入【從1開始】;只允許從集合中選取單個值)

4、set:字串物件;乙個可以選取多個成員

create table ss(col set('a','b','c','e','f'));

-- 支援從定義的集合中選取多個值執行插入操作

-- 對於相同的元素只計算一次

insert into ss values('a,b'),('a,e,c');

mysql支援 mysql支援的資料型別

mysql支援的資料型別 一 整型 型別 tinyint 1位元組,取值範圍 128 127,預設長度4 smallint 2位元組,取值範圍 32768 32767,預設長度6 mediumint 3位元組 int 4位元組 2147483648 2147483647 bigint 8位元組 約束...

MySql支援的資料型別

今天總結一下mysql中支援的資料型別 首先從大體上看,mysql支援的型別有如下幾種,數值型別,日期型別,字串型別。位元型別,m代表每個位元位的數量,從1到64,預設值是1 非常小的整數,有符號的取值是 128到127,無符號的取值是 0 255,占用乙個位元組 這個型別跟上面的tinyint 1...

Mysql 支援的資料型別

mysql支援大量的列型別,它可以被分為3類 數字型別 日期和時間型別以及字串 字元 型別。本節首先給出可用型別的乙個概述,並且總結每個列型別的儲存需求,然後提供每個類中的型別性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列型別的附加資訊,例如你能為其指定值的允許格式。由mysql...