MYSQL学习笔记04:数据操作-增删改查, 字符集

数据基础操作

  • 插入操作(增)

本质含义:将数据以sql的形式存储到指定数据表(字段)里面

向表中指定字段插入数据

insert into 表名 [(字段列表)] values (对应字段列表);

1. 注意:插入的数据值和字段列表相对应即可(不一定和表结构完全一致)

2.注意:字段列表不一定非要有所有表中字段(可插入部分字段)

向表中所有字段插入数据

insert into 表名 values (对应表结构); //值列表必须与字段列表一致(相对应)

 

  • 查询操作(查)

查询表中所有数据:

select * from 表名; /* *号表示匹配所有字段*/

查询表中指定字段:

select 字段列表 from 表名; //字段列表使用逗号隔开

简单条件查询:

select 字段列表/* from 表名 where 字段名=值;

上述代码扫描全表,筛选出年龄=30岁的人的名字.

  • 删除操作(删)

delete from 表名 [where 条件];

注意:如果没有指定where条件,则删除表中所有数据(!慎用!)

  • 更新操作(改)

更新:将数据进行修改(通常是修改部分字段数据)

update 表名 set 字段名=新值 [where 条件];

注意:如果没有指定where条件,那么该字段下所有数据都会被修改成统一值!一定要谨慎!!

上述代码更改名为'Han'的老师年龄为28.

字符集

字符编码概念

字符集概念

设置客户端所有数据集

如果直接通过cmd下的mysql.exe进行中文数据插入,那么可能出错,如下:

解决方案:mysql.exe客户端在进行数据操作之前将自己所使用的字符集告诉mysqld.exe

cmd下的mysql.exe默认都只有一个字符集.GBK

mysql.exe如何告诉mysqld.exe,自己使用的字符集是GBK呢?

 set names 字符集;

重新进行数据插入:

深层原理:

客户端,服务端,连接层

show variables like 'character_set%';

查看1个新的客户端对应的字符集关系:

新的客户端(上图右半部分)和已打开的客户端(上图左半部分,设置过set names的)明显有差异.

修改服务器端变量的值:set 变量名 =值;

现在我们更改客户端字符集为gbk(因为windows cmd窗口永远是gbk编码),输入:set character_set_client=gbk;

插入一条中文数据;查表,出现乱码,如下图:

其实中文数据已正确插入表中,乱码的原因是返回默认值character_set_results是utf8,将其改为gbk即可.

set character_set_results=gbk;//让服务器返回gbk,便于windows下mysql客户端(gbk编码)正确识别.

现在可以msyql客户端可以正确显示中文数据了(不再乱码)

小结:

 -- 查看系统保存的三种关系处理字符集
 show variables like 'character_set%';
 
 -- 修改变量--关于客户端字符集的
 set character_set_client=gbk; -- 设置客户端字符集为gbk.可正确插入中文数据
 set character_set_results=gbk; -- 设置服务器返回给客户端的字符集为gbk.可正确显示中文数据
set character_set_connection=gbk; -- 设置连接为gbk 更好的帮助客户端与服务端字符转换.不设置也是可以的
 -- 由于windows下的cmd窗口编码永远是gbk,因此我们必须正确设置gbk字符集,才能正确插入/显示数据
 
 
-- 也可以用set names gbk一次指定以上3种变量
set names gbk;

修改mysql默认字符集:客户端和服务器端

1. 在my.ini文件中找到[client]和[mysqld]字段,在下面均加上default-character-set=utf8,保存并关闭

  • [mysql]
  • default-character-set=utf8
  • [mysqld]
  • character-set-server=utf8

2. 重启mysql服务令其生效

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值