• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

MySQL8.0 关联查询-内连接(等值连接、非等值连接和自连接)、外连接(左外连接和右外连接),数据库的备份与恢复

互联网 diligentman 5天前 5次浏览

多表设计,关联查询

-- 多表设计,关联查询
-- 笛卡尔积现象(几乎不用)
SELECT* FROM t_student,grade -- 查询的结果不是我们先要的
-- 内连接
-- 1.等值连接  2.非等值连接 3.自连接
-- ---------------------------------------------------------------------------------------
-- 等值连接
-- 方式1 采用inner join方式  语法:select 结果 form 表名1 inner join 表名2 on 连接条件
SELECT * FROM t_student INNER JOIN grade ON grade_id =  id
-- select num,name,name from t_student inner join grade on grade_id = id  -- 查询的结果中有重名现象,所以需要起别名。报错Column 'name' in field list is ambiguous

SELECT
  s.num,
  s.NAME,
  g.NAME
FROM
  t_student s
  INNER JOIN grade g
    ON s.grade_id = g.id
    
-- 方式二 采用where方式   语法:select 结果 form 表名1,表名2 where 连接条件
SELECT
  s.num,
  s.NAME,
  g.NAME
FROM
  t_student s,
  grade g
WHERE s.grade_id = g.id

-- ---------------------------------------------------------------------------------------------
ALTER TABLE t_student ADD score INT
CREATE TABLE score_lever( NAME VARCHAR(2),lower_score INT ,upper_score INT)

-- 非等值连接
SELECT*
FROM
  t_student s
  INNER JOIN score_lever sl
    ON s.score BETWEEN sl.lower_score
    AND upper_score
    
-- ---------------------------------------------------------------------------------------------

-- 自连接
CREATE TABLE t_area(
id INT,NAME VARCHAR(20),pid INT)

SELECT*
FROM
  t_area t1
  INNER JOIN t_area t2
    ON t1.pid = t2.pid
    
    -- -------------------------------------------------------------------------------------------------
    -- 外连接
    -- 左外链接 以左边的表为主进行查询。以左边的表为主进行查询无论条件是否满足都会将左边数据查询出来
SELECT
  s.num,
  s.NAME,
  g.NAME
FROM
  t_student s
  LEFT JOIN grade g
    ON s.grade_id = g.id
 -- -------------------------------------------------------------------------------------------------------   
    -- 右外连接 以右边的表为主进行查询
SELECT
  s.num,
  s.NAME,
  g.NAME
FROM
  t_student s
  RIGHT JOIN grade g
    ON s.grade_id = g.id
    
  --左外连接和右外连接的区别如分析

左外连接和右外连接区别:
新建学生表如下图所示:
MySQL8.0 关联查询-内连接(等值连接、非等值连接和自连接)、外连接(左外连接和右外连接),数据库的备份与恢复
新建年级表如下图所示:
MySQL8.0 关联查询-内连接(等值连接、非等值连接和自连接)、外连接(左外连接和右外连接),数据库的备份与恢复

左查询后的结果:
MySQL8.0 关联查询-内连接(等值连接、非等值连接和自连接)、外连接(左外连接和右外连接),数据库的备份与恢复
右查询后的结果:
MySQL8.0 关联查询-内连接(等值连接、非等值连接和自连接)、外连接(左外连接和右外连接),数据库的备份与恢复

数据库的备份与恢复

使用sqlyog客户端工具进行数据库的备份操作
在修改删除数据之前最好对数据库进行备份
MySQL8.0 关联查询-内连接(等值连接、非等值连接和自连接)、外连接(左外连接和右外连接),数据库的备份与恢复
MySQL8.0 关联查询-内连接(等值连接、非等值连接和自连接)、外连接(左外连接和右外连接),数据库的备份与恢复


喜欢 (0)