zoukankan      html  css  js  c++  java
  • mysql

    -- distinct 
    select distinct user_email from `user`;
    
    
    -- order by 字段1 desc/asc[, 字段2 desc/asc]
    -- 默认是asc
    select * from `user` order by user_gender desc, user_id asc limit 10;
    
    
    -- limit N:返回N条记录
    select * from `user` limit 10;
    
    -- offset M:跳过 M 条记录, 默认 M=0, 单独使用不起作用
    select * from `user` order by user_id asc limit 10 offset 10;
    
    -- limit M, N:跳过M条记录,返回N条记录,相当于limit N offset M;
    select * from `user` order by user_id asc limit 10, 20;
    
    -- 简单分页
    #当前第几页
    set @page_number = 2;
    #每页条数
    set @page_size = 10;
    set @offset1 = (@page_number-1)*@page_size;
    -- select * from `user` order by user_id asc limit @page_size offset @offset1;
    -- select * from `user` order by user_id asc limit @offset1, @page_size;
    
    -- 分页性能优化 ?
    
    
    -- between and
    select * from `user` where user_gender between 0 and 1 limit 10;
    
    
    -- where
    -- and/or
    -- = 、 <>/!=、 >、 <、 >=、 <= 
    -- binary 关键字来设定 WHERE 子句的字符串比较是区分大小写的。
    select * from `user` where binary user_email = 'QWERT@qq.com';
    -- where like 匹配/模糊匹配,会与 % 和 _ 结合使用。
    -- %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
    -- _:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
    -- '%a'     //以a结尾的数据
    -- 'a%'     //以a开头的数据
    -- '%a%'    //含有a的数据
    -- '_a_'    //三位且中间字母是a的
    -- '_a'     //两位且结尾字母是a的
    -- 'a_'     //两位且开头字母是a的
    
    
    -- MySQL union 操作符
    -- MySQL union 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
    select * from `user` where user_id between 10 and 30
    union #union all / union   包含重复/删除重复
    select * from `user` where user_id between 20 and 40;
    
    
    -- group by 和 聚合函数
    -- group by X, Y
    -- 聚合函数
    -- max()
    -- min()
    -- sum()
    -- count()
    -- avg()
    select user_idcard, user_gender from `user` group by user_idcard, user_gender;
    #计算总数
    select user_idcard, count(user_idcard) as 'count' from `user` group by user_idcard;
    #求和
    select user_gender, sum(user_gender) as 'sum' from `user` group by user_gender;
    #计算平局值
    select user_gender, avg(user_gender) as avg from `user` group by user_gender;
    -- with rollup 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
    -- 其中记录 NULL 表示所有的次数。
    select coalesce(user_idcard, '总数'), count(user_gender)  as 'count' from `user` group by user_idcard with rollup;
    -- having
    select user_gender, sum(user_gender) as 'sum' from `user` group by user_gender having sum(user_gender) > 20;
    
    
    -- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
    -- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
    -- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
    select * from `user` u inner join `educational` e on u.user_id = e.user_id limit 10;
    select * from `user` u, educational e where u.user_id = e.user_id limit 10;
    
    select * from `user` u left join `educational` e on u.user_id = e.user_id limit 10;
    select * from `user` u right join `educational` e on u.user_id = e.user_id limit 10;
    

      

  • 相关阅读:
    Python---列表相关操作
    PyCharm使用小技巧--git上传代码至远程仓库
    Linux下修改文件权限
    Linux运行jmeter
    Jmeter添加负载机
    git使用
    Linux之12——常用统计命令之uniq
    Linux之11——常用统计命令之sort
    Linux之10——dd命令详解
    Linux之8——性能调优之iostat命令详解
  • 原文地址:https://www.cnblogs.com/gygtech/p/13668081.html
Copyright © 2011-2022 走看看