MySQL 教程

MySQL 数据库基本操作

🎉摘要:本文详细介绍了MySQL数据库的核心操作,包括使用CREATE DATABASE创建数据库,SHOW DATABASES查看数据库,USE选择数据库,ALTER DATABASE修改数据库字符集和排序规则,以及DROP DATABASE删除数据库。提供了完整的SQL语法示例和实际工作建议,适合MySQL初学者和开发者学习参考。

前面已经学习了 MySQL 的 show databases、show tables、use 等命令,下面将仔细介绍如何操作数据库,以后在开发中大部分情况下一个应用对应一个数据库,足够我们使用了。但是对于那种大型项目、或者微服务项目,可能就是一个功能模块一个数据库,如用户模块、订单模块分别创建不同的数据库。

创建数据库

创建数据库使用 CREATE DATABASE 语句,语法如下:

-- 基本语法
CREATE DATABASE 数据库名;

-- 更完整的写法,指定字符集和排序规则
CREATE DATABASE 数据库名
    CHARACTER SET 字符集
    COLLATE 排序规则;

示例:

-- 创建名为 shop 的数据库
mysql> create database shop;
Query OK, 1 row affected (0.00 sec)

-- 如果数据库不存在才创建(避免报错)
mysql> create database if not exists shop;
Query OK, 1 row affected, 1 warning (0.00 sec)

-- 查询已经存在的数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| shop               |
| sys                |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)

注意,在实际工作中,我习惯在建库时就指定好字符集。utf8mb4 支持完整的 Unicode字符(包括 emoji 表情),utf8mb4_unicode_ci 是一种常用的排序规则,对中文排序比较友好。

查看和选择数据库

这些命令在前面 MySQL 环境搭建章节已经介绍,下面一起复习一下:

(1)查看MySQL服务器上所有数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| shop               |
| sys                |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)

(2)选择要操作的数据库

mysql> use shop;
Database changed

-- 选择要操作的数据库
USE shop;

-- 查看当前正在使用的数据库
SELECT DATABASE();

-- 查看创建数据库的SQL语句
SHOW CREATE DATABASE shop;

查看当前正在使用的数据库,注意是 database() 不是 databases(),不是复数:

mysql> select database();
+------------+
| database() |
+------------+
| shop       |
+------------+
1 row in set (0.00 sec)

查看创建数据库的SQL语句:

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

注意:USE 命令本身不是 SQL 标准,而是 MySQL 的扩展。执行 USE shop 后,后续的所有操作(创建表、插入数据等)都会默认在这个数据库中进行,直到切换到另一个数据库。

修改数据库

数据库创建后,主要可以修改的是字符集和排序规则。均通过 alter database 进行修改,语法如下:

ALTER DATABASE 数据库名
    CHARACTER SET 字符集
    COLLATE 排序规则;

示例,修改 shop 数据库的编码为 utf8mb4,排序为 utf8mb4_unicode_ci。

-- 修改数据库的字符集
ALTER DATABASE shop
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

注意:修改字符集不会影响已存在的表,只对后续新建的表生效。

删除数据库

删除数据库是一个非常高危的动作,删除前需要非常谨慎。语法如下:

-- 删除数据库(危险操作!数据不可恢复)
DROP DATABASE 数据库名;

-- 如果数据库存在,才进行删除,避免报错
DROP DATABASE IF EXISTS 数据库名;

示例:

-- 删除 shop 数据库
mysql> drop database shop;
Query OK, 0 rows affected (0.00 sec)

-- 再次查看数据库,发现 shop 确实没有了
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.01 sec)

-- 如果 shop 数据库存在,才进行删除
mysql> drop database if exists shop;
Query OK, 0 rows affected, 1 warning (0.00 sec)

上面将 shop 数据库删除了,再执行 drop database if exists shop; 语句删除数据库没有抛出错误,因为数据库不存在,不会进行删除操作。

注意:drop database  命令会删除数据库及其中的所有表和数据,执行前务必确认。在生产环境中,这个操作通常需要严格的权限控制和审批流程。

更多知识请阅读后续章节……谢谢!!!

 

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号