字段类型:
在这里只列举一些常用的字段类型:
-
整数类型:int(Integer):普通大小的整数
-
小数类型:
- float(m,d):单精度浮点数,m表示数字长度,d表示小数位数,例如float(5,2)最大值999.99
- double(m,d):双精度浮点数
-
日期类型:
- date:YYYY-MM-DD 1000-01-01 ~ 9999-12-3
- datetime:YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
- timestamp:YYMM-MM-DD HH:MM:SS 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC
-
文本、二进制类型
- CHAR(M):M为0~255之间的整数,长度不可变,保存数据长度不变的数值,比如比如身份证号(18位)、手机号(11位)、UUID(36位)、MD5(32位);
- VARCHAR(M):M为0~65535之间的整数,长度可变,保存数据长度不一的数值,比如用户名、密码、地址;
- BLOB(通常用于存储视频、音频等):允许长度0~65535字节
- TEXT(用于评论等):允许长度0~65535字节
- LONGTEXT:允许长度0~4294967295字节
约束:
- MySQL数据库通过约束(constraints)防止无效的数据进入到表中,以保护数据的实体完整性。
- 约束分为字段级别约束和表级别约束:
- 字段级约束:只为单个字段添加约束;
- 表级约束:为一个或多个字段添加约束。
- 常见的约束有:
1. unique : 数据(不为Null时)不可以重复,但当数据为Null时,可以重复
(可以为字段级别和表级别约束);
2. not null : 指定字段不能为空,(只能定义为字段级约束);
3. primary key :指定主键,数据不允许重复,也不允许为null;
(可以为字段级别,也可以为表级别约束)
4. foreign key : 指定一个字段或字段组合为一个外键(即外来的主键或唯一键),该键和另一个表的主键或唯一键(MySQL不支持、Oracle支持)建立起一个关系,只能定义为表级约束。
5. check : 指定列值必须满足check中条件,否则无法进行添加或修改;一个字段可以定义多个check约束。
注意:MySQL数据库不支持该约束!
6. default : 设置默认值
7. comment : 设置注释
8. auto-incremenrt:设置表字段自增长,默认从1开始
例子:
create table user_info(
id char(36) primary key comment '主键',
user_name varchar(12) unique comment '用户名’,
password char(32) not null comment '密码',
sex int(1) default 0 comment '性别'
)
截断表:
#截断表 (效果和delete一样)
truncate table user_info;
commit; #(除了MySQL数据库,在其他数据库里需要提交)
# 而delete无需提交(即自动提交)
delete from user_info
截断表和drop的区别:
截断表truncate table 表名
后,只删除表中的数据,但却不删除表;而drop table 表名
后,直接删除表,表中数据也跟着消失。
修改表字段:
#修改表字段:
#删除字段:
alter table user_info drop user_name
#添加字段
alter table user_info add user_name varchar(19)
#修改字段
alter table user_info modify user_name varchar(18)
其中添加字段后面可以加after 字段名
,意味添加到某个字段名后面。
重命名表:
rename table Old_name to New_name