Linux环境下MySQL数据库DDL库操作入门指南

前言

在之前的文章中,我们深入钻研了MySQL的基础知识点,为大家搭建了扎实的理论框架。当下,我们将目光聚焦于MySQL中最为基础且至关重要的操作之一——数据库层面的数据定义语言(DDL)操作,这是每一位数据库开发者与管理者必须熟练掌握的技能。

库级别的DDL操作是构建和管理数据库系统的基石,它涉及数据库对象的创建、修改以及删除。通过本文,我们将细致讲解如何高效地开展数据库的管理工作,具体包含:

  1. 创建数据库的基本语法与注意事项

  2. 选择和切换数据库的正确方法

  3. 修改数据库的字符集与校对规则

  4. 安全有效地删除数据库

接下来,我们逐步揭开MySQL库操作的神秘面纱,助力读者全面掌握这些核心技能。

1.创建数据库

我们从数据库的创建入手,相信看过上篇文章的读者对常见数据库已有初步了解,上篇仅为让大家快速入门,今日才是对其的正式讲解。下面先来看创建数据库的语法。

1.1.语法

CREATE DATABASE [IF NOT EXISTS] db_name   #[]表示可选内容
    [create_specification [,create_specification] ...]
#create_specification:
    #[DEFAULT] CHARACTER SET charset_name
    #[DEFAULT] COLLATE collation_name   此为后续会涉及的字符集相关内容

或许不少读者看到该语法会觉得有些晦涩,小编当初学习时也有类似感受,所以我们先从创建数据库的简单形式开始。

1.2.创建最简数据库

create database boke_1;  #最简单的情况,需留意mysql语句末尾要加分号,如同编写C++代码。

这条命令用于创建名为boke_1的数据库。然而,这样写并不规范,存在一个隐患:若text_1此前已被创建,服务器会直接报错,若用于自动化部署脚本,会导致脚本中断,这是较为严重的问题,所以创建数据库时,利用第一个[]内的内容可设置第一道防护。

1.3.第一道防护:安全保障——IF NOT EXISTS

设想你在编写可反复运行的初始化脚本,必然不希望每次运行都因数据库已存在而失败。这时,我们的第一个“助力者”登场啦:IF NOT EXISTS。因此我们可对之前的代码进行完善。

CREATE DATABASE IF NOT EXISTS boke_1;

该语句的作用是:若boke_1数据库已存在,便不会执行创建操作,避免因重复创建数据库引发错误;若数据库不存在,mysql会创建该数据库。如此可确保脚本多次执行时不会因数据库已存在而中断。

1.4.第二道防护:明确语言环境——设置字符集与校对规则

虽然目前我们能安全创建一个数据库,但若对数据存储的语言和排序规则有要求,比如要存储中文、支持多语言,或期望比较字符串时不区分大小写,那么就不能忽视另一个关键参数——字符集(Character Set)与校对规则(Collation)

1.4.1.为何设置字符集

字符集决定了数据库存储字符的方式,例如使用utf8可支持几乎所有语言的字符(包括emoji表情😄),而latin1仅适用于英文或西欧语言。

校对规则会影响字符的比较方式,比如是否区分大小写、如何排序。例如:

  • utf8mb4_general_ci:不区分大小写(ci = case-insensitive)

  • utf8mb4_bin:区分大小写(bin = binary)

1.4.2.包含字符集与校对规则的写法

现在完善之前的数据库创建语句。

CREATE DATABASE IF NOT EXISTS boke_1
DEFAULT CHARACTER SET utf8
COLLATE utf8mb4_general_ci;

此语句达成以下几点:

  1. boke_1 不存在则进行创建;

  2. 采用 utf8mb4 字符集存储数据;

  3. 以不区分大小写的方式比较和排序字符串。

这样的写法既安全又规范,是生产环境中较为推荐的做法,不过我后续写博客时,通常不会写后面的字符集和校验准则,会选择使用系统默认的,实际上就是上述所写,我早已在配置mysql时将默认的字符集和校对规则调整好了。【不会配置的可参考我上一篇文章】。

2.字符串与校验规则

尽管之前对字符串和校验规则进行了简要介绍,但我们进一步来看看mysql默认的字符串和校验规则有哪些。

2.1.查看系统默认字符集与校验规则

输入下述代码可查看系统默认的字符集。

