• 多表查询与内连接,外连接


    1 多表查询:创建一个部门表和员工表并插入数据

    代码块
    use company;
    
    #创建部门表
    CREATE TABLE department (
    id int PRIMARY key  auto_increment,
    dep_name varchar(10) not null
    );
    
    #创建员工表
    CREATE TABLE employee(
    id int PRIMARY key auto_increment,
    emp_name varchar(10) not null,
    dep_id int
    -- CONSTRAINT dep_id_fk  FOREIGN key (dep_id) REFERENCES company(id) on DELETE CASCADE on UPDATE CASCADE
    #上面的外键约束没有也可以,外键约束不影响表与表之间关联,影响的是表插入数据的约束
    );
    
    #向部门表中插入数据
    insert into  department(dep_name) VALUES ('网盟营销'),('大数据中心')
    
    #向员工表中插入数据
    insert into employee(emp_name,dep_id) VALUES('wangsiyu',1),('alex',2)
    
    

    查询员工的ID,姓名,部门的名称(隐式内连接):

    代码块
    select employee.id,emp_name,dep_name from employee,department WHERE department.id=employee.dep_id;
    注意:对于两个表都同名的字段,应该在查询该字段的前面加上对应的表,否则电脑不知道你这个字段是哪个表的
    

    显式内连接: 只连接匹配的行

    select * from employee inner join department on employee.dep_id=department.id;
    

    左连接 显示左表的全部记录

    select * from employee left join department on employee.dep_id=department.id;
    
    
    

    右连接:显示右表的全部记录

    select * from employee right join department on employee.dep_id=department.id;
    

    全连接:显示两个表的全部记录,没有对应的就用空表示

    select * from employee full join department on employee.dep_id=department.id;
    

    连接查询

    别跑,点个赞再走

  • 相关阅读:
    vue组件常用传值
    定时器的暂停,继续,刷新
    element-ui表格带复选框使用方法及默认选中方法
    git创建分支
    CAS协议原理与代码实现(单点登录 与 单点登出的流程)
    Java-技术专区-Files类和Paths类的用法
    Java-技术专区-Java8特性-parallelStream
    ELK日志系统环境搭建-6.x系列
    Spring系列-Spring Aop基本用法
    Spring-框架系列-SpringIOC容器初始化
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/12501659.html
Copyright © 2020-2023  润新知