mysql数据库管理和数据类型,索引机制

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **

修改字段名

ALTER TABLE student

CHANGE address home_address VARCHAR(200) not null;

删除字段

ALTER TABLE student

DROP home_address,

DROP home_tel;

中间可以通过desc student;来查看修改前后的变化

2.数据类型

数字型一般使用int即可,4个字节,精准保存浮点数时,使用DECIMAL,将数字保存为字符串,就不会缺失一些小数点后的数

如果使用double或者float类型,小数点后面只是无限接近,不能真正等于这个小数,小数点后一位为1时,是1/2,小数点后第二位为1时,是1/4,以此类推

可以在navicat上演示:

CREATE TABLE temp(

id INT UNSIGNED PRIMARY KEY,

num float(20,10)

);

此时的num字段,保留小数点后10位,往表中添加数据时,num填入0.2,保存之后得到的是:

精确小数

并不等于0.2,当小数点位数取比较多(此处保留小数点后10位)时能明显看出

当使用decimal类型保存数据时:

CREATE TABLE temp(

id INT UNSIGNED PRIMARY KEY,

num DECIMAL(20,10)

);

此时num输入0.2并保存时:

精确小数

此时保存的是准确的浮点数

字符串一般使用char或者varchar,后面带一个括号指定最大的字符长度

text,mediumtext,longtext是不确定字符串长度,以此类型定义字段时不能指定最大字符长度,一般不使用,如果需要存储这么长的字符串,建议用nosql

另外补充一个枚举的数据类型,sex enum('男','女') not null;,代表sex这个字段只能从男/女这个范围中选

mysql默认将boolean布尔型转称tinyint类型,true用1代替,false用0代替

可以在建表时,设置married boolean not null default false,代表married这个字段为“布尔型”,非空,默认为false

布尔型

3.索引机制

需要满足范式

第一范式:原子性,不满足此范式就不是关系型数据库

第二范式:唯一性,要有表明该记录不重复的字段,即唯一标识:主键

第二范式

第三范式:关联性,除了和主键有依赖,其余字段之间不能有传递依赖关系,

一般要满足第三范式即可,满足此范式,检索速度也会快一些,根据主键来检索,速度是快的,主键一般用整数类型

数据库有以下几个约束:主键约束,外键约束,唯一约束,非空约束

主键约束包含了唯一(unique)和非空(not null)的限制

一般不使用外键约束

外键约束,涉及两种角色,一种是父表,一种是子表,外键约束一般写在子表上。假设父表上的某一个记录与子表有关联,要想删除该记录,就需要先删除子表中相关的记录。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值