!PART ONE:基礎(chǔ)部分
1 mysql 的數(shù)據(jù)類型
1.1 numeric
bit 類型,M (0~64)指明長(zhǎng)度凰锡,缺省時(shí)默認(rèn)為1
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
微小整形(8bit)未舟,有符號(hào)取值范圍:-128~127,無符號(hào)范圍:0~255
語義上等價(jià)于 TINYINT(1),值為0等價(jià)于‘false’,非0等價(jià)于'true',mysql 中定義了兩常量掂为,F(xiàn)ALSE=0, TRUE=1
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]??
小整形(16bit)裕膀,有符號(hào)范圍:-32768~32767,無符號(hào)的范圍:0~65535
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 中整形(24 bit),有符號(hào) -2147483648~2147483647勇哗, 無符號(hào)范圍:0~4294967295
INT/INTEGER[(M)] [UNSIGNED] [ZEROFILL]
整形(32bit),有符號(hào):-2147483648~2147483647昼扛,無符號(hào)范圍:0~4294967295
BIGINT[(M)] [UNSIGNED] [ZEROFILL]?
大整形(64bit),有符號(hào)-9223372036854775808~ 9223372036854775807. 無符號(hào):0~18446744073709551615
SERIAL
等價(jià)于BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]?
精度值(存儲(chǔ)的形式為字符串吧),M顯示的總的數(shù)字?jǐn)?shù)(最大64,默認(rèn)10),D顯示的精度(最大30欲诺,默認(rèn)0)
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
?單精度浮點(diǎn)數(shù)(依賴硬件或操作系統(tǒng)的實(shí)現(xiàn))抄谐,取值范圍:-3.402823466E +38 ~1.175494351E-38,0, 1.175494351E~38to3.402823466E+38
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]?
雙精度浮點(diǎn)數(shù)(依賴硬件或操作系統(tǒng)的實(shí)現(xiàn)),取值:-1.7976931348623157E+308to-2.2250738585072014E-308,0, 2.2250738585072014E-308 1.7976931348623157 E+308
1.2 character
[NATIONAL] CHAR[(M)] [CHARACTER SET?charset_name] [COLLATE ?collation_name]
M代碼了字符串的最大字符數(shù)(0~255)扰法,若實(shí)際存儲(chǔ)的字符串的長(zhǎng)度小于定義的長(zhǎng)度蛹含,將會(huì)從字符串的右邊開始填充space到字符串的長(zhǎng)度等于定義時(shí)的長(zhǎng)度。當(dāng)字符串回收時(shí)塞颁,填充的字符串將會(huì)被回收浦箱,除非開啟了PAD_-CHAR_TO_FULL_LENGTH?SQL mode卧斟,將不會(huì)被回收。
[NATIONAL] VARCHAR(M) [CHARACTER SET?charset_name] [COLLATE ?collation_name]
變長(zhǎng)字符串憎茂,M(0~65535)字符串的最大字符數(shù),存儲(chǔ)時(shí)將根據(jù)字符串的長(zhǎng)度字段的分配字節(jié)珍语,一般會(huì)多出1~2個(gè)字節(jié),而且當(dāng)字符串回收時(shí)竖幔,這些字符串是不會(huì)被回收的板乙,所有VARCHAR類型會(huì)產(chǎn)生數(shù)據(jù)碎片。
BINARY(M)
和CHAR類型差不多拳氢,但只能存儲(chǔ)2進(jìn)制bit
和VARCHAR類型差不多募逞,但只能存儲(chǔ)2進(jìn)制bit
存儲(chǔ)字節(jié)數(shù)據(jù),最多可存儲(chǔ)255個(gè)字節(jié)
TINYTEXT [CHARACTER SET?charset_name] [COLLATE?collation_name]
最多可存儲(chǔ)255個(gè)字符馋评,于字符的編碼無關(guān)放接,按字符數(shù)進(jìn)行計(jì)算(CHAR 和 VARCHAR 都是按字節(jié))
最多可存儲(chǔ)65535個(gè)字節(jié)
TEXT[(M)] [CHARACTER SETcharset_name] [COLLATEcollation_name]
最多可存儲(chǔ)65535個(gè)字節(jié)的字符串
最多可存儲(chǔ)16,777,215 (224? 1) bytes
MEDIUMTEXT [CHARACTER SET?charset_name] [COLLATE?collation_name]
最多可存儲(chǔ)16,777,215 (224? 1) 字節(jié)的字符串
最多可存儲(chǔ)4,294,967,295 or 4GB (232? 1) bytes
LONGTEXT [CHARACTER SET?charset_name] [COLLATE?collation_name]
最多可存儲(chǔ)4,294,967,295 or 4GB (232? 1) 字節(jié)的字符串
ENUM('value1','value2',...) [CHARACTER SET?charset_name] [COLLATE ?collation_name]
最多有65535個(gè)不同的枚舉值,存儲(chǔ)的值只能是其中的一個(gè)枚舉值
SET('value1','value2',...) [CHARACTER SET?charset_name] [COLLATE ?collation_name]
集合中最大的不同的元素的個(gè)數(shù)為64個(gè)留特,存儲(chǔ)的值可以是這些元素中的0或多個(gè)值
1.3 CHAR 纠脾,VARCHAR, TEXT的對(duì)比
CHAR 和 VACHAR是按字符數(shù)進(jìn)行計(jì)算長(zhǎng)度的蜕青,TEXT是按字節(jié)數(shù)進(jìn)行計(jì)算長(zhǎng)度的
CHAR和VARCHAR的對(duì)比苟蹈,如圖所示:
CHAR 不會(huì)產(chǎn)出碎片,但VARCHAR會(huì)產(chǎn)生碎片(varchar默認(rèn)會(huì)多分配1~2個(gè)字節(jié)表明實(shí)際存儲(chǔ)的長(zhǎng)度右核,而字符串回收時(shí)多分配的數(shù)據(jù)是不會(huì)被回收的慧脱;CHAR中填充的字符串在字符串回收時(shí)會(huì)一起被回收掉?)
1.4 datetime
存儲(chǔ)的日期格式'YYYY-MM-DD',允許的范圍:'1000-01-01' ~ '9999-12-31'
存儲(chǔ)日期的日期格式:'YYYY-MM-DD HH:MM:SS[.fraction]'贺喝, fsp(0~6)代表給出的精度菱鸥,允許的范圍:'1000-01-01 00:00:00.000000'to'9999-12-31 23:59:59.999999'
存儲(chǔ)日期的日期格式:'YYYY-MM-DD HH:MM:SS[.fraction]'',范圍1970-01-01 00:00:01.000000' to'2038-01-19 03:14:07.999999'(UTC)
時(shí)間格式:HH:MM:SS[.fraction]躏鱼,存儲(chǔ)范圍:'-838:59:59.000000' ~ '838:59:59.000000'
格式 YYYY氮采,范圍:1901~2155和0000
2 mysql SQL語句
更新中......
!PART TWO:中級(jí)部分
1 mysql 權(quán)限相關(guān)
2 mysql 查詢優(yōu)化
3 SQL mode
挠他!part THREE: 高級(jí)部分
1 mysql 查詢解析過程
2 mysql 集群
3 mysql 分表