MySQL基础之数据类型

我们都知道每种编程语言和数据都有自己的一套数据类型,当然MySQL也不例外,个人感觉MySQL的数据类型优点类似C++,那么本篇将带你回顾一下熟悉的MySQL常见的数据类型

  1. MySQL的数据类型: 
  2.  
  3. 数据类型有下列特性: 
  4. 1.  代表了什么类型的值 
  5. 2.  该类型的值占据的空间大小 
  6. 3.  该类型的值是否可变化 
  7. 4.  决定了mysql对该类型的值如何进行排序和比较 
  8. 5.  决定了该类型的值是否支持索引 
  9. MySQL的数据类型有如下几类: 
  10. 字符型: 
  11.     char  varchar(最多都能使用255个字符) 
  12.  char 固定长度 ----------------------- 
  13. 在实现查询的时候效率较高 
  14.  varchar可变长度,存储的本身的长度加1(结束符) 
  15. 在实现查询的时候效率较低 
  16.     binary  varbinary(以二进制的格式存储字符) 
  17. char与varchar的区别在于 
  18. char 不区分字母的大小写,有字符集和排序规则 
  19. varchar区分字母的大小写,而且没有字符集和排序规则 
  20.     text(文本对象)---MySQL保存的数据的指针而非数据(数据保存在表外的位置) 
  21. TINTTEXT ---长度2*8个字节 
  22. TEXT---------2*16次方个字节 
  23. MEDIUMTEXT-2*24次方个字节 
  24. LONGTEXT ---- 2*32次方个字节(大约4G) 
  25.     Blob 
  26. BLOB 
  27. MEDIUMBLOB 
  28.  LONGBLOB 
  29.     ENUM,SET  
  30. 例如: 
  31. ENUM(’xiaohua’,’xiaoming’,….) ---最多可以列举65535个,ENUM中保存的数据非字符或者字符串本身 
  32. SET(‘a’,’o,’e’,…..): SET 中保存的是aoe的任意组合 

  1. 常见的字符型的修饰符: 
  2. NOT NULL ,NULL, DEFAULT ‘value’ , . CHARACTER SET ‘’(指定默认的字符集) character  set 
  3. COLLATION ‘’(指定默认的排序规则), coliation 
  4. 日期时间型 
  5.     Date 
  6. 格式:CCYY—MM--DD 
  7.     Time 
  8. 格式:hh:mm:ss 
  9.     Datetime 
  10. 格式:CCYY—MM—DD hh:mm:ss 
  11.     timestamp 
  12. 格式:CCYY—MM—DD hh:mm:ss(从1970年1月1日0分0秒到目前经过的秒数) 
  13.     Year(2|4) 
  14.  
  15. 数值型 
  16. 精确值 
  17. 整型 
  18. TINYINT - 1个字节范围(-128—127,0-255) 
  19.   SMALLINT2个字节范围(-32768—32767,0-65535) 
  20.    MEDIUMINT3个字节 
  21.   INT ---4个字节 
  22. LONGINT-8个字节 
  23.     十进制 
  24. DECIMAL(g,f)  g:整个数字的位数   f:float小数点后面精确的位置 
  25. 例如:DECIMAL(5,2)  123.34 
  26. 近似值 
  27.     浮点型(单精度,双精度) 
  28. 例如 12.56 在计算机中存储中存储的是数字(1256)和科学计数法的指数,而非小数点,也非整个数字 
  29. float(g,f) :使用4个字节存储数据 
  30. Double(g,f):使用8个字节存储数据 
  31. 注:对于MySQl而言没有真正的布尔型而是使用TINYINT(1)表示 
  32. 数值型修饰符: 
  33. NOT NULL ,  NULL ,  DEFAULT,  AUTO_INCREMENT, UNSGINED,SGINED ,PRIMARY KEY(主键) , UNIQUE(唯一键) 

  1. 两种不同方式的复制表的对比: 
  2. 第一种CREATE  TABLE  tb2  LIKE  tb1(仅复制表结构) 

  1. CREATE  TABLE  tb3  SELECT * FROM  tb1(复制表数据而非表结构) 

  1. 复制结果对比 

  1. 从结果可以看出 
  2. 使用LIKE 关键字的形式我们进复制了原来表的表结构(没有复制数据), 
  3. 使用SELECT * FROM  old_name的形式不复制表结构,仅复制表的数据部