笔者的MySql学习之旅
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,下文内容主要给大家带来笔者的MySql学习之旅,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。前提:创建两个关系表:
千家信息网最后更新 2025年01月22日笔者的MySql学习之旅
下文内容主要给大家带来笔者的MySql学习之旅,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
前提:创建两个关系表:
CREATE TABLE t_blog( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(50), typeId INT);CREATE TABLE t_type( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20));
表数据如下:
1、获取A、B公有部分
MySql提供一种内连接的方式来获取A、B两表中均符合on表达式的数据:
mysql> select * from t_blog b inner join t_type t on b.typeId = t.id;+----+-------------------+--------+----+-------+| id | title | typeId | id | name |+----+-------------------+--------+----+-------+| 1 | java基础类型 | 1 | 1 | JAVA || 2 | java编程思想 | 1 | 1 | JAVA || 3 | java从入门到放弃 | 1 | 1 | JAVA || 4 | C语言精讲 | 2 | 2 | C || 5 | C语言从入门到放弃 | 2 | 2 | C || 6 | mysql基础 | 4 | 4 | MYSQL |+----+-------------------+--------+----+-------+6 rows in set
通过内连接,blog中的"图解http"数据和type表中的"C++"数据都被过滤
2、A的独有及AB共有
使用左外连获取A所有的数据,筛选出B表中符合on表达式的数据,不符合的数据B表相应字段补NULL
mysql> select * from t_blog b left join t_type t on b.typeId = t.id;+----+-------------------+--------+------+-------+| id | title | typeId | id | name |+----+-------------------+--------+------+-------+| 1 | java基础类型 | 1 | 1 | JAVA || 2 | java编程思想 | 1 | 1 | JAVA || 3 | java从入门到放弃 | 1 | 1 | JAVA || 4 | C语言精讲 | 2 | 2 | C || 5 | C语言从入门到放弃 | 2 | 2 | C || 6 | mysql基础 | 4 | 4 | MYSQL || 7 | 图解http | NULL | NULL | NULL |+----+-------------------+--------+------+-------+7 rows in set
通过左外连,左表中所有的数据都被查询出来,右表独有的"C++"数据被过滤,左表独有的"图解http"数据的右表位置补了NULL。
3、B独有及AB共有
同上,使用右外连,过滤掉A表中不符合on条件的数据,查询出所有B表中的数据,A表不满足的字段会补NULL;
mysql> select * from t_blog b right join t_type t on b.typeId = t.id;+------+-------------------+--------+----+-------+| id | title | typeId | id | name |+------+-------------------+--------+----+-------+| 1 | java基础类型 | 1 | 1 | JAVA || 2 | java编程思想 | 1 | 1 | JAVA || 3 | java从入门到放弃 | 1 | 1 | JAVA || 4 | C语言精讲 | 2 | 2 | C || 5 | C语言从入门到放弃 | 2 | 2 | C || NULL | NULL | NULL | 3 | C++ || 6 | mysql基础 | 4 | 4 | MYSQL |+------+-------------------+--------+----+-------+7 rows in set
通过右外连,右表中的数据全部被查出,独有的"C++"数据左表位置补了NULL,过滤掉左表的"图解http"数据
4、A独有
已知通过左外连,会得到A的独有及AB共有,在A的独有部分,B表位置会补NULL,也就是说,左外连结果中B为NULL的数据就是A的独有
mysql> select * from t_blog b left join t_type t on b.typeId = t.id where t.name is null;+----+----------+--------+------+------+| id | title | typeId | id | name |+----+----------+--------+------+------+| 7 | 图解http | NULL | NULL | NULL |+----+----------+--------+------+------+1 row in set
5、B独有
同上,右外连会获取B 的独有及AB共有,在B独有部分,A表位置会补NULL,也就是说左外连结果中A表为NULL的数据就是B的独有
mysql> select * from t_blog b right join t_type t on b.typeId = t.id where b.title is null;+------+-------+--------+----+------+| id | title | typeId | id | name |+------+-------+--------+----+------+| NULL | NULL | NULL | 3 | C++ |+------+-------+--------+----+------+1 row in set
6、求并集
MySql中提供"union"命令求并集,并且自动去重。如果对面表没有匹配,则补NULL
mysql> select * from t_blog b left join t_type t on b.typeId = t.id -> union -> select * from t_blog b right join t_type t on b.typeId = t.id;+------+-------------------+--------+------+-------+| id | title | typeId | id | name |+------+-------------------+--------+------+-------+| 1 | java基础类型 | 1 | 1 | JAVA || 2 | java编程思想 | 1 | 1 | JAVA || 3 | java从入门到放弃 | 1 | 1 | JAVA || 4 | C语言精讲 | 2 | 2 | C || 5 | C语言从入门到放弃 | 2 | 2 | C || 6 | mysql基础 | 4 | 4 | MYSQL || 7 | 图解http | NULL | NULL | NULL || NULL | NULL | NULL | 3 | C++ |+------+-------------------+--------+------+-------+8 rows in set
7、求差集
所谓差集就是A的独有和B 的独有的并集
mysql> select * from t_blog b left join t_type t on b.typeId = t.id where t.name is null -> union -> select * from t_blog b right join t_type t on b.typeId = t.id where b.title is null;+------+----------+--------+------+------+| id | title | typeId | id | name |+------+----------+--------+------+------+| 7 | 图解http | NULL | NULL | NULL || NULL | NULL | NULL | 3 | C++ |+------+----------+--------+------+------+2 rows in set
对于以上关于笔者的MySql学习之旅,如果大家还有更多需要了解的可以持续关注我们的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。
数据
基础
语言
C++
位置
思想
类型
编程
就是
部分
之旅
笔者
学习
专业
也就是
也就是说
字段
差集
知识
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
即时通讯软件开发哪家比较专业
福建管理软件开发费用
网络安全知识2022
电视跳舞软件开发
H3C云计算管理服务器
mc主城服务器指令
鱼雁聊天软件服务器是哪个国家的
软件开发女生面试
崇明区个人数据库行业
和平精英战场服务器怎么获得
万方数据库检索报告
中拓互联网科技有限公司
阆中市网络安全宣传
零基础学习网络技术培训
新浪微博用的啥数据库
在数据库迁移中
数据库统计图字段类型
linux服务器装系统教程学习
绍兴电商erp软件开发
刘文洋数据库技术pdf
易度网络技术服务中心
服务器怎么在电脑上下载游戏
物联网络技术应用就业
汉语教学网络技术
和平精英战场服务器怎么获得
数据库的er关系
韩国游戏服务器满了怎么显示
互联网公司与科技公司区别
江宁区app软件开发
中关村网络安全产业园