mysql中的数据类型和表操作MYSQL】
一. 表结构操作
上次的博客讲了库操作,接下来肯定就是表操作,讲到数据表了
那下来的数据表中的各种类型肯定也不能少了。
但是这里我们先讲数据表的操作,表中数据的类型就先用着,之后会挑重要的表中数据进行讲解。
这里要进行表操作的前提:
要选中要操作的数据库。
use test;
1.1创建及删除表结构
i. 创建表
基础格式是这样
create table table_name(
fieldname1 datatype commment 文字说明,
fieldname2 datatype commment 文字说明,,
fieldname3 datatype commment 文字说明,,
)
ii. 查看表结构
这里我们创建完表以后可以进行查看一下。
desc 表名
iii. 删除表
drop table 表名
1.2 修改表结构
i. 修改表名
alter table tablename1 rename to(可省略) tablename2;
这里我们能看到修改成功了。
ii. 添加新字段
alter table table_name add new_field varchar(128) after field;
// 需要添加的表 新字段名 类型 指定位置
iii. 修改字段中的属性
alter table user modify name varchar(60);
//注意这里是直接将新属性直接覆盖原属性
这里能看到覆盖成功了。
iiii. 删除字段
alter table user drop field_name;
这里能发现删除成功了。
二. 表中类型
2.1 int类型
int类型
就是整形类型。
这里实际上有五种类型的整形类型
整形类型间的区别只是存储的范围不一样。
这里的无符号就是以前C语言学过的unsigned
在定义整形类型的时候可以带上unsigned选项。
这里要注意:
mysql中的在特定类型中插入不合法数据(包括越界)都是会报错的
这里用来演示一下:
这里有一个unsigned int类型
这里能发现超出范围的数据都是不允许被插入的。
2.2 bit类型
bit类型
位类型,范围是0-64位,默认是一位
bit(M)
这里可以试着来用一下
这里我们插入98
能发现bit类型,显示的是对应的ascii码值
2.3 浮点类型
i. float类型
浮点类型:
float(4,2) [unsigned]
//第一位表示一共是4位,后面一个数代表精度部分是两位
所以如果是float(4,2);
那么插入数据时:
100.00:不行,因为一共是五位
100.0:也不行,因为精度是2,自动会补足后面的0,补足精度后,又变成5位了
10.123:是可以的,mysql会自己四舍五入。
float(4,2) unsigned
相对于signed只是砍掉了负数部分,其他范围之类的没有发生变化
ii. decimal类型
相比于float有更高的精度
这里我们可以来测试一下
这里可以发现发生了变化。
float类型,数据库系统自己对其进行了四舍五入的处理。
而decimal则没有发生变化
float的精度大约在7位。
2.4 字符串类型
i. char
char(L) 固定长度字符串
存储的长度不能超过L
L最长不超过255
ii. varchar
varchar(L) 可变长度字符串
和char的区别:
varchar是用多少开多少,char是开多少用多少
varchar有1-3个字节用来记录数据大小,从而来实现记录数据本身的现在大小
这样就实现了可以进行扩展。
2.5 日期和时间类型
i. date
这个就是日期类
存储的格式为:
‘2000-10-01’
更新:
update t11 set1 t1=1999-01-01
ii. date datetime
这个类型相比于data,就相当于更详细的日期数据。
存储的格式为:
'2000-10-01 12:12:12'
iii. timestamp
这个数据类型是时间戳
这个不用用户自己进行更新
因为当用户对数据进行修改的时候,该数据的时间戳类型会自动更新
这里就来演示一下三种日期类型的使用。
这里能发现t3时间戳类型自己进行了更新。
2.6 枚举类类型
这里创建了一个两种枚举类型的数据库,便于测试
i. enum
enum就两个值(可以说是单向枚举):
比如说Y/N,男和女等。
这里可以用下标进行插入
set
set不同于enum,是多个选项。
这里要注意:
set也可以用数字进行插入,但是这个数字不代表下标
如果是1
则代表001(因为这里有三个set)1的位置代表有对应位置的爱好
这里能看到插入的是我们对应的第一个羽毛球
所以如果是7,111(五个set)输入的是三个爱好