MySQL数据类型与存储范围

来源:互联网 发布:网络安全法解读 编辑:程序博客网 时间:2024/04/29 06:23


所谓建表,就是声明列的过程

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


列的类型:

1.整型:

tinyint / smallint /mediumint / int / bigint

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

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

类型字节位无符号有符号tinyint180->255-128->127smallint216  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.日期时间型:



0 0
原创粉丝点击