mysql基础进阶

Posted 小冰棍

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql基础进阶相关的知识,希望对你有一定的参考价值。

常见函数:
    字符函数:
    length 字段字符长度
    concat 连接子串
    substr 截取子串
    instr  插入子串
    trim 两端去空
    upper 变大写
    lower 变小写
    lpad 左填充
    rpad 右填充
    replace 替换
    
    数字函数:
    round 四舍五入
    ceil 向上取整
    floor 向下取整
    mod 取模
    truncate 截断
    rand 返回0-1间的随机小数
    
    日期函数:
    now 返回当前日期+时间
    curdate 返回当前日期
    curtime 返回当前时间
    year
    month
    monthname 以英文形式返回月
    day
    hour
    minute
    second
    date_format 将日期转换成字符
    
    其它函数:
    version 当前数据服务器版本
    database 当前打开的数据库
    user 当前用户
    md5(‘字符‘)  返回该字符的md5加密形式
    
    控制函数:
    1)if
    if(条件表达式,表达式1,表达式2) 如果条件表达式成立,返回表达式1,反之返回2
    select dept_id,
    sum(if (sex=‘男‘,1,0)) male count,
    sum(if (sex=‘女‘,1,0)) female count,
    from emp_sex
    group by dept_id;
      
    2)case
    select dept_id,
    sum(case sex when ‘男‘ then 1 else 0 end) male count,
    sum(case sex when ‘女‘ then 1 else 0 end) female count,
    from emp_sex
    group by dept_id;
 
分组函数:
    sum,avg,max,min,count
    1.sum,avg一般用于处理数值型,max min count 可以处理任何类型
    2.以上分组函数都忽略null值
    3.可以和distinct搭配实现去重运算
    
group by 分组查询:
    1.分组查询中的筛选条件分为两类:
        分组前筛选: 操作数据源
        分组后筛选: 操作分组后的结果集
        1).分组函数作为条件肯定放在having子句中
        2).能用分组前筛选的,优先考虑分组前筛选
    2.group by 可以写多个字段分组,前后无顺序关系
    3.有排序则放在整个分组查询的最后
  
  SELECT * FROM sc GROUP BY sid; 分组后未指定聚合函数,系统默认选择显示sid的第一条数据
        
mysql基础语法:
    select 分组函数,分组后的字段 step5
    from 表1 别名1,表2 别名2 step1
    where 筛选条件 step2
    group by 分组的字段 step3
    having 分组后的筛选 step4
    order by 排序列表 step6
    
sql92语法:
(非)等值连接:
    1.多表等值连接的结果为多表的交集部分
    2.n表连接,至少需要n-1个连接条件
    3.多表的顺序没有要求    4.一般需要为表起别名(起别名后select中不能再写表原始名)
    5.可以搭配前面介绍的所有子句
    
自连接:
    1.一张表当做两张表来看,起不同的别名,查询同一张表中的数据
    语法:
    select 别名1.字段,别名2.字段
    from 表A 别名1,表A 别名2
    where 别名1.字段=别名2.字段
    
sql99语法:
    语法:
    select 查询列表
    from 表1 别名 [连接类型]
    join 表2 别名
    on 连接条件
    [where 筛选条件]
    [group by 分组]
    [having 筛选条件]
    [order by [排序列表]
    
连接类型分类:
内连接: inner
外连接:
    左外:left
    右外:right
    全外:full
交叉连接:cross    
    

以上是关于mysql基础进阶的主要内容,如果未能解决你的问题,请参考以下文章

mysql基础进阶

04 mysql 基础三 (进阶)

01 mysql基础一 (进阶)

lyt经典版MySQL基础——进阶1:基础查询

mysql基础进阶

回炉重造MySQL基础知识