zoukankan      html  css  js  c++  java
  • MYSQL查找总结

     

    a、条件判断where

    select * from 表 where id > 1 and name != 'alex' and num = 12;
    select * from 表 where id between 5 and 16;
    select * from 表 where id in (11,22,33)
    select * from 表 where id not in (11,22,33)
    select * from 表 where id in (select nid from 表)

    b、多条件查询or

    select * from 表 where 列1='' or 列2='';

    c、通配符like(模糊查找、关键字查找)

    select * from 表 where name like 'liu%'  # liu开头的所有(多个字符串)
    select * from 表 where name like 'liu_'  #liu开头的所有(一个字符)
    select * from 表 where name like '%liu_'
    select * from 表 where name like '_liu_'
    select * from 表 where name like '%liu%'
    select * from 表 where name like '_liu%'

    c、限制limit(分页)

    也可以用在选取数据,比如说隔几行取及行数据。

    select * from 表 limit 5;            - 前5行
    select * from 表 limit 4,5;          - 从第4行开始的5行
    select * from 表 limit 5 offset 4    - 从第4行开始的5行

    d、排序 order by ,asc,desc

    select * from 表 order by 列 asc              - 根据 “列” 从小到大排列
    select * from 表 order by 列 desc             - 根据 “列” 从大到小排列
    select * from 表 order by 列1 desc,列2 asc    - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序

    e、范围查询 between  and

    select * from 表 where 列名 between 数1 and 数2    --列名在数1和数2之间的 

    f、离散查询 in

    select * from 表 where price=30 or price=40 or price=50 or price=60  --价格为30或40或50或60的 
    select * from 表 where price in(30,40,50,60)  --价格为30或40或50或60的

    g、聚合查询 count()、sum()、avg()、max()、min()

    select count(*) from 表名   --表里面总共有多少列
    select count(code) from 表名   --表里面code有多少列
    select sum(price) from 表名   --表里面价格的和
    select avg(price) from 表名   --表里面价格的平均价格
    select max(price) from 表名   --表里面最高的价格
    select min(price) from 表名   --表里面最低的价格

    h、去重查询 distinct

    select distinct brand from 表名 --去掉重复的brand列

    i、分组group by

    复制代码
    select num from 表 group by num
    select num,nid from 表 group by num,nid
    select num,nid from 表  where nid > 10 group by num,nid order by nid desc
    select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid
    select num from 表 group by num having max(id) > 10
     
    特别的:group by 必须在where之后,order by之前
    复制代码

    j、组合union、union all

    组合,自动处理重合(去掉相同)
        select nickname from A union select name from B
     
    组合,不处理重合(所有的都显示)
        select nickname from A union all select name from B

    k、连表join

    复制代码
    无对应关系则不显示
        select A.num, A.name, B.name from A,B Where A.nid = B.nid
     
    无对应关系则不显示
        select A.num, A.name, B.name from A inner join B
        on A.nid = B.nid
     
    A表所有显示,如果B中无对应关系,则值为null
        select A.num, A.name, B.name from A left join B on A.nid = B.nid
     
    B表所有显示,如果B中无对应关系,则值为null
        select A.num, A.name, B.name from A right join B on A.nid=B.nid
  • 相关阅读:
    【LeetCode】17. Letter Combinations of a Phone Number
    【LeetCode】16. 3Sum Closest
    【LeetCode】15. 3Sum 三个数和为0
    【LeetCode】14. Longest Common Prefix 最长前缀子串
    【LeetCode】13. Roman to Integer 罗马数字转整数
    【LeetCode】12. Integer to Roman 整型数转罗马数
    【LeetCode】11. Container With Most Water
    【LeetCode】10. Regular Expression Matching
    Models of good programmer
    RSA Algorithm
  • 原文地址:https://www.cnblogs.com/Strive-count/p/5980548.html
Copyright © 2011-2022 走看看