mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> create database if not exists test_db;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test_db |
+--------------------+
5 rows in set (0.00 sec)
mysql> create database if not exists test_db;
Query OK, 1 row affected, 1 warning (0.00 sec)
上面的 (0.00 sec) 没多大意义,不用管。
编码集
创建数据库时,有两个编码集:
数据库字符集:(怎么写)
定义数据存储格式的字符编码集,
控制写入/读取时的解析方式。
数据库校验集:(怎么读)
定义数据比较/排序的编码规则,
是底层数据处理的字符编码格式。
数据库执行任何操作时,
需确保该操作涉及的编码始终与数据库编码集保持一致。
查看默认数据库字符集:
sql复制代码
mysql> show variables like 'character_set_database';
+------------------------+---------+
| Variable_name | Value |
+------------------------+---------+
| character_set_database | utf8mb4 |
+------------------------+---------+
1 row in set (0.01 sec)
查看默认数据库校验集:
sql复制代码
mysql> show variables like 'collation_database';
+--------------------+--------------------+
| Variable_name | Value |
+--------------------+--------------------+
| collation_database | utf8mb4_0900_ai_ci |
+--------------------+--------------------+
1 row in set (0.00 sec)
查看不同场景默认的校验集:
sql复制代码
mysql> show variables like 'collation_%';
+----------------------+--------------------+
| Variable_name | Value |
+----------------------+--------------------+
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database | utf8mb4_0900_ai_ci |
| collation_server | utf8mb4_0900_ai_ci |
+----------------------+--------------------+
3 rows in set (0.01 sec)
连接、数据库、服务器,都是 utf8mb4。
查看数据库支持的字符集 show charset;
查看数据库支持的校验集 show collation;
创建数据库时:
没指定字符集和校验集,使用默认的
sql复制代码
CREATE DATABASE my_database;
指定了,就使用指定的
sql复制代码
CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
create database test_db1 collate utf8mb4_0900_ai_ci;
use test_db1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
sql复制代码
create database test_db2 collate utf8mb4_0900_bin;
use test_db2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
找小写的字符 a
sql复制代码
select * from person where name='a';
对于 utf8mb4_0900_ai_ci :
对于utf8mb4_0900_bin :
操控数据库
查看数据库
查看数据库:
sql复制代码
show databases;
查看use了哪个数据库:
sql复制代码
select database();
修改数据库
sql复制代码
ALTER {DATABASE | SCHEMA} [db_name]
alter_option ...
alter_option: {
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
| READ ONLY [=] {DEFAULT | 0 | 1}
}