MySQL数据库操作不再难:从查看到删除,一步步教你成为数据库高手!

640.png

嗨~ 今天的你过得还好吗?

知识有两种

一种是你知道的

一种是你知道在哪里能找到的

🌞

- 2023.11.17 -

对数据库进行查询和修改操作的语言叫做 SQL(Structured Query Language,结构化查询语言)。SQL 语言是目前广泛使用的关系数据库标准语言,是各种数据库交互方式的基础。

在之前的文章中,我们已经掌握了SQL语言的基本概念以及常用的DDL(数据定义)和DML(数据操作)语句。接下来,我们将探讨如何运用这些知识进行MySQL数据库的操作。在本篇文章中,我们将详细介绍基本的增、删、改、查等操作方法。

首先我们来回顾一下标识符命名规则:

  • 数据库名、表名不得超过30个字符,变量名限制为29个。
  • 必须只能包含 A--Z, a--z, 0--9, _共63个字符。
  • 数据库名、表名、字段名等对象名中间不要包含空格;
  • 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名。
  • 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来。

  • 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。

下面我们来看数据库的基本操作。

一、创建数据库

在 MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,下面我们介绍三种创建数据库的方式:

方式1:创建数据库 ( 数据库名存在时,会报错 )

ini 复制代码
CREATE DATABASE 数据库名;

方式2:创建数据库并指定字符集 ( 数据库名存在时,会报错 )

sql 复制代码
CREATE DATABASE 数据库名 CHARACTER SET 字符集;

('不指定字符集会选择默认字符集')    

方式3:判断数据库是否已经存在,不存在则创建数据库 (推荐)

sql 复制代码
CREATE DATABASE IF NOT EXISTS 数据库名;

注意: DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。

编程学习,从云端源想开始,课程视频、在线书籍、在线编程、一对一咨询......你想要的全部学习资源这里都有,重点是统统免费!点这里即可查看

实例:最简单的创建MySQL数据库的语句

在 MySQL 中创建一个名为 test_db 的数据库。在 MySQL 命令行客户端输入 SQL 语句CREATE DATABASE test_db;即可创建一个数据库,输入的 SQL 语句与执行结果如下。

"Query OK, 1 row affected (0.12 sec);"提示中,"Query OK"表示上面的命令执行成功,"1 row affected"表示操作只影响了数据库中一行的记录,"0.12 sec"则记录了操作执行的时间。

若再次输入CREATE DATABASE test_db;语句,则系统会给出错误提示信息,如下所示:

提示不能创建"test_db"数据库,数据库已存在。MySQL 不允许在同一系统下创建两个相同名称的数据库。

可以加上IF NOT EXISTS从句,就可以避免类似错误,如下所示:

二、查看数据库

在 MySQL 中,可使用 SHOW DATABASES 语句来查看或显示当前用户权限范围以内的数据库。语法格式如下:

查看当前所有的数据库

bash 复制代码
SHOW DATABASES; #有一个S,代表多个数据库

查看当前正在使用的数据库

csharp 复制代码
SELECT DATABASE(); #使用的一个 mysql 中的全局函数

查看指定库下所有的表

sql 复制代码
SHOW TABLES FROM 数据库名;

查看数据库的创建信息

sql 复制代码
SHOW CREATE DATABASE 数据库名;
或者:
SHOW CREATE DATABASE 数据库名\G

注意: 要操作表格和数据之前必须先说明是对哪个数据库进行操作,否则就要对所有对象加上"数据库名."。

实例1:查看所有数据库

列出当前用户可查看的所有数据库:

可以发现,在上面的列表中有 6 个数据库,它们都是安装 MySQL 时系统自动创建的,其各自功能如下:

information_schema: 主要存储了系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息和分区信息等。

mysql: MySQL 的核心数据库,类似于 SQL Server 中的 master 表,主要负责存储数据库用户、用户访问权限等 MySQL 自己需要使用的控制和管理信息。常用的比如在 mysql 数据库的 user 表中修改 root 用户密码。

performance_schema: 主要用于收集数据库服务器性能参数。

sakila: MySQL 提供的样例数据库,该数据库共有 16 张表,这些数据表都是比较常见的,在设计数据库时,可以参照这些样例数据表来快速完成所需的数据表。

sys: MySQL 5.7 安装完成后会多一个 sys 数据库。sys 数据库主要提供了一些视图,数据都来自于 performation_schema,主要是让开发者和使用者更方便地查看性能问题。

