当前位置:   article > 正文

(毕设)SSM+redis+shiro_(三)

毕业设计要用redis吗

由于毕业设计里面需要多表的数据关联

现在复习一下数据库的多表联合的知识

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键, 外键可以有重复的, 可以是空值

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引

先了解这三个的区别


v2-5e3ed6d6badf8b90482dbea3324b7807_b.jpg


自己设计数据库添加一行外键


v2-68e6c0a8f98d68189980bfb3cd39a144_b.jpg



思考了很久 我还是运用联合查询

select name FROM u_work a where a.id in ( SELECT work_id from u_user where nickname ="本王");


v2-e025d28c3e44524163d5e1d4e895398f_b.jpg


这个SQL语句我卡了很久了

还是准备联合查询了


外连接

  外连接可分为:左连接、右连接、完全外连接。

建立两个简单的表

表student


v2-15de0db6dc4a391c909facd60b060372_b.jpg


表score


v2-bb52d57e7612c325f7b811a3dfc0f5c9_b.jpg



现在

1、左连接 left join 或 left outer join

mysql> select * from student left join score on student.id=score.id;


v2-e4b2a018200001bdb5cb71a1274a6d14_b.jpg


mysql> select * from student left outer join score on student.id=score.id;


v2-b561d8687c11feaecb9e0fa14d94d45e_b.jpg


左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,则结果中对应行右表的部分全部为空(NULL).

  注:此时我们不能说结果的行数等于左表数据的行数。当然此处查询结果的行数等于左表数据的行数,因为左右两表此时为一对一关系。


2、右连接 right join 或 right outer join

mysql> select * from student right join score on student.id=score.id;


v2-444a3a6320d9620ab0746efec8b6fb60_b.jpg


类似的我就举一个例子就 ok


右外连接包含right join右表所有行,如果左表中某行在右表没有匹配,则结果中对应左表的部分全部为空(NULL)。

  注:同样此时我们不能说结果的行数等于右表的行数。当然此处查询结果的行数等于左表数据的行数,因为左右两表此时为一对一关系。



3、完全外连接 full join 或 full outer join


v2-3deb04f44fcbd6c1ecdbd8e829b8541e_b.jpg


类似这个样子


完全外连接包含full join左右两表中所有的行,如果右表中某行在左表中没有匹配,则结果中对应行右表的部分全部为空(NULL),如果左表中某行在右表中没有匹配,则结果中对应行左表的部分全部为空(NULL)。


二、内连接 join 或 inner join

mysql> select * from student join score on student.id=score.id;


v2-e38d40d2219063dc79848738c0e5875c_b.jpg


inner join 是比较运算符,只返回符合条件的行。

  此时相当于:select * from student,course where student.ID=course.ID



三、交叉连接 cross join

  1.概念:没有 WHERE 子句的交叉联接将产生连接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。


v2-71de37049554f5da1586c03dff0791e0_b.jpg



今天就把这个弄明白了(参考文档)


主要是今天自己设计业务逻辑涉及到表的结构的问题,需要用到多表查询的方式


感觉还是有收获的今天的思考虽然走了些弯路,但是还是对后面的设计有清晰的一个思路帮助(明天继续设计业务逻辑和权限控制访问)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/779914
推荐阅读
相关标签
  

闽ICP备14008679号