;
#####################################################################################################
五、mysql数据类型
支持的数据类型有哪些?
数值类型 字符类型 日期时间类型 枚举型
1、数值类型:整型,浮点型
根据存储数值的范围整型类型分为:
tinyint 1字节 -128~127(有符号) 0~255(无符号)
smallint 2字节 -32768-32767 0~65535
mediumint 3字节
int 4字节
bigint 8字节
//规律:无符号范围为2的n次方-1,n表示位,1字节为8位
根据存储数值的范围浮点型分为:
单精度float(n,m) 4字节
双精度float(n,m) 8字节
//其中n代表总位数
//m代表小数位的位数
create table t1(
pay float(5,2)
);
inserte into t1 values(199.99); //总位数为5位,小数点后2位
注意:
使用unsigned,表示使用无符号数
输入整数时,会自动补全小数位
宽度仅是显示宽度,存数值的大小由类型决定
数值超出范围,报错
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
2、字符类型:
定长:char(字符数)
--》最大长度255
--》不够指定的字符数在右边用空格补齐
--》字符数超出设定,无法写入
变长:varchar(字符数)
--》按照实际大小分配存储空间
--》字符数超出设定,无法写入
大文本类型:text/blob
--》字符数大于65535存储时使用
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
3、日期时间类型:
年 year YYYY 2017
日期 date YYYYMMDD 20171220
时间 time HHMMSS 155145
日期时间
datetime YYYYMMDDHHMMSS
timestamp YYYYMMDDHHMMSS
datetime与timestamp区别?
当未给timestamp字段赋值时,自动以当前系统时间赋值
当未给datetime字段赋值时,默认赋值为null
使用2位数字给year字段赋值的规律?
01~69为2000~2069
70~99为1970~1999
使用时间函数给日期时间类型的字段赋值。
now():当前时间 year():当前时间的年份 month():当前时间的月份
day():当前时间的天 date():当前时间的年月日 time():当前时间的时分秒
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
4、枚举类型:
enum:从给定值集合中取单个值 格式:enum(值1,值2,值N)
set:从给定值集合中取一个或多个值 格式:set(值1,值2,值N)
#########################################################################################
六、约束条件:
null: 允许为空,默认设置
not null: 不允许位空
key: 索引类型
default: 设置默认值,缺省为null
create table t3(
name char(10) not null, //字段名为name,类型为字符类型,宽度为10,设置不能为空
age tinyint unsigned default 23 //字段名为age,类型为微小整数,无符号(不能为负),默认值为23
);
desc t3; //查看表结构
insert into t3(name) values(“dcc”); //插入,仅给name字段赋值
select * from t3; //结果,age字段会取默认值23
####################################################################################
七:修改表结构:
alter table 表名 执行动作;
1、添加新字段:
add 字段 类型(宽度);
add 字段 类型( 宽度) 约束条件;
add 字段 类型( 宽度) 约束条件 first; //插入到第一列
add 字段 类型( 宽度) 约束条件 after 字段名; //插入到指定字段后
2、删除字段:
drop 字段名;
3、修改字段类型:
modify 字段 类型(宽度) 约束条件;
4、修改字段名:
change 原字段 新字段 类型(宽度) 约束条件; //修改时,保持原始的类型(宽度) 约束条件。
修改表名:
alter table 原表名 rename 新表名;
################################################################################################
原文地址:http://blog.51cto.com/13399301/2053021