zoukankan      html  css  js  c++  java
  • 多表查询与内连接,外连接

    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;
    

    连接查询

    别跑,点个赞再走

  • 相关阅读:
    浏览器F12(开发者调试工具) 功能介绍【转载】
    浏览器F12开发者工具的妙用【转载】
    linux中sed在指定字符前后添加内容
    查看TCP连接的命令【转载】
    Sql 语句删除重复项,保留id最小项
    MySQL中批量前缀表的sql语句
    【转载】登录的测试用例点
    Linux流量监控工具 – iftop
    postman接口添加断言
    测试点思考
  • 原文地址:https://www.cnblogs.com/hellosiyu/p/12501659.html
Copyright © 2011-2022 走看看