• Mysql多表查询


    1.备份数据:(生成SQL脚本)

    进入cmd到c盘根目录

    执行语句:

    语法:mysql 用户名 密码 数据库 > 脚本路径与名称

    mysqldump -uroot -proot mydb > c:mydb1.sql

    2.恢复数据:

    1.我们于进入cmd,连接数据库
    mysql -uroot -proot

    2.执行脚本:

    语法: source 生成和脚本的路径
    use 数据库名;
    source c:mydb1.sql

    3.在dos命令下直接导入:


    语法: mysql 用户名 密码 数据库 < 脚本路径与名称
    mysql -uroot proot mydb<c:mydb1.sql

    多表查询:

    多表查询有如下几种:
    合并结果集;
    连接查询
    内连接
    外连接
    左外连接
    右外连接
    全外连接(MySQL不支持)
    自然连接
    子查询

    -----合并结果集:
    ---作用:合并结果集就是把两个select语句的查询结果合并到一起
    ----要求:被合并的两个结果:列数、列类型必须相同。
    -----创建表
    create table t1(
    id int,

    name char(4)
    );

    insert into t1 values(1,'a');
    insert into t1 values(2,'b');
    insert into t1 values(3,'c');
    insert into t1 values(4,'d');
    insert into t1 values(5,'e');
    select * from t1;

    create table t2(
    id int,

    name char(4)
    );

    insert into t2 values(4,'d');
    insert into t2 values(5,'e');
    insert into t2 values(6,'f');
    insert into t2 values(7,'g');
    insert into t2 values(8,'h');
    select * from t1;
    select * from t2;

    -----union 合并结果后把相同的数据去除

    select * from t1 union select * from t2;

    ------union all 合并结果后所有数据出现

    select * from t1 union all select * from t2;

    -----------连接查询:

    select * from t1,t2;

    -----
    ------使用主外键关系做为条件来去除无用信息

    select * from emp,dept where emp.deptno=dept.deptno;

    ----查询其中列信息
    select emp.ename,emp.sal,dept.deptno from emp,dept where emp.deptno=dept.deptno;

    ----- 使用别名:
    select a.ename,a.sal,b.deptno from emp as a,dept as b where a.deptno=b.deptno;

    -----标准Sql 语句内连接

    select * from emp as e inner join dept as d on e.deptno=d.deptno;

    外连接
    ----外连接的特点:查询出的结果存在不满足条件的可能。
    -----左链接

    --创建产品表
    create table 产品
    (
    产品编号 int not null,
    产品名称 varchar(20) not null
    );

    ------创建产品销量表

    create table 产品销量(
    产品编号 int not null,
    销量 int

    );

    ---左连接-

    select * from 产品 left outer join 产品销量 on 产品.产品编号=产品销量.产品编号


    -----右连接
    select * from 产品 right outer join 产品销量 on 产品.产品编号=产品销量.产品编号;

    子查询

    select * from emp;
    -----查询工资比scott高的

    1.查询scott的月薪
    select sal from emp where ename='SCOTT';

    2.查处高于scott的月薪

    select * from emp where sal >3000;

    3.合并语句:

    select * from emp where sal >(select sal from emp where ename='SCOTT');

    -----工资高于30部门所有人的信息

    1.查出30部门所有人工资:

    select sal from emp where deptno=30;

    2.查询高于30部门所有人工资的员工信息

    select * from emp where sal>all (select sal from emp where deptno=30);

    ----查询工资与scott完全相同的信息

    1.查询SCOTT的月薪

    select sal from emp where ename='SCOTT';

    2.查询工资与scott完全相同的信息

    select * from emp where sal in (select sal from emp where ename='SCOTT');

  • 相关阅读:
    第十六节:Linq用法大全(四)
    第十五节:EF Core大数据量处理(一)之EFCore.BulkExtensions
    第十四节:EF Core性能优化
    查看mysql执行的线程,并杀掉他
    docker安装与卸载
    新手根据菜鸟教程安装docker,从No package docker-io available开始遇到的坑...(转)
    MySQL启动出现The server quit without updating PID file错误解决办法
    Linux下彻底卸载mysql详解
    Linux 下的 Redis 安装 && 启动 && 关闭 && 卸载
    Linux安装mysql
  • 原文地址:https://www.cnblogs.com/colos/p/9961756.html
Copyright © 2020-2023  润新知