数据库知识点整理(2)之字符类型和普通索引

字符类型:

大致分“整数”,“浮点数”,“字符串” ,“日期”。

1.整数

int,int(10),10表示数字的位数,但是好像没啥用,存的数字位数超过10位,可以显示,不超过10位的,实际数字前面补0(实际0不现实)如果字段的数据类型是int,但是给个字符数,如果字符串是纯数字,会自动转为int。

占据4个字节,多了补0

2.浮点型

float

3.字符串

char()  ,varchar() ,text, longtext

  char与varchar后面要加上位数,都可以储存字符串,但是,同等条件下,char(10)和varchar(10)同一字符串,char更快速,但浪费空间,varchar慢,但节省空间,char(10)储存3个字符,那么剩下的7位空间浪费了,但是varchar实际的位数是多少,那么实际储存为实际长度+1。

  但是char与varchar都不能超过自身限定的位数,限定10位,给了15位,那么后面5位不储存,最大255字节。

  text :最大存65535个字节,实际存储为实际长度+2,

  lngtext:最大存42亿个字节,实际存储为实际长度+4,

4.日期

select+date/datetime/time/year+(日期)

date:存年月日, 需3个字节。

year:存年,需1个字节。

time:存时分秒,需3个字节。

datetime:存年月日时分秒,需8个字节。

建议日期存int。

表字段属性

1.unsigned    //无符号,全为正数

2.zerofill //零填充,不够补零 如int(3)

3.auto_increment //自增

4.null //允许为null

5.not null//不允许为null

6.default //默认值

数据库知识点整理(2)之字符类型和普通索引_第1张图片

数据库知识点整理(2)之字符类型和普通索引_第2张图片

 

索引

MySQL索引有很多,我只说说最常用的普通索引

创建表的时候建立索引

create table ceshi(    //创建一个名字为ceshi的table表

name1 type1,             //属性的名字为name1 类型为type1 如  id int

name2 type2,

name3 type3 ,

index index_name (name1) //建立名为 index_name,字段为name1的索引

);

在已存在的表上加索引

create index index_name on ceshi (name1);//假如上面ceshi表没有索引 ,那么在ceshi表中加入一个名字为index_name ,字段为name1的索引。

删除索引

drop index index_name (name1) on ceshi;

你可能感兴趣的:(mysql)