mysql数据库中 pri_mysql数据库part2

本文详细介绍了MySQL数据库的时间类型、约束(如unsigned、not null、default、unique、primary key、auto_increment、zerofill、foreign key)以及存储引擎(如MyISAM、InnoDB、MEMORY和BLACKHOLE)。重点讨论了主键索引、唯一索引、普通索引的区别,以及外键在数据关联中的作用。此外,还提到了存储引擎的选择对于并发和事务处理的影响。
摘要由CSDN通过智能技术生成

mysql数据库part2

一、时间类型(数据类型续)

二、约束

1、unsigned

2、not null

3、default

4、unique

5、primary key

6、auto_increment

7、zerofill

8、主键索引(PRI)、唯一索引(UNI)、普通索引(MUL)

9、foreign key

三、存储引擎

一、时间类型(数据类型续)

date YYYY-MM-DD 年月日

time HH:MM:SS 时分秒

year YYYY 年份值

datetime YYYY-MM-DD HH:MM:SS 年月日 时分秒

ea3733a6df7a14874acf71702bdb1e5d.png

select now() 获取当前时间

301403b0973670ce00d1f9f90e19fbad.png

timestamp YYYYMMDDHHMMSS(时间戳) 自动更新时间 数据上一次的修改时间

b6fd72dd26d195fb4ce8bdd3774be54f.png

手动修改数据:

aeb9bfe20e962af7e46cabd0c6a53c1d.png

二、约束

对要进行编辑的数据进行类型上的限制,不满足限制条件的数据不允许操作

unsigned 无符号

not null 不为空

default 设置默认值

unique 唯一约束,数据唯一不重复

primary key 主键,标记数据的唯一特性(唯一且不为空)

auto_increment 自增加1(一般配合主键使用,或unique自增)

zerofill 零填充(配合整型int使用)

foreign key 外键,把多张表通过一个关联字段关联在一起

1、unsigned

a884657c589fa53ee506699766fdbb72.png

如图,只能插入正值

2、not null

1f9bd60387ec811118cb7b0e6ea835a1.png

如图,插入数据不能为空,否则报错

3、default

设置默认值:

e6d79518f0e0662bed9663da7c1cf7f1.png

如图,不指定name时自动生成默认值

4、unique

437a5ee9271d2e29825fcb16c4b0429b.png

如图,当指定唯一约束时,值不能出现重复

插入null:

0ce7eeaa0831d4fc05a683b83cf7813c.png

如图,当插入值为空时,不会出现报错,会将数据写入到表中

5、primary key

697130cb8b42b7b2728b7327dec97b53.png

如图,指定主键后,对应字段既不能重复也不能传入空值

一个表里只能存在一个主键:

62f9837a54fae8b4d15fc166df7869bd.png

主键和唯一关联unique可同时存在:

26262044665210b2ad3f7f138e211707.png

6、auto_increment

86d418ed800507614b5e4ca37bb65fc2.png

如图,配合主键primary key使用,id自动累加

delete和truncate区别:

delete删除数据后累加的id号会保留,下次新插入数据会继续累加,truncate重制表

e93620ca44d4e25e48e0abbd028d5006.png

7、zerofill

4243e5421dfb17a84a0c604a1dcd42fd.png

如图,int指定zerofile长度,不足位补0

8、主键索引(PRI)、唯一索引(UNI)、普通索引(MUL)

1)联合唯一约束(字段都设置成not null + unique 显示PRI,联合在一起表达一种唯一性)

unique(字段1,字段2,字段3…) 把多个字段拼在一起表达一种唯一性:

a45a5b4d9a02025ebb7d853b8efce8e6.png

如图,在此例中IP+端口具有联合唯一性:

4e7bb17288efef36e49fa8826d05b139.png

联合唯一约束如果不加not null则可以设置空值

2)联合唯一索引可否与主键同时存在

4af6c647be6a1ed749979d392e4e6f84.png

如图,可同时存在

联合主键写法与联合唯一索引一样

721b6699bd4adbe20e3925647bf79ce7.png

二者区别:

前者可继续添加一个主键,后者不能再额外添加主键

主键可以是单个字段,也可以是联合主键,不能让多个单字段做主键

9、foreign key

外键所关联的其他字段必须具有唯一属性unique或primary key

语法:

foregin key(要绑定字段) references 要绑定的表(表中要绑定字段)

5cb91f414d86ec2a470f4b33637db48e.png

如果我们此时要删除class1这个班级:

a56f40325ee9866b3a000025b37f8644.png

如图,因为外键的存在,无法删除数据

联级删除:

on delete cascade

联级更新:

on update cascade

057c07b411d557de5da502e3e6fa9efc.png

如图联级删除时会把所有相关数据删除

表与表之间的关系:

1)一对一

2)一对多或多对一

3)多对多

三、存储引擎

show engines 查看所有的存储引擎

71818bbc8b705eed6f6d723800ad7a3b.png

表级锁:如果有人修改当前表,会直接上锁,其他用户无法进行修改,不能进行高并发

行级锁:如果有人修改这个表中的一条记录,当前这条数据会被锁定,其他数据仍然可被修改,速度快,允许高并发

事物处理:执行sql语句时,所有的操作必须成功,最终提交数据,否则数据回滚,回到刚开始没操作的状态

begin:开启事务

commit:提交数据

rollback:回滚操作

3b1df47a1ce293dae0f20c2fa6b3034e.png

MyISAM 支持表级锁(5.6版本前默认存储引擎)

InnoDB 事务处理、行级锁、外键(5.6版本后默认存储引擎)

MEMORY 把数据放在内存中,做一个临时缓存

BLACKHOLE 黑洞,产生binlog日志,不生产真实数据

用来同步主从数据库中的数据,场景发生在多服务集群中

MyISAM:

5f93c27106542e62b1e444cd02cf1fa7.png

InnoDB:

f4c0491a7aee8010000f1a512d4424a8.png

MEMORY:

c759bb91e1e15314a1561b603e96fae1.png

从目录中找不到数据文件,因为存在了内存中

BLACKHOLE:

b91256d112ea403ed73f6c635feb8788.png

如图,不存储任何值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值