zoukankan      html  css  js  c++  java
  • mysql 单表下的字段操作_查询

    查询的规律

    查询语句限定条件越多,查询范围越小;

    1.整个表

    Select * From 库名.表名
    

    2.整个表的某字段内

    Select id From 库名.表名
    

    3.整个表某字段的范围内

    Select * From 库名.表名 Where id<50;
    

    4.整个表某字段的范围内在限定条目数

    Select * From 库名.表名 Where id<50 Limit 0,10;
    

    总结:
    范围的大小比较关系如下
    1.>2.>3.>4.

    Select指定表和字段查询范围

    指定整个表

    * 是通配符;

    Select * From 库名.表名
    

    指定某几个字段

    Select id,name From 库名.表名
    

    Where指定字段查询范围

    Where 后面可以添加很多查询条件,常用的查询条件如下,在现实中具体使用哪种看应用场景;

    运用关系运算符确定范围查询

    操作符 描述 实例
    = 等号,检测两个值是否相等,如果相等返回true (A = B) 返回false。
    <>, != 不等于,检测两个值是否相等,如果不相等返回true (A != B) 返回 true。
    > 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true (A > B) 返回false。
    < 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true (A < B) 返回 true。
    >= 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true (A >= B) 返回false。
    <= 小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true (A <= B) 返回 true。

    Example:

    Select * From 库名.表名 Where id<50;
    

    In 包含判断查询

    select * from secondweek.test1_tb where id in(1,2);
    

    id not in(1,2)不查括号里面包含的

    select * from secondweek.test1_tb where id not in(1,2);
    

    字符串包含 example:

    select * from secondweek.test1_tb where addr in("北京");
    

    Between X and Y符合连续数值范围内查询

    select * from secondweek.test1_tb where id between 1 and 3;
    

    Is NULL 空值判断查询

    Mysql列中的空值(NULL)不同于0,也不同于空字符串;
    可以使用 Not 关键字;

    select * from secondweek.test1_tb where regTime is Null;
    

    Distinct 去重查询

    假设有多个重复,那么他留存唯一的标准是什么?留第一条;
    使用distinct命令时需要放在查询条件的开头;

    原本表结构:

    select distinct password,email from secondweek.test1_tb;
    

    去重后的表结构:
    如果是使用了多个列字段,就根据一行与一行来比较,不是单个;如果只是单列去重,那么和Group By 字段名;没啥区别;

    Group By 单列去重

    单字段去重效果好,因为Group By sex, sex列就作为分组标准,男为一组,女为一组,结果就会只显示男、女两组。可以作为单列去重使用;

    原表:

    去重后:

    select password,email from secondweek.test1_tb Group By password;
    

    Distinct 去重后:

    select Distinct password,email from secondweek.test1_tb;
    

    Group By结合聚合统计函数Having查询

    Group By 字段; 这列字段就会被作为分组,不能有重复;分组之后可以求字段中最大、最小、平均值、每组数量...

    example:

    select Count(sex),sex from secondweek.test1_tb Group By sex;
    

    结合Having 关键字:
    Having 和 Where类似都是对查询结果进行过滤用;

    区别在于,Having后面可以跟着聚合函数,而Where不能;

    Having一般都和Group By一起使用,对分组后的结果进行过滤;

    select Avg(salary),sex from secondweek.test1_tb Group By sex having Avg(salary)>=5900;
    

    Like 模糊查询

    模糊查询支持使用通配符;常用通配符有*%_、...

    % example:
    % 百分号通配符可以匹配任意长度的字符,包括空字符串;

    # 知道固定头
    select * from secondweek.test1_tb where username Like "zhao%";
    
    # 知道固定尾
    select * from secondweek.test1_tb where username Like "%qi";
    

    模糊搜索example:

    _ 单个字符匹配example:
    _下划线通配符只能匹配单个字符,要想匹配多个,就得用多个下划线;

    select * from secondweek.test1_tb where username Like "lis_";
    

    And 并列多条件查询

    Select * From 库名.表名 Where id<50 and sex=0;
    

    Or 或条件查询

    Select * From 库名.表名 Where name="lisi" or sex=0;
    

    Limit 限定查询结果的数量

    Select * From 库名.表名 Where id<50 Limit M[,N];
    
    # M 是偏移变量,默认从0开始,如果指定查询结果为 lisi,wangwu,zhaoliu,chenqi,  lisi是0,如果M=2,就从zhouliu开始;
    # N 是记录数,表示显示出几条数据;
    
    Select * From 库名.表名 Where id<50 Limit 0,10;
    

    复合条件查询

    根据应用场景,将上述查询条件语句进行嵌套、并列一起使用,叫做复合条件查询;


    # 聚合(统计)函数 > 列举一些常用聚合函数;一般和Order by 结合使用;
    • AVG() --- 求某一列平均值
    • COUNT() --- 统计总行数
    • SUM() --- 计算列总和
    • MIN() --- 求某一列的最小值
    • MAX() --- 求某一列的最大值

    # Order By对查询结果排序 > 先确定以某列为基准进行排列;

    可以使用Order By将某列定为基准,然后排序;

    ASC 升序

    select * from secondweek.test1_tb Order By salary ASC;
    

    DESC 降序

    select * from secondweek.test1_tb Order By salary DESC;
    


    # 查询时使用别名 > as 可以省略;

    为表取别名

    查询时使用表名的别名,可以省略写全称的麻烦,在多表操作的时候需要写多个表名时,有点应用场景;

    select id,username,password from secondweek.test1_tb as tb where tb.id > 2;
    
    # or
    
    select id,username,password from secondweek.test1_tb tb where tb.id > 2;
    

    为字段取别名

    原本查询出来的列名都是创建时定义好的,查询时可以使用别名展示出来;

    表原来结构:

    select id,username myuaer,password as ps from secondweek.test1_tb;
    

    修改成别名展示:

  • 相关阅读:
    ElasticSearch搜索引擎安装配置拼音插件pinyin
    ElasticSearch搜索引擎安装配置中文分词器IK插件
    Linux系统中ElasticSearch搜索引擎安装配置Head插件
    阿里云服务器Linux系统安装配置ElasticSearch搜索引擎
    盒子模型
    div与span的区别
    .与localhost与 .sqlexpress的区别
    C#-多态
    C#-里氏转换
    C#-继承
  • 原文地址:https://www.cnblogs.com/mysticbinary/p/12865746.html
Copyright © 2011-2022 走看看