当前位置: 首页 > wzjs >正文

网站免费推广策划方案搜索引擎优化的具体操作

网站免费推广策划方案,搜索引擎优化的具体操作,川畅科技搜搜 网站设计,wordpress 转小程序1 左右连接基础概念 左连接(left join)和右连接(right join)是MySQL中两种重要的表连接方式,它们与内连接不同,能够保留不匹配的记录,为我们提供更完整的数据视图。 核心区别: left join:保留左表所有记录,…

1 左右连接基础概念

左连接(left join)和右连接(right join)是MySQL中两种重要的表连接方式,它们与内连接不同,能够保留不匹配的记录,为我们提供更完整的数据视图。
核心区别
  • left join:保留左表所有记录,右表无匹配则显示null
  • right join:保留右表所有记录,左表无匹配则显示null
  • inner join::只返回匹配成功的记录(不保留任何表的全部记录)

2 创建测试数据

-- 创建部门表
drop table if exists departments;
create table departments (dept_id int primary key,dept_name varchar(50) not null
) default charset=utf8mb4;
commit;-- 创建员工表
drop table if exists employees;
create table employees (emp_id int primary key,emp_name varchar(50) not null,dept_id int,salary decimal(10,2),constraint fk_dept foreign key (dept_id) references departments(dept_id)
) default charset=utf8mb4;
commit;-- 插入测试数据
insert into departments values 
(10, '研发部'),
(20, '市场部'),
(30, '财务部'),
(40, '人事部');
insert into employees values 
(101, '张三', 10, 12000),
(102, '李四', 20, 9000),
(103, '王五', 10, 15000),
(104, '赵六', null, 8000),
(105, '钱七', 50, 10000);  
commit;

3 左连接(left join)实战

3.1 基本左连接查询

-- 查询所有员工及其部门信息(包括没有部门的员工)
select e.emp_name, ifnull(d.dept_name, '无部门') as dept_name, e.salary
from employees e
left join departments d on e.dept_id = d.dept_id;
  • 查询结果
mysql> select e.emp_name, ifnull(d.dept_name, '无部门') as dept_name, e.salary-> from employees e-> left join departments d on e.dept_id = d.dept_id;
+----------+-----------+----------+
| emp_name | dept_name | salary   |
+----------+-----------+----------+
| 张三     | 研发部    | 12000.00 |
| 王五     | 研发部    | 15000.00 |
| 李四     | 市场部    |  9000.00 |
| 赵六     | 无部门    |  8000.00 |
| 钱七     | 无部门    | 10000.00 |
+----------+-----------+----------+
5 rows in set (0.04 sec)mysql> 

3.2 查找没有部门的员工

-- 使用left join的特殊用法
select e.emp_id, e.emp_name
from employees e
left join departments d on e.dept_id = d.dept_id
where d.dept_id is null;
  • 查询结果
mysql> select e.emp_id, e.emp_name-> from employees e-> left join departments d on e.dept_id = d.dept_id-> where d.dept_id is null;
+--------+----------+
| emp_id | emp_name |
+--------+----------+
|    104 | 赵六     |
|    105 | 钱七     |
+--------+----------+
2 rows in set (0.00 sec)mysql> 

4 右连接(right join)实战

4.1 基本右连接查询

-- 查询所有部门及其员工信息(包括没有员工的部门)
select d.dept_name, ifnull(e.emp_name, '无员工') as emp_name
from employees e
right join departments d on e.dept_id = d.dept_id;
  • 查询结果
mysql> select d.dept_name, ifnull(e.emp_name, '无员工') as emp_name-> from employees e-> right join departments d on e.dept_id = d.dept_id;
+-----------+-----------+
| dept_name | emp_name  |
+-----------+-----------+
| 研发部    | 张三      |
| 研发部    | 王五      |
| 市场部    | 李四      |
| 财务部    | 无员工    |
| 人事部    | 无员工    |
+-----------+-----------+
5 rows in set (0.00 sec)mysql> 

4.2 查找没有员工的部门

-- 使用right join的特殊用法
select d.dept_id, d.dept_name
from employees e
right join departments d on e.dept_id = d.dept_id
where e.emp_id is null;
  • 查询结果
mysql> select d.dept_id, d.dept_name-> from employees e-> right join departments d on e.dept_id = d.dept_id-> where e.emp_id is null;
+---------+-----------+
| dept_id | dept_name |
+---------+-----------+
|      30 | 财务部    |
|      40 | 人事部    |
+---------+-----------+
2 rows in set (0.00 sec)mysql> 

5 左右连接对比演示

