每一个表,必有的5个字段,项目专用,表示一个记录存在的意义。
id主键
version乐观锁
is_delete伪删除
gmt_create创建时间
gmt_update修改时间
外键
--ALTER TABLE表 ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列) REFERENCES 哪个表(哪个字段);
例子:
ALTER TABLE student
ADD CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade(gradeid);
以上操作都是物理外键,不推荐使用。避免数据库过多造成困扰,关联无法删除。
最佳推荐:数据库就是单纯的表,只用来存储数据。
我们想使用多张表格,之后用程序去实现。
alibaba编程规范一句话,强制,不得使用外键与级连,一切外键,必需在应用层面解决。
distinct去重
联表查询
link:-->

--查询参加了考试的同学(学号,姓名,科目编号,分数)
思路:
1分析需求,分析查询字段,来自哪些表?
2确定使用哪种连接查询,7种
3确定交叉点(2个表中,共同的信息)
案例:INNER JOIN
select * from student;
select * from result;
判断条件:学生表中的studentNo = 成绩表 StudentNo
开始写:
select s.studentNo,studentName,SubjectNo,StudentResult
From student AS s
INNER JOIN result AS r
where s.studentNo = r.studentNo;
RIGHT JOIN
开始写:
select s.studentNo,studentName,SubjectNo,StudentResult
From student AS s
RIGHT JOIN result AS r
ON s.studentNo = r.studentNo;
LEFT JOIN
开始写:
select s.studentNo,studentName,SubjectNo,StudentResult
From student AS s
LEFT JOIN result AS r
ON s.studentNo = r.studentNo;

自连接
自己的表,和自己的表连接。
解题核心:一张表,拆成2张一样的表即可。
