数据库基础-day62

时间:2021-02-04 05:11:39
mysql有严格模式,有时候not null不好使,可能和它有关,

on delete cascade  on update cascade 跟在外键盘修饰处,所以一个外键这个就写一次,

foreign key的使用,就是1对多的使用,这里不赘述,

多对多,就需要专门建立一个表,比如学生和课程之间就可以建一个选课表,

一对1,就是对foreign key的数据项,加一个unique,

 
外键的表建多了,会消耗硬盘性能,有些公司会不让用外键,


单表 and 少量表查询 by 我们,
大量的表查询,by DBA,


二次where之后,你就不能再用where了
group by的二次筛选用having,
需要设置模式,我不记得了,意思是group by后select *得到的是该组的第一个数据,
一般用于统计信息,比如该组的最高薪资是谁?二班我不知道哦~
having is after avg()
Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。
Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数


1.交叉连接,可以理解为两者的数量积!
2.内连接,把两表共同符合的部分,显示出来,与表的先后没有关系,即from xx,inner join yy的顺序无关,
3.左连接,找出左表的所有信息,哪怕右表没有相关的信息,也显示相关的信息,
4.右连接,与左连接原理类似,
5.全外连接,目前mysql暂时不支持,你去看结果,in one word,像左和右连接的结合,