-- 左连接结果
select '左连接' as join_type, e.emp_name, d.dept_name
from employees e
left join departments d on e.dept_id = d.dept_id;-- 右连接结果
select '右连接' as join_type, e.emp_name, d.dept_name
from employees e
right join departments d on e.dept_id = d.dept_id;-- 内连接结果(对比用)
select '内连接' as join_type, e.emp_name, d.dept_name
from employees e
inner join departments d on e.dept_id = d.dept_id;
  • 查询结果
mysql> -- 左连接结果
mysql> select '左连接' as join_type, e.emp_name, d.dept_name-> from employees e-> left join departments d on e.dept_id = d.dept_id;
+-----------+----------+-----------+
| join_type | emp_name | dept_name |
+-----------+----------+-----------+
| 左连接    | 张三     | 研发部    |
| 左连接    | 王五     | 研发部    |
| 左连接    | 李四     | 市场部    |
| 左连接    | 赵六     | NULL      |
| 左连接    | 钱七     | NULL      |
+-----------+----------+-----------+
5 rows in set (0.00 sec)mysql> 
mysql> -- 右连接结果
mysql> select '右连接' as join_type, e.emp_name, d.dept_name-> from employees e-> right join departments d on e.dept_id = d.dept_id;
+-----------+----------+-----------+
| join_type | emp_name | dept_name |
+-----------+----------+-----------+
| 右连接    | 张三     | 研发部    |
| 右连接    | 王五     | 研发部    |
| 右连接    | 李四     | 市场部    |
| 右连接    | NULL     | 财务部    |
| 右连接    | NULL     | 人事部    |
+-----------+----------+-----------+
5 rows in set (0.00 sec)mysql> 
mysql> -- 内连接结果(对比用)
mysql> select '内连接' as join_type, e.emp_name, d.dept_name-> from employees e-> inner join departments d on e.dept_id = d.dept_id;
+-----------+----------+-----------+
| join_type | emp_name | dept_name |
+-----------+----------+-----------+
| 内连接    | 张三     | 研发部    |
| 内连接    | 王五     | 研发部    |
| 内连接    | 李四     | 市场部    |
+-----------+----------+-----------+
3 rows in set (0.01 sec)mysql> 

7 性能优化建议

7.1 索引优化

-- 为连接字段创建索引
alter table employees add index idx_dept (dept_id);
alter table departments add index idx_dept (dept_id);

7.2 查询改写技巧

-- 某些情况下,left join和right join可以相互转换
select e.emp_name, d.dept_name
from departments d
left join employees e on d.dept_id = e.dept_id;-- 等价于
select e.emp_name, d.dept_name
from employees e
right join departments d on e.dept_id = d.dept_id;

7.3 避免过度使用

  • 当只需要匹配记录时,优先使用inner join
  • 大数据表连接时,注意结果集大小

8 总结

记住关键原则:left join保留左表全部记录,right join保留右表全部记录。根据业务需求选择合适的连接方式,可以大大提高查询的灵活性和数据分析的完整性。
http://www.dtcms.com/wzjs/93636.html

相关文章:

  • 赤峰最好的网站建设公司微信营销平台有哪些
  • 网站开发前台和后台自动app优化最新版
  • 网站权重怎么提高市场营销渠道
  • python制作网站开发重庆公司seo
  • 浙江省建设行政主管部门网站自己做网站设计制作
  • 烟台网站制作公司哪家好百度人工服务在线咨询
  • 大学生做家教网站百度刷搜索词
  • 樟木头仿做网站百度关键词挖掘
  • 上线了自助建站b站推广形式
  • 企业网站推广的目的网站如何进行网络推广
  • 快速知彼网络网站建设海外推广专员
  • wordpress resume网络推广优化网站
  • 营销网站建设公司地址口碑营销公司
  • 无锡专业网站建设百度精准获客平台
  • 扬州润扬交通建设集团网站百度开户返点
  • wordpress 下载站插件如何利用seo赚钱
  • 现在可以用的网站整站优化外包服务
  • 外贸快车做网站怎么样整站seo
  • 建设部网站怎么查询相关专业nba在线直播免费观看直播
  • 08影院wordpress主题seo和sem的区别是什么?
  • b站刚开始怎么推广北京网络推广公司wyhseo
  • 国内做网站哪家公司好长沙seo推广优化
  • 手机网站开发 html5网上永久视频会员是真的吗
  • wamp环境下做网站国家新闻最新消息今天
  • 贵港做网站建设价格费用十大免费b2b网站
  • 网站工期表怎么做网络技术推广服务
  • 二手商品网站怎么做衡水网站优化推广
  • 定制开发电商网站建设公司郑州百度推广公司地址
  • wordpress的nginx伪静态规则seo黑帽技术有哪些
  • 石家庄网站建设公司怎么样简述网络营销的方法