1、创建一个指定名字的数据库

create database mysql_db;
mysql> create database mysql_db;
Query OK, 1 row affected (0.04 sec)

2、创建一个指定字符集的数据库

create database mysql02 charset utf8MB4;
mysql> create database mysql02 charset utf8MB4;
Query OK, 1 row affected (0.00 sec)

注意:MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。

utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢?

答案:原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等。

总结:MySQL的utf8是utfmb3,只有三个字节,节省空间但不能表达全部的UTF-8。所以推荐使用utf8mb4。

3、创建一个指定校对集的数据库

create database mysql03 charset utf8MB4 collate utf8nib4_general_ci;

utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。

utf8mb4_general_ci:ci即case insensitive,不区分大小写。没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。

utf8mb4_unicode_ci:是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。

utf8mb4_general_ci是一个遗留的 校对规则,不支持扩展,它仅能够在字符之间进行逐个比较。utf8_general_ci校对规则进行的比较速度很快,但是与使用 utf8mb4_unicode_ci的校对规则相比,比较正确性较差。

总结:general_ci 更快,unicode_ci 更准确。但相比现在的CPU来说,它远远不足以成为考虑性能的因素,索引涉及、SQL设计才是。使用者更应该关心字符集与排序规则在db里需要统一。(可能产生乱码的字段不要作为主键或唯一索引。例如:以 url 来作为唯一索引,但是它记录的有可能是乱码。)

数据库的创建是存储数据的基础,数据库的创建通常是一次性的2、创建数据库的语法包含几个部分

create database·数据库名字:自定义名字

数字、字母和下划线组成I。不区分大小写

数字不能开头

使用下划线法创建复杂数据库名字数据库选项:非必须的规定

字符集: charset /character set 字符集。非必须,默认继承DBMS。

校对集: collate校对集。非必须,依赖字符集

显示数据库: show databases;

显示创建数据语句:

show create database mysqldb;
mysql> show create database mysqldb;
±---------±-------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
±---------±-------------------------------------------------------------------------------------------------------------------------------+
| mysqldb | CREATE DATABASE mysqldb /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci / /!80016 DEFAULT ENCRYPTION=‘N’ */ |
±---------±-------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

使用数据库:use 数据库名称

mysql> use mysqldb;
Database changed

mysql>

修改数据库:

修改数据库:修改数据库的相关库选项

数据库名字不可修改

数据库修改分为两个部分。

字符集

1、修改数据库字符集

a1lter database mysqldb charset gbk;

校对集

2、修改数据库校对集(如果字符集修改必须同时改变字符集)

alter database mysqldb charset gbk collate gbk_chinese_ci;

删除数据库:drop database mysqldb;

注意:1、删除数据库会删除数据库内所有的表和数据;

2、删除数据库操作要慎重;

3、删除数据库后,对应的存储文件夹就会消失删除。