笔者的MySql学习之旅
发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,下文内容主要给大家带来笔者的MySql学习之旅,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。前提:创建两个关系表:
千家信息网最后更新 2024年12月04日笔者的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安全错误
数据库的锁怎样保障安全
福州即拼商城软件开发方案
工商银行软件开发中心产品经理
浪潮服务器集中管理平台
数据库多大内存
数据库小数点前不显示
后端sku存数据库
主机数据库是什么意思
网易最强斗罗大陆服务器
如何关闭qq同步服务器
未发现此模型数据库的日志文件
门道网络技术有限公司
UIBE的贸易增加值数据库
tidb数据库备份恢复
工器具管理云服务器报价清单
遥志邮件服务器附件限制
软件一直服务器出错
怀旧服服务器双采攻略
说一些网络安全的话
酒店需要登录的网络安全吗
石家庄学软件开发的地方
高科技互联网汽车
网络安全主要包括物理安全和
为什么明日之后服务器登不上去
金币服务器金币传送门如何制作
2016数据库副本删除后加入
进销存软件开发服务商
四川软件开发软件
服务器密码机排行榜
2022年网络安全教育直播课
华为gt2软件开发