美文网首页
mysql 学习日志

mysql 学习日志

作者: coderhu | 来源:发表于2016-12-07 00:53 被阅读0次

    !PART ONE:基础部分


    1 mysql 的数据类型

    1.1 numeric

    BIT[(M)] 

    bit 类型,M (0~64)指明长度,缺省时默认为1

    TINYINT[(M)] [UNSIGNED] [ZEROFILL]

    微小整形(8bit),有符号取值范围:-128~127,无符号范围:0~255

    BOOL,BOOLEAN 

    语义上等价于 TINYINT(1),值为0等价于‘false’,非0等价于'true',mysql 中定义了两常量,FALSE=0, TRUE=1

    SMALLINT[(M)] [UNSIGNED] [ZEROFILL]  

    小整形(16bit),有符号范围:-32768~32767,无符号的范围:0~65535

    MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 中整形(24 bit),有符号 -2147483648~2147483647, 无符号范围:0~4294967295

    INT/INTEGER[(M)] [UNSIGNED] [ZEROFILL]

    整形(32bit),有符号:-2147483648~2147483647,无符号范围:0~4294967295

    BIGINT[(M)] [UNSIGNED] [ZEROFILL] 

    大整形(64bit),有符号-9223372036854775808~ 9223372036854775807. 无符号:0~18446744073709551615

    SERIAL

    等价于BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE

    DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] 

    精度值(存储的形式为字符串吧),M显示的总的数字数(最大64,默认10),D显示的精度(最大30,默认0)

    FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

     单精度浮点数(依赖硬件或操作系统的实现),取值范围:-3.402823466E +38 ~1.175494351E-38,0, 1.175494351E~38to3.402823466E+38

    DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] 

    双精度浮点数(依赖硬件或操作系统的实现),取值:-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代码了字符串的最大字符数(0~255),若实际存储的字符串的长度小于定义的长度,将会从字符串的右边开始填充space到字符串的长度等于定义时的长度。当字符串回收时,填充的字符串将会被回收,除非开启了PAD_-CHAR_TO_FULL_LENGTH SQL mode,将不会被回收。

    [NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE  collation_name]

    变长字符串,M(0~65535)字符串的最大字符数,存储时将根据字符串的长度字段的分配字节,一般会多出1~2个字节,而且当字符串回收时,这些字符串是不会被回收的,所有VARCHAR类型会产生数据碎片。

    BINARY(M)

    和CHAR类型差不多,但只能存储2进制bit

    VARBINARY(M)

    和VARCHAR类型差不多,但只能存储2进制bit

    TINYBLOB

    存储字节数据,最多可存储255个字节

    TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

    最多可存储255个字符,于字符的编码无关,按字符数进行计算(CHAR 和 VARCHAR 都是按字节)

    BLOB[(M)]

    最多可存储65535个字节

    TEXT[(M)] [CHARACTER SETcharset_name] [COLLATEcollation_name]

    最多可存储65535个字节的字符串

    MEDIUMBLOB

    最多可存储16,777,215 (224− 1) bytes

    MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

    最多可存储16,777,215 (224− 1) 字节的字符串

    LONGBLOB

    最多可存储4,294,967,295 or 4GB (232− 1) bytes

    LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

    最多可存储4,294,967,295 or 4GB (232− 1) 字节的字符串

    ENUM('value1','value2',...) [CHARACTER SET charset_name] [COLLATE  collation_name]

    最多有65535个不同的枚举值,存储的值只能是其中的一个枚举值

    SET('value1','value2',...) [CHARACTER SET charset_name] [COLLATE  collation_name]

    集合中最大的不同的元素的个数为64个,存储的值可以是这些元素中的0或多个值

    1.3 CHAR ,VARCHAR, TEXT的对比

    CHAR 和 VACHAR是按字符数进行计算长度的,TEXT是按字节数进行计算长度的

    CHAR和VARCHAR的对比,如图所示:

    CHAR 和VARCHAR存储对比

    CHAR 不会产出碎片,但VARCHAR会产生碎片(varchar默认会多分配1~2个字节表明实际存储的长度,而字符串回收时多分配的数据是不会被回收的;CHAR中填充的字符串在字符串回收时会一起被回收掉 )

    1.4 datetime

    DATE

    存储的日期格式'YYYY-MM-DD',允许的范围:'1000-01-01' ~ '9999-12-31'

    DATETIME[(fsp)]

    存储日期的日期格式:'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'

    TIMESTAMP[(fsp)]

    存储日期的日期格式:'YYYY-MM-DD HH:MM:SS[.fraction]'',范围1970-01-01 00:00:01.000000' to'2038-01-19 03:14:07.999999'(UTC)

    TIME[(fsp)]

    时间格式:HH:MM:SS[.fraction],存储范围:'-838:59:59.000000' ~ '838:59:59.000000'

    YEAR[(4)]

    格式 YYYY,范围:1901~2155和0000

    2 mysql SQL语句

    更新中......

    !PART TWO:中级部分


    1 mysql 权限相关

    2 mysql 查询优化

    3 SQL mode

    !part THREE: 高级部分


    1 mysql 查询解析过程

    2 mysql 集群

    3 mysql 分表

    相关文章

      网友评论

          本文标题:mysql 学习日志

          本文链接:https://www.haomeiwen.com/subject/dizrmttx.html