world: world 数据库是 MySQL 自动创建的数据库,该数据库中只包括 3 张数据表,分别保存城市,国家和国家使用的语言等内容。

实例2:创建并查看数据库

先创建一个名为 test_db 的数据库:

sql 复制代码
mysql> CREATE DATABASE test_db;

Query OK, 1 row affected (0.12 sec)

再使用 SHOW DATABASES 语句显示权限范围内的所有数据库名,如下所示:

你看,刚才创建的数据库已经被显示出来了。

三、修改数据库

在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。

在 MySQL 中,可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:

语法说明如下:

  • ALTER DATABASE 用于更改数据库的全局特性。

  • 使用 ALTER DATABASE 需要获得数据库 ALTER 权限。

  • 数据库名称可以忽略,此时语句对应于默认数据库。

  • CHARACTER SET 子句用于更改默认的数据库字符集。

四、删除数据库

当数据库不再使用时应该将其删除,以确保数据库存储空间中存放的是有效数据。删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。

在 MySQL 中,需要删除已创建的数据库时,可以使用 DROP DATABASE 语句。其语法格式为:

sql 复制代码
DROP DATABASE [ IF EXISTS ] <数据库名>

语法说明如下:

  • <数据库名>:指定要删除的数据库名。

  • IF EXISTS:用于防止当数据库不存在时发生错误。

  • DROP DATABASE:删除数据库中的所有表格并同时删除数据库。

    使用此语句时要非常小心,以免错误删除。如果要使用 DROP DATABASE,需要获得数据库 DROP 权限。

注意: MySQL 安装后,系统会自动创建名为 information_schema 和 mysql 的两个系统数据库,系统数据库存放一些和数据库相关的信息,如果删除了这两个数据库,MySQL 将不能正常工作。

还有一点值得注意的是:在进行删除操作的时候一定要谨慎,在执行DROP DATABASE命令后,MySQL 不会给出任何提示确认信息。并且删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复,因此最好在删除数据库之前先将数据库进行备份。

实例 :在 MySQL 中创建一个测试数据库 test_db_del

使用命令行工具将数据库 test_db_del 从数据库列表中删除,输入的 SQL 语句与执行结果如下所示:

此时数据库 test_db_del 不存在。再次执行相同的命令,直接使用 DROP DATABASE test_db_del,系统会报错,如下所示:

如果使用IF EXISTS从句,可以防止系统报此类错误,如下所示:

五、选择数据库

在 MySQL 中就有很多系统自带的数据库,那么在操作数据库之前就必须要确定是哪一个数据库。在 MySQL 中,USE 语句用来完成一个数据库到另一个数据库的跳转。

当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。其语法格式为:

xml 复制代码
USE <数据库名>

该语句可以通知 MySQL 把<数据库名>所指示的数据库作为当前数据库。该数据库保持为默认数据库,直到语段的结尾,或者直到遇见一个不同的 USE 语句。 只有使用 USE 语句来指定某个数据库作为当前数据库之后,才能对该数据库及其存储的数据对象执行操作。

总结:

本篇文章详细介绍了MySQL数据库的新增、查看、修改、删除和选择等操作,希望对你的数据库入门学习有那么一点点的帮助。

我们下期再见!

相关推荐
FIN技术铺37 分钟前
问:数据库的六种锁机制实践总结?
数据库·sql·oracle
程序员劝退师_1 小时前
优惠券秒杀的背后原理
java·数据库
Gauss松鼠会1 小时前
GaussDB全密态数据库等值查询
数据库·oracle·gaussdb
JSUITDLWXL1 小时前
在Oracle数据中更新整个对象和更新对象的某几个字段时,他们的锁是相同的吗
数据库·oracle
杏花春雨江南1 小时前
ddl/dml/dcl
数据库·oracle
Matrix702 小时前
HBase理论_HBase架构组件介绍
大数据·数据库·hbase
不太灵光的程序员2 小时前
【HBase分布式数据库】第七章 数据的导入导出 importtsv导入数据
数据库·分布式·hbase
Mephisto.java2 小时前
【大数据学习 | HBASE高级】region split机制和策略
数据库·学习·hbase
Lucifer三思而后行2 小时前
YashanDB YAC 入门指南与技术详解
数据库·后端
大气层煮月亮2 小时前
python调用MySql详细步骤
数据库·mysql