zoukankan      html  css  js  c++  java
  • mysql+sqlyog 多表查询练习

    #创建部门表
    CREATE TABLE dept(
        id INT PRIMARY KEY AUTO_INCREMENT,
        NAME VARBINARY(20)
    );
    INSERT INTO dept(NAME) VALUES("开发部"),("市场部"),("财务部");
    
    #创建员工表
    CREATE TABLE emp(
        id INT PRIMARY KEY AUTO_INCREMENT,
        NAME VARBINARY(10),
        gender CHAR(1),#性别
        salary DOUBLE,#薪水
        join_date DATE,#入职日期
        dept_id INT,
        FOREIGN KEY (dept_id) REFERENCES dept(id) #外键,关联部门表(部门表的主键)
    
    );
    
    INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES ('孙悟空','',7200,'2013-02-21',1);
    INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES ('猪八戒','',3600,'2010-12-02',2);
    INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES ('唐僧','',9000,'2008-08-08',2);
    INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES ('白骨精','',5000,'2015-10-07',3);
    INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES ('蜘蛛精','',4500,'2011-03-14',1);

    SELECT COUNT(*) FROM emp,dept;

    #笛卡尔积 A,B 两个集合,取这两个集合的所有组成情况

    SELECT * FROM emp,dept;

    #消除无用的数据,内连接查询,外链接查询,子查询

    #查询所有员工信息和对应的部门信息
    SELECT * FROM emp , dept WHERE emp.`dept_id` = dept.`id`;

    id name gender salary join_date dept_id id name
    1 孙悟空 男 7200 2013-02-21 1 1 开发部
    2 猪八戒 男 3600 2010-12-02 2 2 市场部
    3 唐僧 男 9000 2008-08-08 2 2 市场部
    4 白骨精 女 5000 2015-10-07 3 3 财务部
    5 蜘蛛精 女 4500 2011-03-14 1 1 开发部

    #查询员工表的名称,员工表的性别,部门名称

    SELECT emp.`name` , emp.`gender`,dept.`name` FROM emp,dept WHERE emp.`dept_id` = dept.`id`;

    SELECT
    t1.name,t1.gender,t2.name
    FROM
    emp t1,dept t2
    WHERE
    t1.`dept_id` = t2.`id`;

    name gender name
    孙悟空 男 开发部
    猪八戒 男 市场部
    唐僧 男 市场部
    白骨精 女 财务部
    蜘蛛精 女 开发部




    #左外连接 查询左表的所有数据以及其交集部分

    SELECT t1.*,t2.`name` FROM emp t1 LEFT JOIN dept t2 ON t1.`dept_id` = t2.`id`;

    id name gender salary join_date dept_id name
    1 孙悟空 男 7200 2013-02-21 1 开发部
    5 蜘蛛精 女 4500 2011-03-14 1 开发部
    2 猪八戒 男 3600 2010-12-02 2 市场部
    3 唐僧 男 9000 2008-08-08 2 市场部
    4 白骨精 女 5000 2015-10-07 3 财务部

    #右外连接


    SELECT t1.*,t2.`name` FROM emp t1 RIGHT JOIN dept t2 ON t1.`dept_id` = t2.`id`;

  • 相关阅读:
    教程:在 Visual Studio 中开始使用 Flask Web 框架
    教程:Visual Studio 中的 Django Web 框架入门
    vs2017下发现解决python运行出现‘No module named "XXX""的解决办法
    《sqlite权威指南》读书笔记 (一)
    SQL Server手工插入标识列
    hdu 3729 I'm Telling the Truth 二分图匹配
    HDU 3065 AC自动机 裸题
    hdu 3720 Arranging Your Team 枚举
    virtualbox 虚拟3台虚拟机搭建hadoop集群
    sqlserver 数据行统计,秒查语句
  • 原文地址:https://www.cnblogs.com/woaiacfun/p/11042938.html
Copyright © 2011-2022 走看看