DOS环境下MySQL使用及不同字符集之间的转换

时间:2024-04-07 19:36:19

mysql -uroot -p;
show databses;
创建数据库\c;
create database webclass;
use webclass;
创建表并设置好各字段的属性\c
create table stu(id int(10) primary key auto_increment,sname char(30) not null,sex tinyint(1) default 0,qq varchar(255)) default character set utf8 engine myisam;
向表中插入数据\c
insert into stu (sname,sex,qq) values ("李四",1,3212414);
insert into stu (sname,sex,qq) values ("李玉",0,7373476);
insert into stu (sname,sex,qq) values ("小飞",1,74746637);
insert into stu (sname,sex,qq) values ("张美",0,8438284);
insert into stu (sname,sex,qq) values ("张三",1,8472388);
insert into stu (sname,sex,qq) values ("李华",1,1323232);
insert into stu (sname,sex,qq) values ("赵启",1,9289342);
查询表的属性\c
desc stu;
查询表中的内容\c
select * from stu;
不推荐这种带*的查询方式\c
select * from stu
where sname = "李四";
select sname,sex from stu;
模糊查询\c
select * from stu where sname like "李%";
insert into stu(sname,sex,qq) values("张玉梅",0,83483838);
select * from stu where sname like "%玉%";
用关键字代替表中的内容,如sex=1代表男生\c
select if(sex,"男生","女生"), sname,sex from stu;
更清楚的表达\c
select if(sex,"男生","女生") as stusex,sname,sex from stu;
字段连接的表示\c
select concat("姓名:",sname," 性别:",sex," QQ:",qq) from stu;
更换表头的名称\c
select concat("姓名:",sname," 性别:",if(sex,"男","女"),"QQ:",qq) as stuinfo from stu where sex=0;
limit 语句的使用\c
修改表追加字段\c
alter table stu add birday date;
update table stu birday=1992/2/23;
从第二条语句开始查询\c
最好在排序后再进行查找\c
select sname,birday from stu limit 1,1;
年龄第二大的学生的出生日期\c
selece sname,birday from stu order by birday asc limit 1,1;
防止遗漏数据,年龄一样的大学生的信息防止遗漏\c
select sname,birday from stu where birday<=(select birday from stu order by birday asc limit 1,1)

二进制
binary,varbinary, blob
声音、图像等二进制数据
与字符集无关
0xaa 0xbb

header("content-type:image/jepg");乱码
oxaa oxbb oxaf oxfe
image   把图形当成普通文本来显示 文本 乱码

非二进制
char,varchar,text 字符集UTF8 gbk gb2312 big5 字符校对规则

字符集的概念(存储字符的仓库)
gbk gbb2312 utf8

oxfe oxfa
简体的新华字典 gb2312
繁体的新华字典 big5

gb2312编码 :6700多个汉字   2个字节
big5编码   :繁体字符集 * 香港 使用繁体 13000多个汉字 大五码
gbk编码 :21000多个汉字 简体+繁体 日本片甲
utf8字符集编码 (万国码) :可以在一个页面中体现多个语种,多个国家的文字内容 1-3字节 a 1字节   盾3个字节
unicode编码 万国码 :国际标准化组织制定一套涵盖世界上所有语种、所有符号的编码方案

如果是国内站的话,可以使用GBK就够用了;
如果做的事国外站,对语言要求的比较多,使用UTF8;
   
字段指定了字符集没有指定校对规则  utf8

如果指定了校对规则,没有指定桀骜对规则,也没有指定字符集  依据表的字符集与校对规则

表没有指定   依据库的字符集    -->> 最好在创建表的时候指定字符集

库没有指定  mysql的默认字符集与校对规则

set names gbk   小型数据库,可以使用这种形式

addslashes  转移函数,新手使用,尽量少使用

show character set ;查看字符集是否存在

查看环境变量
show variables like "%character%";
查看校对规则
show variables like "%collation%";

set names gbk  设置前三个的

character_set_client     | gbk     客户端的字符集
 character_set_connection | gbk
 character_set_results    | gbk 结果集的字符集,转换完成后给客户端(UTF8转换GBK)从网页发来的信息转换到客户端里
连接最好与客户端保持一致;

character_set_database   | utf8
character_set_filesystem | binary

character_set_server     | latin1 默认操作字符集
 character_set_system     | utf8

继承关系:
字段-> 表-> 库-> MYSQL服务器