MySQL基础之数据类型
我们都知道每种编程语言和数据都有自己的一套数据类型,当然MySQL也不例外,个人感觉MySQL的数据类型优点类似C++,那么本篇将带你回顾一下熟悉的MySQL常见的数据类型
- MySQL的数据类型:
- 数据类型有下列特性:
- 1. 代表了什么类型的值
- 2. 该类型的值占据的空间大小
- 3. 该类型的值是否可变化
- 4. 决定了mysql对该类型的值如何进行排序和比较
- 5. 决定了该类型的值是否支持索引
- MySQL的数据类型有如下几类:
- 字符型:
- char varchar(最多都能使用255个字符)
- char 固定长度 -----------------------
- 在实现查询的时候效率较高
- varchar可变长度,存储的本身的长度加1(结束符)
- 在实现查询的时候效率较低
- binary varbinary(以二进制的格式存储字符)
- char与varchar的区别在于
- char 不区分字母的大小写,有字符集和排序规则
- varchar区分字母的大小写,而且没有字符集和排序规则
- text(文本对象)---MySQL保存的数据的指针而非数据(数据保存在表外的位置)
- TINTTEXT ---长度2*8个字节
- TEXT---------2*16次方个字节
- MEDIUMTEXT-2*24次方个字节
- LONGTEXT ---- 2*32次方个字节(大约4G)
- Blob
- BLOB
- MEDIUMBLOB
- LONGBLOB
- ENUM,SET
- 例如:
- ENUM(’xiaohua’,’xiaoming’,….) ---最多可以列举65535个,ENUM中保存的数据非字符或者字符串本身
- SET(‘a’,’o,’e’,…..): SET 中保存的是aoe的任意组合

- 常见的字符型的修饰符:
- NOT NULL ,NULL, DEFAULT ‘value’ , . CHARACTER SET ‘’(指定默认的字符集) character set
- COLLATION ‘’(指定默认的排序规则), coliation
- 日期时间型
- Date
- 格式:CCYY—MM--DD
- Time
- 格式:hh:mm:ss
- Datetime
- 格式:CCYY—MM—DD hh:mm:ss
- timestamp
- 格式:CCYY—MM—DD hh:mm:ss(从1970年1月1日0分0秒到目前经过的秒数)
- Year(2|4)
- 数值型
- 精确值
- 整型
- TINYINT - 1个字节范围(-128—127,0-255)
- SMALLINT2个字节范围(-32768—32767,0-65535)
- MEDIUMINT3个字节
- INT ---4个字节
- LONGINT-8个字节
- 十进制
- DECIMAL(g,f) g:整个数字的位数 f:float小数点后面精确的位置
- 例如:DECIMAL(5,2) 123.34
- 近似值
- 浮点型(单精度,双精度)
- 例如 12.56 在计算机中存储中存储的是数字(1256)和科学计数法的指数,而非小数点,也非整个数字
- float(g,f) :使用4个字节存储数据
- Double(g,f):使用8个字节存储数据
- 注:对于MySQl而言没有真正的布尔型而是使用TINYINT(1)表示
- 数值型修饰符:
- NOT NULL , NULL , DEFAULT, AUTO_INCREMENT, UNSGINED,SGINED ,PRIMARY KEY(主键) , UNIQUE(唯一键)
- 两种不同方式的复制表的对比:
- 第一种CREATE TABLE tb2 LIKE tb1(仅复制表结构)

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

- 复制结果对比

- 从结果可以看出
- 使用LIKE 关键字的形式我们进复制了原来表的表结构(没有复制数据),
- 使用SELECT * FROM old_name的形式不复制表结构,仅复制表的数据部
转载于:https://blog.51cto.com/haicang/965177