{"content":{"title":"数据库入门：掌握MySQL数据库的五大基本操作，轻松驾驭数据世界！","body":"> 对数据库进行查询和修改操作的语言叫做 SQL（Structured Query Language，结构化查询语言）。SQL 语言是目前广泛使用的关系数据库标准语言，是各种数据库交互方式的基础。\r\n\r\n在之前的文章中，我们已经掌握了SQL语言的基本概念以及常用的DDL（数据定义）和DML（数据操作）语句。接下来，我们将探讨如何运用这些知识进行MySQL数据库的操作。在本篇文章中，我们将详细介绍基本的增、删、改、查等操作方法。\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700190500-GYbXDt.jpg)\r\n\r\n首先我们来回顾一下标识符命名规则：\r\n\r\n* 数据库名、表名不得超过30个字符，变量名限制为29个。\r\n* 必须只能包含 A–Z, a–z, 0–9, \\_共63个字符。\r\n* 数据库名、表名、字段名等对象名中间不要包含空格；\r\n* 同一个MySQL软件中，数据库不能同名；同一个库中，表不能重名；同一个表中，字段不能重名。\r\n* 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用，请在SQL语句中使用\\`（着重号）引起来。\r\n* 保持字段名和类型的一致性：在命名字段并为其指定数据类型的时候一定要保证一致性，假如数据类型在一个表里是整数，那在另一个表里可就别变成字符型了。\r\n\r\n下面我们来看数据库的基本操作。\r\n\r\n## 一、创建数据库\r\n\r\n在 MySQL 中，可以使用 `CREATE DATABASE `语句创建数据库，下面我们介绍三种创建数据库的方式：\\\r\n**方式1：创建数据库 ( 数据库名存在时，会报错 )**\r\n\r\n```\r\nCREATE DATABASE 数据库名;\r\n```\r\n\r\n\r\n\r\n**方式2：创建数据库并指定字符集 ( 数据库名存在时，会报错 )**\r\n\r\n```\r\nCREATE DATABASE 数据库名 CHARACTER SET 字符集;\r\n\r\n('不指定字符集会选择默认字符集')    \r\n```\r\n\r\n\r\n\r\n**方式3：判断数据库是否已经存在，不存在则创建数据库 （推荐）**\r\n\r\n```\r\nCREATE DATABASE IF NOT EXISTS 数据库名;\r\n```\r\n\r\n\r\n\r\n**注意：** DATABASE 不能改名。一些可视化工具可以改名，它是建新库，把所有表复制到新库，再删旧库完成的。\r\n\r\n> 编程学习，从[云端源想](https://ydcode.cn/memberIndex?sourceId=278)开始，课程视频、在线书籍、在线编程、一对一咨询……你想要的全部学习资源这里都有，重点是统统免费！[点这里即可查看](点这里即可查看)\r\n\r\n**实例：最简单的创建MySQL数据库的语句**\\\r\n在 MySQL 中创建一个名为 test_db 的数据库。在 MySQL 命令行客户端输入 SQL 语句`CREATE DATABASE test_db;`即可创建一个数据库，输入的 SQL 语句与执行结果如下。\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700190214-Dp8O34.png)\r\n\r\n“Query OK, 1 row affected (0.12 sec);”提示中，“Query OK”表示上面的命令执行成功，“1 row affected”表示操作只影响了数据库中一行的记录，“0.12 sec”则记录了操作执行的时间。\r\n\r\n若再次输入`CREATE DATABASE test_db;`语句，则系统会给出错误提示信息，如下所示：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700190289-iAICfU.png)\r\n\r\n提示不能创建“test_db”数据库，数据库已存在。MySQL 不允许在同一系统下创建两个相同名称的数据库。\r\n\r\n可以加上`IF NOT EXISTS`从句，就可以避免类似错误，如下所示：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700190310-GR6343.png)\r\n\r\n## 二、查看数据库\r\n\r\n在 MySQL 中，可使用 SHOW DATABASES 语句来查看或显示当前用户权限范围以内的数据库。语法格式如下:\r\n\r\n**查看当前所有的数据库**\r\n\r\n```\r\nSHOW DATABASES; #有一个S，代表多个数据库\r\n```\r\n\r\n\r\n\r\n**查看当前正在使用的数据库**\r\n\r\n```\r\nSELECT DATABASE(); #使用的一个 mysql 中的全局函数\r\n```\r\n\r\n\r\n\r\n**查看指定库下所有的表**\r\n\r\n```\r\nSHOW TABLES FROM 数据库名;\r\n```\r\n\r\n\r\n\r\n**查看数据库的创建信息**\r\n\r\n```\r\nSHOW CREATE DATABASE 数据库名;\r\n或者：\r\nSHOW CREATE DATABASE 数据库名\\G\r\n```\r\n\r\n\r\n**注意：** 要操作表格和数据之前必须先说明是对哪个数据库进行操作，否则就要对所有对象加上“数据库名.”。\r\n\r\n**实例1：查看所有数据库**\r\n\r\n列出当前用户可查看的所有数据库：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700191075-MsE13i.png)\r\n\r\n可以发现，在上面的列表中有 6 个数据库，它们都是安装 MySQL 时系统自动创建的，其各自功能如下：\r\n\r\n**information_schema：** 主要存储了系统中的一些数据库对象信息，比如用户表信息、列信息、权限信息、字符集信息和分区信息等。\r\n\r\n**mysql：** MySQL 的核心数据库，类似于 SQL Server 中的 master 表，主要负责存储数据库用户、用户访问权限等 MySQL 自己需要使用的控制和管理信息。常用的比如在 mysql 数据库的 user 表中修改 root 用户密码。\r\n\r\n**performance_schema：** 主要用于收集数据库服务器性能参数。\r\n\r\n**sakila：** MySQL 提供的样例数据库，该数据库共有 16 张表，这些数据表都是比较常见的，在设计数据库时，可以参照这些样例数据表来快速完成所需的数据表。\r\n\r\n**sys：** MySQL 5.7 安装完成后会多一个 sys 数据库。sys 数据库主要提供了一些视图，数据都来自于 performation_schema，主要是让开发者和使用者更方便地查看性能问题。\r\n\r\n**world：** world 数据库是 MySQL 自动创建的数据库，该数据库中只包括 3 张数据表，分别保存城市，国家和国家使用的语言等内容。\r\n\r\n**实例2：创建并查看数据库**\r\n\r\n先创建一个名为 test_db 的数据库：\r\n\r\n```\r\nCREATE DATABASE test_db;\r\n\r\nQuery OK, 1 row affected (0.12 sec)\r\n```\r\n\r\n\r\n\r\n再使用 SHOW DATABASES 语句显示权限范围内的所有数据库名，如下所示：\\\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700191098-e1iH6I.png)\r\n\r\n你看，刚才创建的数据库已经被显示出来了。\r\n\r\n## 三、修改数据库\r\n\r\n在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改，数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。\r\n\r\n在 MySQL 中，可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为：\r\n\r\n![](https://ydcqoss.ydcode.cn/ydyx/bbs/1700191040-xstUHO.png)\r\n\r\n语法说明如下：\r\n\r\n* ALTER DATABASE 用于更改数据库的全局特性。\r\n* 使用 ALTER DATABASE 需要获得数据库 ALTER 权限。\r\n* 数据库名称可以忽略，此时语句对应于默认数据库。\r\n* CHARACTER SET 子句用于更改默认的数据库字符集。\r\n\r\n## 四、删除数据库\r\n\r\n当数据库不再使用时应该将其删除，以确保数据库存储空间中存放的是有效数据。删除数据库是将已经存在的数据库从磁盘空间上清除，清除之后，数据库中的所有数据也将一同被删除。\r\n\r\n在 MySQL 中，需要删除已创建的数据库时，可以使用`DROP DATABASE `语句。其语法格式为：\r\n\r\n```\r\nDROP DATABASE [ IF EXISTS ] <数据库名>\r\n```\r\n\r\n\r\n\r\n语法说明如下：\r\n\r\n* <数据库名>：指定要删除的数据库名。\r\n* IF EXISTS：用于防止当数据库不存在时发生错误。\r\n* DROP DATABASE：删除数据库中的所有表格并同时删除数据库。\\\r\n  **使用此语句时要非常小心，以免错误删除。如果要使用 DROP DATABASE，需要获得数据库 DROP 权限。**\r\n\r\n**注意：** MySQL 安装后，系统会自动创建名为 information_schema 和 mysql 的两个系统数据库，系统数据库存放一些和数据库相关的信息，如果删除了这两个数据库，MySQL 将不能正常工作。\r\n\r\n**还有一点值得注意的是：** 在进行删除操作的时候一定要谨慎，在执行DROP DATABASE命令后，MySQL 不会给出任何提示确认信息。并且删除数据库后，数据库中存储的所有数据表和数据也将一同被删除，而且不能恢复，因此最好在删除数据库之前先将数据库进行备份。\r\n\r\n**实例 ：在 MySQL 中创建一个测试数据库 test_db_del**\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700191264-JRSB27.png)\r\n\r\n使用命令行工具将数据库 test_db_del 从数据库列表中删除，输入的 SQL 语句与执行结果如下所示：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700191297-L7u2HW.png)\r\n\r\n此时数据库 test_db_del 不存在。再次执行相同的命令，直接使用 `DROP DATABASE test_db_del`，系统会报错，如下所示：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700191333-O42j3o.png)\r\n\r\n如果使用`IF EXISTS`从句，可以防止系统报此类错误，如下所示：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1700191348-IJJqpT.png)\r\n\r\n## 五、选择数据库\r\n\r\n在 MySQL 中就有很多系统自带的数据库，那么在操作数据库之前就必须要确定是哪一个数据库。在 MySQL 中，USE 语句用来完成一个数据库到另一个数据库的跳转。\r\n\r\n当用 `CREATE DATABASE `语句创建数据库之后，该数据库不会自动成为当前数据库，需要用 USE 来指定当前数据库。其语法格式为：\r\n\r\n```\r\nUSE <数据库名>\r\n```\r\n\r\n\r\n\r\n该语句可以通知 MySQL 把<数据库名>所指示的数据库作为当前数据库。该数据库保持为默认数据库，直到语段的结尾，或者直到遇见一个不同的 USE 语句。 只有使用 USE 语句来指定某个数据库作为当前数据库之后，才能对该数据库及其存储的数据对象执行操作。\r\n\r\n### 总结：\r\n\r\n本篇文章详细介绍了MySQL数据库的新增、查看、修改、删除和选择等操作，希望对你的数据库入门学习有那么一点点的帮助。"},"author":{"user":"https://learnblockchain.cn/people/17279","address":null},"history":null,"timestamp":1700297624,"version":1}