yipianshuying

本节内容:

1、MySQL之多表查询
2、Navicat工具
3、mysql数据库备份
4、pymysql模块

参考文章1
参考文章2

一、MySQL之多表查询

不建议使用外键的连接方式,这样连接方式太死板了,关联性太强,不利于表之间的修改等操作
推荐使用多表查询,使用表之间的逻辑来将表关联起来

1、三种查询方法:

1、多表连接查询(使用笛卡尔积)
2、复合条件连接查询(inner join)
3、子查询(将一个查询结果作为条件)

2、多表连接查询

#重点:外链接语法

SELECT 字段列表
FROM 表1 INNER|LEFT|RIGHT JOIN 表2
ON 表1.字段 = 表2.字段;
建表,后面的操作全部依照这个创建的表来演示
#建表
#部门表
create table department(
id int,
name varchar(20) 
);

#员工表,之前我们学过foreign key,强行加上约束关联,但是我下面这个表并没有直接加foreign key,这两个表我只是让它们在逻辑意义上有关系,并没有加foreign key来强制两表建立关系,为什么要这样搞,是有些效果要给大家演示一下
#所以,这两个表是不是先建立哪个表都行啊,如果有foreign key的话,是不是就需要注意表建立的顺序了。那我们来建表。
create table employee(
id int primary key auto_increment,
name varchar(20),
sex enum(\'male\',\'female\') not null default \'male\',
age int,
dep_id int
);

#给两个表插入一些数据
insert into department values
(200,\'技术\'),
(201,\'人力资源\'),
(202,\'销售\'),
(203,\'运营\'); #注意这一条数据,在下面的员工表里面没有对应这个部门的数据

insert into employee(name,sex,age,dep_id) values
(\'egon\',\'male\',18,200),
(\'alex\',\'female\',48,201),
(\'wupeiqi\',\'male\',38,201),
(\'yuanhao\',\'female\',28,202),
(\'liwenzhou\',\'male\',18,200),
(\'jingliyang\',\'female\',18,204) #注意这条数据的dep_id字段的值,这个204,在上面的部门表里面也没有对应的部门id。所以两者都含有一条双方没有涉及到的数据,这都是为了演示一下效果设计的昂
;


#查看表结构和数据
mysql> desc department;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+

mysql> desc employee;
+--------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-----------------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| sex | enum(\'male\',\'female\') | 

分类:

技术点:

相关文章:

  • 2022-01-24
  • 2021-11-27
  • 2021-12-01
  • 2021-11-23
  • 2022-12-23
  • 2022-01-16
  • 2022-02-01
  • 2021-06-13
猜你喜欢
  • 2022-01-25
  • 2022-12-23
  • 2022-12-23
  • 2022-01-03
  • 2022-12-23
  • 2022-01-28
相关资源
相似解决方案