您的位置:首页 > 数据库 > MySQL

MySQL数据类型与存储范围

2016-06-29 15:13 603 查看
所谓建表,就是声明列的过程

数据是以文件的形式存放在硬盘

列的类型:

1.整型:

tinyint / smallint /
mediumint / int / bigint

tinyint: 1占据空间:1个字节

     2存储范围:(-128  to  127)

类型字节无符号有符号
tinyint180->255-128->127
smallint216  
mediumint324  
int432  
bigint864  
eg:

mysql> create table class(

    -> id int primary key auto_increment,

    -> name varchar(10),

    -> age tinyint

    -> )charset utf8;

(默认为有符号的int)

tinyint(M) unsigned zerofill 用法

M:宽度,在0填充时才有意义

unsigned:无符号

zerofill:0填充  (0001,M等于4时)

alter table class add age2 tinyint unsigned;

mysql> desc class;

+-------  +---------------------      +------+----- +---------   +----------------       +

| Field   | Type                          | Null | Key | Default  | Extra                   |

+-------  +---------------------      +------+----- +---------   +----------------       +

| id         | int(11)                       | NO   | PRI | NULL    | auto_increment |

| name  | varchar(10)             | YES  |        | NULL    |                               |

| age     | tinyint(4)                   | YES |        | NULL     |                              |

| age2   | tinyint(3) unsigned | YES |        | NULL     |                              |

+-------  +---------------------      +------ +-----+---------   +----------------       +

列可以声明为默认值:

not null default 0;

eg:alter table class add age4 tinyint not null default 0;

2.小数型/浮点型,定点型:

float(M,D)       M:精度,总位数;D:小数位

mysql> create table goods(

    -> name varchar(10) not null default '',

    -> price float(6,2) not null default 0.00

    -> )charset utf8;

mysql> insert into goods

    -> (name,price)

    -> values

    -> ('空调',2888.88);

decimal 更精确,用法一样

3.字符型:

char:定长,char(M),M代表字符数

varchar:变长

mysql> create table stu(

    -> name char(8) not null default '',

    -> waihao varchar(10) not null default ''

    -> )charset utf8;

mysql> insert into stu

    -> (name,waihao)

    -> values

    -> ('zhangsan','saner');

char和varchar的区别:

char,M个字符,如果存的小于M个字符,实占M个字符,0<=M<=255.

vachar,M个字符,如果存的N个字符,小于M,实占N个字符+1,2个字节(标志实存的长度)0<=M<=65536(utf8 22000左右)

char与varchar型选择:

1).空间利用率,

四字成语,char(4)

朋友圈动态,varchar(100)

2)速度:定长速度快些

4.日期时间型:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL