数据基础操作
-
插入操作(增)
本质含义:将数据以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服务令其生效