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


    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;
    

    连接查询

    别跑,点个赞再走

  • 相关阅读:
    国产化硬件设备性能追踪
    遇到的 超时重传
    系统加载
    nginx 全景图 转载
    引擎国产化适配&重构笔记
    记录一次syn后只收到ack的情况 --timewait
    PCIe网卡查看工具
    短说 反向代理&透传代理如何关闭connect
    XDP/AF_XDP ? eBPF
    ipvs--eBPF转载
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/12501659.html
Copyright © 2020-2023  润新知