1.数据库的约束
约束:数据库针对数据进行一系列的校验,如果发现数据不符合约束中描述的校验规则,就会插入失败,主要是为了提高数据的正确性。
约束类型:
1》NOT NULL - 指示某列不能存储 NULL 值。
2》 UNIQUE - 保证某列的每行必须有唯一的值。
3》 DEFAULT - 规定没有给列赋值时的默认值。
4》 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。
保证主键不重复,可以借助数据库自动生成“auto_increment"。
建议直接把自增部分写为null,若表中没有任何记录,会从1开始,若存在,会从上一条记录开始自动增加。
注意,如果把之前某个数据删除了,再次插入,刚才删除掉的自增主键的值不会被重复利用。
5》 FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
有时插入的数据并不合理,但也能插入成功。
加入外键后,这样再往student 里面插入数据时,MySQL就会自动检查classId里面的字段值是否再class中的id列出现过,如果没有,就会插入失败。
由于这个外键,直接删除class是不行的,因为他被其他表关联着。
6》 CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略 CHECK子句
2.表的设计
MySQL中是不存在数组类型的
1》一对一
2》一对多
3》多对多
这里的studentId和courseId最好设置成外键。
3.进阶CRUD操作
1》新增
查询结果可作为被插入的对象插入到表中(查询得到的列的数目,顺序,类型需要和被插入的表的列的数目,顺序,类型一样)
2》查询
聚合查询(一般需要搭配MySQL中的一些内置函数)
count:计算结果的行数
(是不算null的个数的)
聚合函数:
COUNT([DISTINCT] expr) 返回查询到的数据的 数量
SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义