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