Mysql数据库的一些操作 mysql中一条insert语句批量插入多条记录 mysql中null与“空值”的坑 关于mysql中INT(M) M含义      关于单行子查询返回多个行 表中有自增长主键时,插入数据的方法

mysql中null与“空值”的坑

1、我字段类型是not null,为什么我可以插入空值
Mysql数据库的一些操作
mysql中一条insert语句批量插入多条记录
mysql中null与“空值”的坑
关于mysql中INT(M) M含义     
关于单行子查询返回多个行
表中有自增长主键时,插入数据的方法

 Mysql数据库的一些操作
mysql中一条insert语句批量插入多条记录
mysql中null与“空值”的坑
关于mysql中INT(M) M含义     
关于单行子查询返回多个行
表中有自增长主键时,插入数据的方法

2、为毛not null的效率比null高
NULL 其实并不是空值,而是要占用空间,所以mysql在进行比较的时候,NULL 会参与字段比较,所以对效率有一部分影响,
而且B树索引时不会存储NULL值的,所以如果索引的字段可以为NULL,索引的效率会下降很多。
3、判断字段不为空的时候,到底要 select * from table where column <> '' 还是要用 select * from table where column is not null 呢。

Mysql数据库的一些操作
mysql中一条insert语句批量插入多条记录
mysql中null与“空值”的坑
关于mysql中INT(M) M含义     
关于单行子查询返回多个行
表中有自增长主键时,插入数据的方法

关于mysql中INT(M) M含义     

外键的定义

推荐看的视频

Mysql数据库的一些操作
mysql中一条insert语句批量插入多条记录
mysql中null与“空值”的坑
关于mysql中INT(M) M含义     
关于单行子查询返回多个行
表中有自增长主键时,插入数据的方法

 外键有几种约束,NO ACTION/RESTRICR表示父表(关联字段为主键的表)更新删除的时候,如果子表存在和父表在关联字段值相同的时候,

数据库会报错提示无法更新,此时需要先更改子表重复的值才可以修改删除父表,比如关联字段为年级,学生表里有些学生是6年级,

当父表(年级表)要删除六年级记录时,子表(学生表)如果存在六年级的学生则会报错,只有先把六年级的学生的年级字段修为为其他年级才可以进行删除。

SET NULL 表示父表删除记录时,对应的子表相关联的记录被设置为NULL,但是不删除,但CASCADE则是父记录删除,子记录也删除。

关于单行子查询返回多个行

Mysql数据库的一些操作
mysql中一条insert语句批量插入多条记录
mysql中null与“空值”的坑
关于mysql中INT(M) M含义     
关于单行子查询返回多个行
表中有自增长主键时,插入数据的方法

子查询貌似只能返回一个表的字段,如果返回多个表的字段可以先建立一个视图
还有就是子查询如果返回的是多个值那么就用关键字in,单个值的话用on

表中有自增长主键时,插入数据的方法