• mysql 基础知识三之表格无法识别中文及常用的函数


    1,mysql 表中输入中文无法识别,ERROR 1366 (HY000): Incorrect string value: 'xE5x8FxA3xE8x85x94' for column 'name' at row 

    两个办法解决:

    1.1:

    我们可以在建表的时候带上编码:DEFAULT CHARSET 'utf8'

    如:

    1.  
      CREATE TABLE `students`(
    2.  
      `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    3.  
      `name` VARCHAR(20) NOT NULL,
    4.  
      `nickname` VARCHAR(20) NULL,
    5.  
      `sex` CHAR(1) NULL,
    6.  
      `in_time` DATETIME NULL
       
       
      1.2:

      可以修改表的编码

      alter table 表名 convert to character set utf8;


      2.mysql常见函数
      2.1:avg()平均函数
      例子:select avg(age) from biyadi3; ====>查找所有人的平均年龄
      select avg(age) from biyadi3 where sex='man'; ====》查找所有性别为男性的人的平均年龄。

      2.2:count()
      例子:select count(name) from biyadi3 where sex='男';
      统计性别为男的名字出现总条数
      SELECT COUNT(id) FROM biyadi3;
      统计id有多少条数

      2.3:max()
      SELECT MAX(age) FROM biyadi3;
      表中最大的年龄
      select max(age) from biyadi3 where sex='男';

      2.4:min()
      SELECT MIN(age) FROM biyadi3 WHERE sex='男'
      表中最小年龄的男性。
      select min(age) from biyadi3;
      表中年龄最小的人

      2.5:group by

      2.6:having

      2.7:左连接

      2.8:右连接

      group by,即以其中一个字段的值来分组

      select 的字段只能是分组的字段类别以及使l聚合函数如,max(),min(),count()的字段。

      where在前,group by在后,注意group by紧跟在where最后一个限制条件后面,不能被夹在where限制条件之间。

      where在前,group by在后的原因:要先用where过滤掉不进行分组的数据,然后在对剩下满足条件的数据进行分组。

      having是在分好组后找出特定的分组,通常是以筛选聚合函数的结果,如sum(a) > 100等,且having必须在group by 后面,

      使用了having必须使用group by,但是使用group by 不一定使用having。不允许使用双重聚合函数,所以在对分组进行筛选的时候

      可以用order by 排序,然后用limit也可以找到极值。

       
  • 相关阅读:
    mysql总结
    ContOS7 安装 java1.8
    查找
    排序
    线程通信(交替执行)
    死锁(实现)
    Rank Scores
    OpenMP
    聚类的数据量过大的问题
    编译GraphLab出错
  • 原文地址:https://www.cnblogs.com/star12111/p/13563092.html
Copyright © 2020-2023  润新知