首页 > 数据库技术 > 详细

数据类型--mysql

时间:2017-09-06 23:40:20      阅读:265      评论:0      收藏:0      [点我收藏+]
1. 数字:
    整型:tinyinit  int  bigint

这里面的tinyinit int bigint,分别指不同的数字宽度,依次从最小到最大
还有int(5)后面括号里的数字,对于存是没有任何差别,而对于取,如果存的数字没有5个宽,
那么前面会加上0以凑齐5个,如:输入123,则输出为00123.但是一般不显示出来
这时候加上zerofill 的话就可以显示出来
create table n3(x int(3) zerofill)
只要数字不足三位,那么就会前面加上0.

小数: float :在位数比较短的情况下不精准 double :在位数比较长的情况下不精准 0.000001230123123123 存成:0.000001230000 decimal:(如果用小数,则用推荐使用decimal) 精准 内部原理是以字符串形式去存
其中decimal,还有小数其他形式是以decimal(10,5),表示总共10位数,小数点后面只能跟5位,超过的会以四舍五入运算.
并且前面不能数字不能超过5位,超过5位就报错.如果小数点不足,那么就会用0加到后面凑齐5位.

2. 字符:
char(10)
存取速度快,占用空间大,简单粗暴.
char(10)==>char(name)==>char(name000000),当位数不够则用0补.
存也存10位,取也是取10位,所以速度快.
varchar(10)
存取速度慢,空间小,省空间.精准

技术分享

varchar在传给别人数据之前,为了精准的取到,会在前面增加一个报头,后期取用的时候,会先取报头,运算过后,在取相应的数量的信息,就像socket的报头一样.

char_length 查看字符的长度,length查看字节的长度,也就是bytes类型..

select char_length(x) from name..

bit类型:

也就是bytes类型,查看byte类型长度,要用到函数,bin()

select  bin(x) from n3.

select hex(x) from n3.

三 日期类型

DATE TIME DATETIME TIMESTAMP YEAR 

作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等

出生时间:显示-年-月-日-时分秒
datetime

年:
year

时间:
time 

年月日
date

格式:insert into n3 values(出生时间 datetime,年 year, 时间 time, 年月日 date);
如果你要显示的现在时间那么:可以用now()
如果要手动添加:如果你有特殊符号的话(2017-09-10)那么就要添加‘‘(引号) 格式:insert into n3 values(出生时间 now(),年 now(), 时间 now(), 年月日 now()); 就是显示现在时间

5:枚举类型和集合类型

枚举--enum:

enum:
create table n1(name enum(sdf,fd));
insert into n1  values(sdf);


枚举类型是指:在一个列表里选择其中的一个元素,当做自己的值.

如果要改变枚举类型,那么你就要删除你用枚举类型创造的值.
1)truncate n1           删除所有枚举创出来的值
2)alter ...........           改变枚举类型

 

集合-set类型

集合set:

集合是指在一个元组里面取一个或多个值.
create table n1 (name set(12,123,456);

insert into n1 values(12,123);

如果要改变改set类型,也要和enum类型一样,把有集合元素内容的东西都删除调,才能改
1)truncate n1;
2)alter ,......


注意:
集合里面,如果你要取里面的2个元素,那么你不能写成(S,b), 要写成(S,b)
也就是一个冒号包括2个元素,里面的元素用逗号分开.

 

6:constraint host_port unique(host,port) 整体意思:约束host_port是唯一的,也就是后面括号里的内容可以
其中一个相同,但是不能2个相等.
create table department3(
id int,
name varchar(20),
comment varchar(100),
constraint pk_name primary key(id); 

这里的pk_name只是一个摆设,没什么用,最后一句话的意思就是把id设成了主键,

7:auto_increment 的用法

create table t1(id int primary key auto_increment, name char(2),
age int)auto_increment=3;
表示默认的初始自增值数值为3,如果不指定id数值,那么默认会从3开始递增.
Ps:这是从开始就设定了


2)
create table t1(id int primary key auto_increment, name char(2),
age int)
如果程序已经开始运行,现在想修改自增值的话,就在后面修改

alter table n1 auto_increment=3;
从现在开始就是从3开始增长.

 

8;foreign key:被关联的表里面的元素,必须是主键,也就是唯一的.

references t1(id) 以t1表的id为参考
on delete cascade 把delete串联
on update cascade 把update串联.










数据类型--mysql

原文:http://www.cnblogs.com/52forjie/p/7487455.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!