5.MySQL数据类型

前期准备

一.数据类型分类

二.数值类型

2.1创建字段(以tinyint为例):

2.2插入数据

1.tinyint类型

插入的数值超过范围的话,直接会报错(有符号-128 <-> 127)

超出数据范围,mysql直接拦截你

2.bit类型

多出来的就插不进去了

hex(online):把他的数变成十六进制的

该成10个bit位(原来插不进来的,现在可以插入进来了)

位图结构的位数最多是64位

3.float类型

float(4,2):表示显示长度为4位,小数位为2

要求精度部分必须是两位(整数部分: 可以不足,但不能超过 小数部分: 不足补0,超过就四舍五入)

在合法范围之内,是可以进行四舍五入的

4.float unsigned类型

负数就插不进来了(取值范围 -> [0,99.99])

将float(4,2) -> 改成float

可以看到数据的存储还是有一定的精度的损失的(目前来看小数点前6位是能存储下来的)

5.decimal类型

前面插入一些小数是一样的

插入一样的数据,但是float有精度损失,decimal是存啥就是啥

6.char字符串类型

和c/c++中不同,mysql的字符,一个字符代表的就仅仅是一个字符

7.varchar变长字符串类型

varchar最多是65535个字节,字符最多21844个(一个表的其他的值也会影响varcahr的最大开辟的空间)

char是你无论存储多少个字符,我都给你开这么多个字符

varchar是你存储多少个我就给你多少个字符

其他文本类型:

8.char和varchar对比

9.日期和时间类型

timestamp时间戳:会自动变化

-- 将 t3 字段的默认值修改为当前时间

ALTER TABLE t9

MODIFY COLUMN t3 TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

将以上的这段输入

这样就自动将我什么时候插入的时间存储下来了

如果只有一个值,直接使用update t11 set t1 = "1999-01-01";这样时间戳t3也会发生改变

如果是默认生成就是不会改变的

这个是随着改变不断更新的

更新和删除语句:

Test:

datetime:是用来记录一些有意义的,固定的时间的(不会再做更新的)

10.enum和set类型

enum:多选一,set:支持多选多

enum类型可以用1,2,3(从1开始,到n)来进行代替,分别对应你初始化的类型

NULL和空白("")是不一样的

NULL是没有爱好 ""表示列表中没有喜欢的

set的数字要转成二进制的1/0

(enum中,一个一个的是下标,set中,一个一个的是位图)

enum和set的查找

这样只能筛选爱好只有代码的(不方便)

select是可以指向表达式/函数等的

find_in_set("dst","src");(一次只能查找一个)

判断dst是否在drc中,不在就是0,在就是下标

可以用and将两个函数的结果连接起来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值