总结CRUD create retrieve update delete 增查改删
mysql有很多介词什么的很难记,就是SQL的设计风格不一致导致的.
Java中的设计风格不一致:
数组长度:arr.length String长度:str.length() List长度:list.size()
还有push pop offer poll
6种约束(约束是为了更早,更及时解决问题)
2. UNIQUE - 保证某列的每行必须有唯一的值。
加上unique
插入第二条重复的就报错
3.DEFAULT - 规定没有给列赋值时的默认值。
default (设定默认值.)默认的默认值是NULL ;可以通过default约束来修改这里的默认值的取值.
4.PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。
作用: 1)不能为空,相当于NOT NULL
2)不能重复,相当于UNIQUE
3)一个表里只能有一个主键
生活中 像身份证号码,商品编号,电话号,都可以称为主键;
还可以程序员设一个自增(auto_increment):由于主键必须要填,还不能重复,MYSQL为了方便大家填写,内置了一个功能,"自增主键",帮助我们自动生成主键的值.
自增之后插入
下图的id是自增主键
如果写的是具体数值,就是手动指定id;
如果写的是null,就是让mysql按照自增规律自动生成.
新增101
MYSQL想要自增,必须要能记录下来当前的id已经到哪了
要保证 自增 之后,是不重复的
MySQL里简单粗暴的做法,直接记录当前 自增逐渐列 里的最大值~
唯一ID=时间戳(ms)+机房编号/主机编号+随机因子(不是算术运算符是字符串拼接,不一定ID是数字,ID本质就是字符串)
5.FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
描述了两张表之间的关系(外键)
在外键的约束下,每次你对子表 插入/修改操作,都会触发父表中的查询,父表中存在才能 插入/修改 成功.
父表对子表限制是不能随意 插入/修改.(就像:不能随便一个陌生人就要加入我们班群)
子表对父表限制是不能随意 删除/修改(就像:我们班级群不能随便把班里的学生删除)
下图是删除