数据库多表联合查询——笛卡尔积、自然连接、左外连接、右外连接、全外连接等介绍

2022-02-14

前言 面试的时候被面试官问到关于数据库多表查询的方式,其实以前都是学过的,但我当时只记得笛卡尔积(也没记起来这个术语,只知道是逗号分隔表名)和自然连接,有点惭愧。现在再重新整理并记录下来。 使用的表例子 来源于Abraham Silberschatz等著的《数据库系统概念(第6版)》中大学数据库的例子,可以参考这个链接:https://blog.csdn.net/m0_37961948/article/details/88426110 笛卡尔积 如果不限定任何条件,则表1中的每个元组和表2中的每个元组都会进行组合。这样的组合通常是没有意义的,一般会用where子句来限定查询的条件。比如我们想要查询每个教师的姓名和他教授的所有课程ID,我们就可以这样写 select name,course_id from instructor,teaches where instructor.ID=teaches.ID 如果不加where子句进行限定,那么查询出来就会有老师对应到其他老师教授的课程的结果。 自然连接 自然连接只考虑在两个表中都出现的属性上取值相同的元组对。回到instructor和te....

关于封装、继承、多态的学习心得

2022-02-14

前言 封装、继承、多态是面向对象语言的三大特性。笔者主修的是 Java 语言,在刚学 Java 的时候老师就反复告诉我们这三个词。不过之前一直也只是知道个大概。最近又仔细看了一下网上的一些解析,决定记录一下自己的学习心得。 开门见山——三者的关系 我认为这三者并不是三个平行的概念,而是一个层层递进的关系,即封装是最基本的,有了封装以后才能实现继承,在封装和继承的基础上才能实现多态。 一切的基石——封装 封装就是把一类数据和与这类数据的相关操作封装起来,数据不能随意被访问和改动,只能通过公开的接口来进行增删改查。Java 里面为了实现封装,设置了四个访问修饰符,分别是: public:public 修饰的成员变量或方法,项目中的任何类都可以访问 protected:只有同个包内的类和自己的子类能访问 friendly(不写):只有同个包内的类能访问,也就是说就算有个子类,但它在其他的包中,也不能进行访问 private:只有自己这个类能访问 一般在实践中,对于所有成员变量都会有用 private 进行修饰,同时设置公开的 get 和 set 方法来访问和修改成员变量的值。除此之外,再....

neo4j 数据库简介

2022-02-14

neo4j 数据库是一个高性能的 NoSQL 图形数据库。它的存储结构非常类似于数学中的图,以结点和结点之间的关系为存储的基本内容。neo4j 中的图指的是有向图,所有的关系都必须是有方向的,如果试图创建没有方向的关系会失败。它非常适合存储关系错综复杂的数据,如知识图谱、人脉网等。neo4j 中没有分库分表的概念,所有结点和关系都存在一个库中。由于没有表结构,因此它非常适合存储半结构化数据,扩展性极好。 neo4j 名字的来源应该是《黑客帝国》中的尼奥(neo),因为在它的管理界面有个教程演示就是创建《黑客帝国》的图谱。4j 则是指为 Java 而生,和 log4j 等一众 4j 结尾的软件一样。 安装 neo4j 的官网地址为:https://neo4j.com/,但访问十分缓慢。neo4j 数据库不需要进行安装,直接运行软件包中的 bin/neo4j.bat 文件即可使用。但是官网的下载速度过于缓慢,下载一个压缩包需要好几个小时,就算是迅雷加速也没用,而且最新版的 neo4j 只支持 Java11 以上的版本,所以不推荐使用这种方式运行。本人推荐在 docker 中安装运行 neo....

我在 GitHub 上的开源项目

2022-02-02
  1. aopstudio.github.io HTML 🤩0  ⭐️13  🖖9  🏠https://aopstudio.github.io 使用Github Pages生成的静态页面 2. Notes Java 🤩0  ⭐️5  🖖4 课堂笔记 3. Graph Java 🤩0  ⭐️4  🖖0 将邻接矩阵和邻接表转换为可视化的图 4. PAT-Practice C++ 🤩1  ⭐️1  🖖0 PAT甲级刷题代码和解析 5. VBlearning Visual Basic 🤩1  ⭐️1  🖖0 A project for learning VB.NET 6. vue-cli Vue 🤩1  ⭐️0  🖖0 前端工程学习 7. InterviewPrepare 🤩2 &nbsp....

世界,你好!

2022-02-01

Solo 博客系统已经初始化完毕,可在管理后台 - 工具 - 偏好设定中调整更多细节设置。如果需要导入已有博客文章,请参考文档 Solo 支持 Hexo/Jekyll 数据导入

对了,出于安全考虑请尽快完成如下操作:

  1. 登录链滴社区后,在个人设置 - B3 中更新 B3 Key
  2. 在 Solo 管理后台 - 工具 - 用户管理中也进行同样的 B3 Key 更新

另外,如果你需要开启评论系统,请参考 Solo 集成 Gitalk 评论系统

最后,如果你觉得 Solo 很赞的话,请到项目主页 Watch、Star、Fork 三连 😍