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

1,mysql 表中输入中文无法识别,ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xA3\xE8\x85\x94' 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也可以找到极值。

     
posted @ 2020-08-26 08:46  知识在于点滴的积累  阅读(245)  评论(0编辑  收藏  举报