show variables like 'character_set_database';
Linux环境下MySQL数据库DDL库操作入门指南

可看到系统当前字符集的设置,此处显示为utf8。

输入下述代码可查看系统默认的校验规则。

show variables like 'collation_database';
Linux环境下MySQL数据库DDL库操作入门指南

可看到系统默认的校验规则。

2.2.查看数据库支持的字符集

或许很多读者好奇数据库支持多少种字符集,输入下述代码即可查看支持的字符集,种类较为丰富。

show charset;
Linux环境下MySQL数据库DDL库操作入门指南

支持的字符集较多,不过我还是建议大家使用默认的utf8,因其具备较好的通用性,使用起来较为便捷。

2.3.查看数据库支持的字符集校验规则

在了解了数据库可支持的字符集后,我们也不能忽视字符集校验规则,同样,一行代码就能知晓。

show collation;
Linux环境下MySQL数据库DDL库操作入门指南

上述为截取的部分内容,实际上数据库支持的字符校验规则十分多样,不过我依旧秉持观点,使用默认的即可,除非遇到特殊情形,再进行相关设置。

3.操作数据库

接着我们继续开展数据库相关的基本操作。当创建了多个数据库后,有时需要查看当前系统中已有的数据库数量。此时,我们会用到数据库操作中的第一条指令——查看数据库

3.1.查看数据库

show databases;

上述指令用于查看当前的数据库,如同下图所示。

Linux环境下MySQL数据库DDL库操作入门指南

3.2.显示创建语句

有时想了解某个表的创建细节,可输入下述语句查看创建语句的详情。

show create database 数据库名;
Linux环境下MySQL数据库DDL库操作入门指南

3.3.修改数据库

有时想修改数据库的字符集或校验规则,输入下述指令即可进行修改。

ALTER DATABASE 数据库名 CHARACTER SET 字符集名 COLLATE 校验规则名;

例如,若要将数据库mydb的字符集修改为utf8mb4,校验规则修改为utf8mb4_general_ci,可执行以下命令。

ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

需要注意的是,修改字符集和校验规则可能会对数据库中已有的数据产生影响,尤其是涉及排序和比较的操作时。因此建议在操作前备份数据库,并确认修改后的字符集和校验规则是否契合当前数据需求。

3.4.删除数据库

有时之前创建的数据库不再适用,需要将其删除(不过一般不建议轻易删除,存在一定风险),不过很多读者可能想了解该指令,所以我还是进行讲解。

drop database [if exists] 数据库的名字;

[]内的内容功能与创建数据库时相同,用于确保不会删除不存在的数据库,若没有该内容且删除不存在的数据库,系统会报错,有了该内容可降低自动化脚本的风险。

3.5.查看数据库的连接情况

有时可能有多个用户访问我们的mysql,输入下述指令可知晓当前有哪些用户连接到服务器,若发现某个用户并非正常登陆,很可能数据库已被入侵。日后大家发现数据库运行缓慢时,可使用该指令查看连接情况。

show processlist;
Linux环境下MySQL数据库DDL库操作入门指南

4.小结

在本文中,我们深入探究了MySQL中数据库库级别的基本操作,包括数据库的创建、字符集与校对规则的配置、以及数据库的管理与操作。通过一系列实际操作示例,我们掌握了如何:

  1. 运用简单语法创建数据库,并通过 IF NOT EXISTS 避免重复创建错误;

  2. 配置数据库的字符集与校对规则,以确保数据库能支持多语言和特定的字符比较需求;

  3. 使用基本的查询和修改语句,查看数据库信息、修改数据库的字符集与校对规则、以及删除数据库;

  4. 在数据库管理中规避潜在错误,保障操作的安全性与稳定性。

掌握这些基础操作不仅有助于提升日常数据库开发与维护的效率,还为后续更高级的数据库优化与管理奠定了坚实基础。在实际工作中,需根据具体需求灵活运用这些操作,尤其是构建自动化脚本和管理多个数据库时,更要确保操作的精准性与安全性。希望本文的分享能为您的MySQL数据库操作提供助力与指导。学习的时光总是短暂的,各位大佬们,咱们下篇文章再见!

Linux环境下MySQL数据库DDL库操作入门指南
版权声明:程序员胖胖胖虎阿 发表于 2025年7月20日 下午11:58。
转载请注明:Linux环境下MySQL数据库DDL库操作入门指南 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...