mac端mysql 常用语句和碰到的问题

写在前面

  1. mac版本:macOS Big Sur 11.4 m1版本
  2. mysql版本: mysql Ver 14.14 Distrib 5.7.20, for macos10.12 (x86_64) using EditLine wrapper

1.不能向表中插入中文字符

mysql 之所以无法使用中文是因为默认编码格式中 Server characterset 和 Db characterset 为 latin1.
在进入mysql之后,在命令行输入 : status; 查看当前mysql的编码格式,我这个版本默认都是latin1
那么接下来我们需要将数据库的格式更改为utf-8.
操作步骤

  • 关闭mysql服务。具体的方法:打开mac系统的系统偏好设置,最下方的mysql图标点进去,stop mysql。
    在这里插入图片描述
  • 在 /etc 下新增 my.cnf 文件
    在terminate控制台中输入
    vim /etc/my.cnf
    
    进入配置文件
    将以下内容复制到黑框中(vim 编辑器,不懂得如何操作的自行百度)
    [mysqld]
    character-set-server=utf8
    [client]
    default-character-set=utf8
    

复制进去之后,先按esc退出编辑模式,再按大写Q,之后输入:wq 保存内容并且退出。

  • 重启mysql服务,在进入mysql。status查看mysql就可以看到当前的mysql编码为:
    在这里插入图片描述
    都为utf-8
  • 在设置完以后,一定要重新创建db,重新创建表,才能输入中文,之前创建的db和表依旧不能插入中文。

2.

--  count函数的使用:
		1. count(*) 表示所有行的数目。
		2. count(列名) 表示该列中非null数据的行数
		3. count 和 group by一起使用,就是按照group by 后面的条件对行数进行记数。比如说上面例子,group by dept_id 就表明是按照dept_id 对行进行计数。
		4. distinct 关键字使用:
    1.在count 不重复的记录的时候能用到
    比如SELECT COUNT( DISTINCT id ) FROM tablename;
    就是计算talbebname表中id不同的记录有多少条

    2,在需要返回记录不同的id的具体值的时候可以用
    比如SELECT DISTINCT id FROM tablename;
    返回talbebname表中不同的id的具体的值

    3.上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义
    比如SELECT DISTINCT id, type FROM tablename;
    实际上返回的是 id与type同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得id与tyoe都相同的才被排除了,与我们期望的					结果不一样

    4.这时候可以考虑使用group_concat函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的

    5.其实还有另外一种解决方式,就是使用
    SELECT id, type, count(DISTINCT id) FROM tablename
    虽然这样的返回结果多了一列无用的count数据(或许你就需要这个我说的无用数据)
    返回的结果是 只有id不同的所有结果和上面的4类型可以互补使用,就是看你需要什么样的数据了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值