MySQL(四)--蠕虫复制、查询

时间:2023-01-29 17:51:06

1 蠕虫复制

  • 蠕虫复制:从已有的数据中去获取数据,然后将数据又进行新增操作,数据成倍增加。
  • 表创建高级操作:从已有创建新表(复制表结构)
create table 表名 like 数据库.表名;

MySQL(四)--蠕虫复制、查询

  • 蠕虫复制:先查出数据,然后将查出的数据新增一遍。
insert into 表名 [(字段列表)] select 字段列表/* from 数据表名;
  • 蠕虫复制的意义
    • 从已有表拷贝数据到新表中
    • 可以迅速的让表中的数据膨胀到一定的数量级:测试表的压力以及效率。  

2 查询

  • 基本语法
select 字段列表/* from 表名 [where 条件];
  • 完整语法
select [select 选项] 字段列表 [字段别名]/* from 数据源 [where 条件子句] [group by 子句] [having 子句][order by子句][limit 子句];
    • select选项:select对查出来的结果的处理方式。
      • all :默认的,保留所有的结果。
      • distinct:去重,查出来的结果,将重复给去除(所有字段都相同)。     
  • 字段别名
    • 当数据进行查询出来的时候,有时间名字并不一定就满足需求(多表查询的是偶,会有同名字段),需要对字段进行重命名。  
字段  [as]  别名;
  • 数据源
    • 数据源:数据的来源,关系型数据库的来源都是数据表,本质上只要保证数据类似二维表,最终都可以作为数据源。 
    • 数据源分为:
      • 单表数据源
select * from 表名;
      • 多表数据源(笛卡尔积)    
select * from 表名1,表名2,……;
  • where子句
    • 用来判断数据,筛选数据。
    • where子句返回结果:0(代表false)或1(代表true)。 
    • 判断条件:
      • 比较运算符:>、<、>=、<=、!=、<>、like、between and、in、not in
      • 逻辑运算符:and、or、not 
    • where原理:where是唯一一个直接从磁盘获取数据的时候就开始判断的条件,从磁盘取出一条记录,开始进行where判断,判断的结果如果成立就保存到内存,如果失败直接放弃。  
  • group by子句
    • group by:分组,根据某个字段进行分组(相同的放一组,不同的分到不同的组) 
    • 分组的意义:是为了统计数据(按组统计:按分组字段进行统计)。 
  • having子句
    • having子句:where是针对磁盘数据进行判断,进入到内存之后,会进行分组操作,分组结果就需要having来处理。
    • having能够使用字段别名:where不能,where是从磁盘  
  • order by子句
    • 根据某个字段进行升序或降序排序,依赖校对集。
    • 语法:
      • order by 字段名 [asc|desc];    
  • limit子句
    • limit子句是一种限制结果的语句:限制数量。
    • 两种方式:
      • 只用来显示长度:limit 数据量;
      • 分页:limit m,n;m--起始页码 n--每页显示条数。