mysql数据类型
数值类型:身高,体重,成绩工资,年龄 unsigned
整数数值类型:微小整型,小整型,中整型,大整型,极大整型
浮点类型:单精度,双精度
字符类型:姓名 家庭住址 籍贯 公司 部门名称
固定长度,变长,大文本类型
日期时间类型:入职时间 注册时间 上课时间
年 日期 时间 日期时间
枚举类型:兴趣爱好 性别 专业
单选 多选
整数型
-使用UNSIGNEN修饰,对应的字段只保存正数
create table db.t4 (pay float(7.2),age tinyint unsigned);
字符类型:姓名 家庭住址 籍贯 公司 部门名称
固长 char (255) //不指定为1
变长 varchar (65532) //必须指定宽度
大文本类型 blob text //宽度无限制
char与varchar类型的区别
固值
数值类型宽度与字符类型宽度的区别
数值类型的显示宽度,不能控制给字段赋值的大小,大小由类型决定。
Create table db.t1(name char(3), pay int(3));
Zerofill //默认0补位
默认显示宽度11位
create table db.t1(name char(10),email varchar(30),pay float(7,2),age tinyint unsigned);
insert into db.t1 values(‘xiaoren‘,‘[email protected]‘,50000.23,20);
日期时间类型:入职时间 注册时间 上课时间
年: year YYYY 2018
日期:date YYYYMMDD 20180117
时间:time HHMMSS 172358
日期时间:datetime/timestamp
create table db.t1(
name char(10),
Youstar year,
Upclass time,
Birthday date,
Party datetime
);
使用时间函数获取的时间给字段赋值
select now(); //查看当前系统年份日期时间
select date(now()); //查看当前系统日期
select year(now()); //查看当前系统年份
select time(now()); //查看当前系统时间
使用2位数给year类型的字段赋值,遵循如下规律: 01~69:20开头70~99:19开头
DATETIME与TIMESTAMP的区别:
DATETIME 不赋值则为空
TIMESTAMP不赋值会自动获取系统时间
枚举类型
字段的只能在指定的范围内选择
字段名 enmu(值1,值2,值N) 单选 //可用数字表示
字段名 set(值1,值2,值N) 多选
create table qw.q1( name char(10), sex enum(‘boy‘,‘girl‘), likes set(‘music‘,‘game‘,‘file‘,‘book‘) );
insert into qw.q1 values(‘tom‘,2,’book’);
字段约束条件
作用:限制任何给字段赋值
包括:是否允许为空(null) 键值(key) 默认值(default) 额外设置(Extra)
空值:NULL或null
修改表结构
alter table 库.表 执行动作:
添加新字段:
add 字段名 类型(宽度) 约束条件
add 字段名 类型(宽度) 约束条件 first; //添加到表记录前面
add 字段名 类型(宽度) 约束条件 after 字段名; //放在指定字段后
add 字段名 类型(宽度),add 字段名 类型(宽度)
删除表字段:
drop 字段名;
drop 字段名,drop 字段名;
> alter table 表名 drop 字段名;
修改字段类型(修改的类型与字段储存的数据冲突,)
modify 字段名 类型(宽度) 约束条件;
alter table studb.student modify name varchar(10) not null;
修改字段名
change 原字段名 新字段名
修改表名
alter table 原表名 rename 新表名
alter table student modify class char(7) after name;
alter table student add likes set(‘book‘,‘film‘,‘game‘,‘music‘) not null default ‘game,film‘;
alter table student modify likes set(‘book‘,‘film‘,‘game‘,‘music‘) after age;