zoukankan      html  css  js  c++  java
  • 数据库04

    基本的查询语句

      select (* | 字段名 | 四则运算 | 聚合函数) from 表名称;

      取别名 当字段名显示较长时可以添加别名

        select 字段名 as 别名 from 表名称;

        as 可以省略

        select 字段名 别名 from 表名称;

      insert into 表名称(字段,.....)

      values(值....),(值....);

        values中的值的个数和类型必须与前方声明的字段一致

      insert into 表名称 values(值....);

        values中的值的个数和类型必须与表的字段完全一致

      into 可以省略

      delete from 表名 where 条件;

      delete form 表名;

      truncate table 表名;

      update 表名 set 字段名称 = 新值 where 条件;

      update 表名 set 字段名称 = 新值[字段1 = 值1,]

    select语句的完整语法:

      select [distinct] (* | 字段 | 四则运算 | 聚合函数) from 表名

        where 查询条件

        group by 分组

        having 分组后的过滤

        order by 排序

        limit 限制获取的条数

      强调:书写顺序必须按照上面的来,执行顺序与书写顺序不一致

    where 自查询

      = > < >= <= !=(<>)

      in  数据在不在一个范围内

      between and  数据在不在指定的范围内

      like  模糊匹配  % 任意个任意字符 _ 一个任意字符

      and or not

    group by 分组查询

      把一个整体按照某个标识分成不同的部分,通常分支为了统计数据

      语法:select * from 表名 group by 字段;

      强调:用于分组的字段应该时重复度高的

      一旦分组后,组内的详细数据就被隐藏了,无法直接查看但是要知道分组不是为了查看而是为了统计,分组后就只能看到分组的那个字段

    聚合函数(统计函数)

      给他一段数据,他统计完成后放回一个数据

      sum  求和

      avg  平均值

      max  最大值

      min  最小值

      count  计数

      group_concat()    字符串拼接

      聚合函数不能用在where后面

      如果要对分组数据进行过滤,必须使用having

      因为where在执行时,数据还没有读完,必须等到数据读完之后再进行过滤

      where 与 having 的区别就在于执行的时间不同

      group by总结:

        where 后不能有聚合函数

        select 后面的字段必须出现再group by的后面

        通常聚合函数会与group by 连用

        如果要对分组数据进行过滤必须使用having

        having与where都是过滤但是执行时间不同

    order by 

      排序 默认(asc)为升序

      select * from 表名 order by 字段 (asc);

      用desc来指定为降序

      select * from 表名 order by 字段 desc;

    limit 控制要查询的记录数量

      select * from 表名 limit a,b;

      a 表示起始位置

      b 要获取的条数

      如果只有a表示获取的条数

      分页显示

        总条数/每一页条数 = 页数 有余数 页数+1

        ( 页数 - 1 )* 每页条数 = 起始位置

    正则表达式匹配(用于模糊匹配)

      语法:select * from 表名 where 字段  regexp "表达式";

      like 只有 % 和 _ 没有regexp灵活

    多表查询

     1 笛卡尔积查询

      积表示乘积的意思

      把两个表中的所有数据,全部建立关联关系

      总数据量为两个表数据量的乘积

      可以保证肯定有一条关联关系是正确的,但是会产生大量错误数据

      需要过滤处理

      select * from 表名1,表名2 where 对应关系;

      

     2 内连接查询

      inner(可以忽略) join on

      语法:select * from 表名1 join 表名2 on 对应关系;

      on == where 只能用于连接查询

      如果是用来筛选匹配关系建议使用on,在连接查询中必须使用on

      左外连接查询

        使用 left join

        左表无论是否匹配,都全部显示,右表仅显示匹配成功的

      右外连接查询

        使用 right join

        右表无论是否匹配,都全部显示,左表仅显示匹配成功的

      全外连接查询

        左右两边,无论是否匹配都要显示

        mysql 中不支持全外连接,oracle中为full join

        mysql可以通过union合并查询来合并左外连接和右外连接的查询结果

        union默认取出重复 加上all 去除重复

        在使用union语句,必须使两个字段数量相同的情况下

    三表查询

      语法:select * from 表1 join 表2 join 表3 on 对应关系;

      1 先把三个表全部连接在一起

      2 用on来筛选正确关系

      3 通过where添加额外的条件

  • 相关阅读:
    加入Tomcat插件到ECLIPSE中的方法
    Coursera, Big Data 5, Graph Analytics for Big Data, Week 4
    视觉技术在列车上的应用场景
    AWS Data Analytics Fundamentals 官方课程笔记
    AWS Data Analytics Fundamentals 官方课程笔记
    spark 新建一个column并用另一column的最大值赋值
    AWS Cloud Practioner 官方课程笔记
    spark 自定义 accumulator
    windows 上用 VS Code 编译 C/C++
    spark 问题
  • 原文地址:https://www.cnblogs.com/LinChengcheng/p/10553950.html
Copyright © 2011-2022 走看看