1.8 补充知识

每次执行指令要进入相应的目录中,麻烦,可以通过环境变量简化操作。

1.8.1 环境变量配置

我的电脑右键——属性——高级

数据库-环境变量配置与校对集_不区分大小写

将mysql指令目录地址添加到环境变量的Path值中

数据库-环境变量配置与校对集_mysql_02

这时候就可以在任意目录下使用mysql指令

数据库-环境变量配置与校对集_不区分大小写_03

原理:

1、输入指令后,首先在当前目录下查找,如果当前目录下找不到,就到环境变量的Path中查找

2、Path中有很多目录,从前往后查找

1.8.2 校对集

1、概念:在某种字符集下,字符之间的比较关系,比如a和B的大小关系,如果区分大小写a>B,如果不区分大小写则a<B。比如赵钱孙李大小关系,不同的标准关系不一样

2、校对集依赖与字符集,不同的字符集的的比较规则不一样,如果字符集更改,校对集也重新定义。

3、不同的校对集对同一字符序列比较的结果是不一致的。

4、 可以在定义字符集的同时定义校对集、 语法:

 collate = 校对集

例题:

定义两个表,相同字符集不同校对集

mysql> create table stu1(
    -> name char(1)
    -> )charset=utf8 collate=utf8_general_ci;
Query OK, 0 rows affected (0.05 sec)

mysql> create table stu2(
    -> name char(1)
    -> )charset=utf8 collate=utf8_bin;
Query OK, 0 rows affected (0.05 sec)

mysql> insert into stu1 values ('a'),('B');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into stu2 values ('a'),('B');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

测试:两个表的数据都是有小到大排序

mysql> select * from stu1 order by name;   -- 不区分大小写
+------+
| name |
+------+
| a    |
| B    |
+------+
2 rows in set (0.08 sec)

mysql> select * from stu2 order by name;   -- 区分大小写
+------+
| name |
+------+
| B    |
| a    |
+------+
2 rows in set (0.00 sec)

小结校对集规则:

_bin:按二进制编码比较,区别大小写

_ci:不区分大小写