国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySql的數據類型

2024-07-24 12:59:49
字體:
來源:轉載
供稿:網友

在創建數據表的時候,定義字段值的時候,最糾結的莫過于選擇哪個數據類型,char型還是varchar類型?確定類型后,又要糾結于給定多少長度呢?是(4)還是(50)? 存在這種問題莫過于對數據類型的一些特性還不了解,不能根據自己的需要選擇合適的數據類型和長度,這樣也能夠優化查詢,提高效率。

數值類型

INTEGER、SMALLINT、DECIMAL、NUMERICAL、BIT、INT等

常用:int(4) 注意括號中的4和能表示的數值大小沒有關系,因為int這個類型就決定了它可以存儲的數值大小。4只是表示數值的位數。 默認情況下是int(11)。

浮點型:float、double 也可以表示為float(M,D)、double(M,D)

定點型:decimal、numberic 也可以表示為decimal(M,D); 其中M表示總的數值位數(整數部分+小數部分), D表示小數部分。例如: decimal(8, 2) 可以表示:999999.99

日期類型

DATE: 只表示年月日,不包含時分秒 ,格式為YYYY-MM-DD

TIME: 只表示時分秒,格式為 HH:MM:SS

DATETIME: 表示一個完整的時間,格式為 YYYY-MM-DD HH:MM:SS

TIMESTAMP : 常用的時間戳,表示格式為00000000000000,如果需要經常計算時間或者返回當前時間,可以使用此類型。

YEAR: 只表示年份,格式為YYYY。

字符串類型

char 和 varchar 比較:

都表示較短的字符串,主要區別在于char是固定長度的,范圍在0-255, varchar是可變長度的,范圍在0-65535。 char(50),其中50表示50個字節數。比方說定義char(10)和varchar(10),插入“csdn”,那么char后面會補上6個空格,但是varchar會立馬變成4。 由于char是固定長度的,方便程序的查找和存儲,所以char類型的查詢更快,主要是以空間換時間。 對于char和varchar的選擇,根據數據量大小,以及對查詢效率的要求來進行選擇。一般如果長度變化不大,且查詢效率要求高的,一般使用char。但是MySQL的升級,對varchar的效率逐漸在優化,如果數據量很大的情況下,使用varchar至少可以減少存儲空間,較少讀取數據時的磁盤IO次數。

其他數據類型

enum: 顧名思義枚舉類型。最多65535個成員。

舉例:create table t (gender enum(‘M’,’F’)); 其中表示gender列是枚舉類型,范圍是M或者F。 在插入記錄的時候,只能選擇M或者F中一個,不區分大小寫,在數據庫中會統一轉成大寫,如果插入范圍之外的值,會拋出異常。可以在表中插入NULL,也可以插入枚舉值對應的元素順序,比方說第一個枚舉值對應1,如此下去。

SET: 也是一個集合。有多個元素,每次可以插入所有元素的若干子集。

TEXT: 只能保存字符數據(character),比方說:一篇文章或者日記等。

BLOB: 只能保存字節數據(byte)(二進制流),比方說圖片。

TEXT和BLOB類型的列創建索引,不能直接使用整列作為索引,因為這樣會讓索引占據很大的內存。對于TEXT和BLOB列都是使用前綴索引,也就是列的前N個字節作為所以。 create index indexalias on tablename(column(N));

注意:使用like查詢時候,%不要放置最前,這樣索引不會被使用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郁南县| 沁源县| 门头沟区| 视频| 商丘市| 灵石县| 高平市| 广安市| 岳普湖县| 富宁县| 碌曲县| 浦江县| 望都县| 三穗县| 宜兴市| 蒲城县| 上虞市| 宜宾县| 江华| 浮山县| 横峰县| 珠海市| 大邑县| 泗水县| 邵阳县| 绥江县| 济南市| 阳朔县| 高邮市| 普安县| 和龙市| 高阳县| 晋江市| 天峻县| 南陵县| 临海市| 峨边| 松滋市| 左权县| 波密县| 西峡县|