点击蓝色文字关注"程序员Bob"吧!

生活需要热情,更需要自律,积极和勤奋,否则,生活只是存在日历上的天数。


-- 创建集合表create table my_set(hobby set ('篮球','足球','乒乓球','排球')-- 集合中每一个元素都是对应一个二进制位,被选中为1,没有则为0,最后一步反过来)charset utf8;-- 插入数据insert into my_set values ('足球,乒乓球');insert into my_set values (3);-- 代表乒乓球:篮球+足球-- 查看集合数据select hobby + 0, hobby from my_set;
值得注意,在查看数据时,我们会看到一些数字,如下:在MySQL中规定:任何一条记录最长不能超过65535个字节(varchar最大为65536个字符,达不到理论值)。
那么varchar实际存储长度能达到多少呢?
实际存储长度主要看字符集编码:utf8和GBK下的varchar的实际顶配。
当我们输入相关语句查看时:-- 求varchar在utf8和GBK下的实际最大值create table my_utf8(name varchar(21844))charset utf8;-- 填入65535时报错提示最大为21845,填入也为错:21845*3+2>65535.正确的为21844*3+2create table my_gbk(name varchar(32766))charset gbk;-- 同理,报错提示最大为32767,填入也为错32767*2+2>65535,正确的为32766
create table my_utf82(age tinyint not null ,name varchar(21844)not null)charset utf8;create table my_gbk2(age tinyint not null, -- 一个字节 name varchar(32766)not null )charset gbk;
执行结果如下:-- text 占用10个字节create table my_text(name varchar(21841) not null,content text not null -- not null 用于判断text是否占用为10个字节)charset utf8;
执行结果:
-- 创建班级表(数据!)create table my_class(name varchar(20) not null,room varchar(20) null -- 允许为空;不写默认允许为空)charset utf8;
然后查看该表中数据(no代表不能为空):-- 创建表create table my_teacher(name varchar(20) not null comment '姓名',money decimal (10,2) not null comment '工资')charset utf8;
执行如下:-- 默认值create table my_default(name varchar(20) not null,age tinyint unsigned default 0,gender enum('男','女','保密') default '男')charset utf8;insert into my_default (name) values ('小明');insert into my_default values ('小明1号',18,default);
执行结果如下:往期推荐:
博客更新:Hexo更新到5.2.0版本血泪踩坑史
2020-11-06

《人生十讲》书评:不完满才是人生...
2020-11-02

趣味C语言(C语言游戏滚动的“o”)
2020-11-04

为你,千千万万遍.
关注程序员Bob公众号,与你一起终生学习
