设为首页 加入收藏

TOP

MySQL 基础回顾(二)
2019-09-17 18:54:41 】 浏览:62
Tags:MySQL 基础 回顾
ents group by gender;
  • group by + 聚合函数
    eg: 按性别分别统计年龄的平均值
    select gender, avg(age) from students group by gender;
  • group by + having
    用来分组查询后指定一些条件来输出查询结果, 作用和where一样,但是只能用于group by
    select gender,count() from students group by gender having count()>2;
  • gounp by + with rollup
    with rollup作用: 最后新增一行,来记录当前列里所有记录的总和
  • 连接查询多表查询 join 表连接原理: 笛卡尔积
    • 内连接
    • 右连接 在内连接的基础上添加右表数据,右表中没有的数据字段使用null填充
    • 左连接 在内连接的基础上添加左表数据,右表中没有的数据字段使用null填充
  •     # 笛卡尔积 在其他数据库中内连接和笛卡尔积石油区别的,在mysql中 join 和 inner join 是一样的
        select * from table1 [inner] join table2;   

    条件查询(on子句 过滤笛卡尔积)

    语法: select * from table1 inner|left|right join table2 on table1.field = table2.field

    1. 自关联
      应用场景 区域信息,分类信息(如淘宝分类栏,大类,小类,具体分类)

    2. 子查询
      • 标量子查询 一行一列
        子查询的结果是一个标量
        eg: 查询大于平年龄的学生
      select * from students where age > (select avg(age) from students);
      • 列子查询 返回的结果是一列多行
      • 行子查询 返回的结果是一行多列
        行元素: 将多个字段合成一个行元素,在行级子查询中会使用到行元素
      select * from students where (height, age) = (select max(height),max(age) from students);

      主查询和子查询的关系
      · 子查询是嵌入主查询的
      · 子查询要么充当条件,要么作为数据源
      · 子查询也是一条完整的select语句

    3. 事务
      事务是多个SQL语句操作的序列,这些操作要么都执行,要么都不执行,如有有一个失败,便回滚到原始状态
      应用场景: 充话费,银行转账,地铁卡充值等
    • 原子性 Atomicity
    • 一致性 Consistency
    • 隔离性 Isolation
    • 持久性 Durability

      1??只有针对表的insert, update, delete 才能使用事务进行管理
      2??终端修改数据的命令会自动触发事务, insert, update, delete
      3??如果需要将自动开启的事务改为手动提交 关闭自动 set autocommit=0;

    其他

    1?? ubuntu mysql 终端无法输入中文解决方法

    export LANG=en_US.UTF-8 # 修改本地用户的字符集即可

    2?? 数据库默认字符集为utf8 只能存储3个字节的数据,标准的emoji表情是4个字节,所以要支持emoi表情的话就要修改字符集

    utf8 --> utf8mb4 # 前提是mysql版本 > 5.5.3

    mb4: most byte 4,专门兼容四个字节的,utf8mb4是向下兼容utf8的,即使修改了字符集也不会影响线上数据。

    REFER:
    58到家数据库30条军规解读

    首页 上一页 1 2 下一页 尾页 2/2/2
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇数据库的4种常用设计模式 下一篇windows下安装oracle11g测试是否..

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目