对数据库进行查询和修改操作的语言叫做 SQL(Structured Query Language,结构化查询语言)。SQL 语言是目前广泛使用的关系数据库标准语言,是各种数据库交互方式的基础。
在之前的文章中,我们已经掌握了SQL语言的基本概念以及常用的DDL(数据定义)和DML(数据操作)语句。接下来,我们将探讨如何运用这些知识进行MySQL数据库的操作。在本篇文章中,我们将详细介绍基本的增、删、改、查等操作方法。
![image.png](http://static.itsharecircle.com/231118/9f9f39ab6d46175ad82903d8b502ef13.png)
首先我们来回顾一下标识符命名规则:
- 数据库名、表名不得超过30个字符,变量名限制为29个。
- 必须只能包含 A–Z, a–z, 0–9, _共63个字符。
- 数据库名、表名、字段名等对象名中间不要包含空格;
- 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名。
- 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来。
- 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
下面我们来看数据库的基本操作。
### 一、创建数据库
在 MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,下面我们介绍三种创建数据库的方式:
方式1:创建数据库 ( 数据库名存在时,会报错 )
```
CREATE DATABASE 数据库名;
```
方式2:创建数据库并指定字符集 ( 数据库名存在时,会报错 )
```
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
('不指定字符集会选择默认字符集')
```
方式3:判断数据库是否已经存在,不存在则创建数据库 (推荐)
```
CREATE DATABASE IF NOT EXISTS 数据库名;
```
注意: DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。
>编程学习,从[云端源想](https://ydcode.cn/memberIndex?sourceId=275)开始,课程视频、在线书籍、在线编程、一对一咨询……你想要的全部学习资源这里都有,重点是统统免费![点这里即可查看](https://ydcode.cn/memberIndex?sourceId=275)
**实例:最简单的创建MySQL数据库的语句**
在 MySQL 中创建一个名为 test_db 的数据库。在 MySQL 命令行客户端输入 SQL 语句CREATE DATABASE test_db;即可创建一个数据库,输入的 SQL 语句与执行结果如下。
![image.png](http://static.itsharecircle.com/231118/7c0846c1f49e6ce1d1ae7b1fb0140594.png)
“Query OK, 1 row affected (0.12 sec);”提示中,“Query OK”表示上面的命令执行成功,“1 row affected”表示操作只影响了数据库中一行的记录,“0.12 sec”则记录了操作执行的时间。
若再次输入CREATE DATABASE test_db;语句,则系统会给出错误提示信息,如下所示:
![image.png](http://static.itsharecircle.com/231118/374ec6b784968d690dfac114aca360a5.png)
提示不能创建“test_db”数据库,数据库已存在。MySQL 不允许在同一系统下创建两个相同名称的数据库。
可以加上IF NOT EXISTS从句,就可以避免类似错误,如下所示:
![image.png](http://static.itsharecircle.com/231118/6ffdc5f6c0fbdaf03c2acf931eefc076.png)
### 二、查看数据库
在 MySQL 中,可使用 SHOW DATABASES 语句来查看或显示当前用户权限范围以内的数据库。语法格式如下:
查看当前所有的数据库
```
SHOW DATABASES; #有一个S,代表多个数据库
```
查看当前正在使用的数据库
```
SELECT DATABASE(); #使用的一个 mysql 中的全局函数
```
查看指定库下所有的表
```
SHOW TABLES FROM 数据库名;
```
查看数据库的创建信息
```
SHOW CREATE DATABASE 数据库名;
或者:
SHOW CREATE DATABASE 数据库名\G
```
注意: 要操作表格和数据之前必须先说明是对哪个数据库进行操作,否则就要对所有对象加上“数据库名.”。
**实例1:查看所有数据库**
列出当前用户可查看的所有数据库:
![image.png](http://static.itsharecircle.com/231118/2331e6e518fe9e98285041e2a51fb981.png)
可以发现,在上面的列表中有 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 的数据库:
```
CREATE DATABASE test_db;
Query OK, 1 row affected (0.12 sec)
```
再使用 SHOW DATABASES 语句显示权限范围内的所有数据库名,如下所示:
![image.png](http://static.itsharecircle.com/231118/cc9465bb7faf390a36041155b21ecd72.png)
你看,刚才创建的数据库已经被显示出来了。
### 三、修改数据库
在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。
在 MySQL 中,可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:
![image.png](http://static.itsharecircle.com/231118/9070245492da56ad0980778bf6e70d02.png)
语法说明如下:
- ALTER DATABASE 用于更改数据库的全局特性。
- 使用 ALTER DATABASE 需要获得数据库 ALTER 权限。
- 数据库名称可以忽略,此时语句对应于默认数据库。
- CHARACTER SET 子句用于更改默认的数据库字符集。
### 四、删除数据库
当数据库不再使用时应该将其删除,以确保数据库存储空间中存放的是有效数据。删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。
在 MySQL 中,需要删除已创建的数据库时,可以使用DROP DATABASE 语句。其语法格式为:
```
DROP DATABASE [ IF EXISTS ] <数据库名>
```
语法说明如下:
- <数据库名>:指定要删除的数据库名。
- IF EXISTS:用于防止当数据库不存在时发生错误。
- DROP DATABASE:删除数据库中的所有表格并同时删除数据库。
使用此语句时要非常小心,以免错误删除。如果要使用 DROP DATABASE,需要获得数据库 DROP 权限。
**注意:** MySQL 安装后,系统会自动创建名为 information_schema 和 mysql 的两个系统数据库,系统数据库存放一些和数据库相关的信息,如果删除了这两个数据库,MySQL 将不能正常工作。
还有一点值得注意的是: 在进行删除操作的时候一定要谨慎,在执行DROP DATABASE命令后,MySQL 不会给出任何提示确认信息。并且删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复,因此最好在删除数据库之前先将数据库进行备份。
**实例 :在 MySQL 中创建一个测试数据库 test_db_del**
![image.png](http://static.itsharecircle.com/231118/2f1aa04a9c372efd3828988bccbe5650.png)
使用命令行工具将数据库 test_db_del 从数据库列表中删除,输入的 SQL 语句与执行结果如下所示:
![image.png](http://static.itsharecircle.com/231118/5034a9bcd24f683eb5b5d8db4158d80e.png)
此时数据库 test_db_del 不存在。再次执行相同的命令,直接使用 DROP DATABASE test_db_del,系统会报错,如下所示:
![image.png](http://static.itsharecircle.com/231118/e3a4b01ef940307bbfe63706576d4e5a.png)
如果使用IF EXISTS从句,可以防止系统报此类错误,如下所示:
![image.png](http://static.itsharecircle.com/231118/e18eff8bbb384b113f73fa3cac1b6dad.png)
### 五、选择数据库
在 MySQL 中就有很多系统自带的数据库,那么在操作数据库之前就必须要确定是哪一个数据库。在 MySQL 中,USE 语句用来完成一个数据库到另一个数据库的跳转。
当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。其语法格式为:
```
USE <数据库名>
```
该语句可以通知 MySQL 把<数据库名>所指示的数据库作为当前数据库。该数据库保持为默认数据库,直到语段的结尾,或者直到遇见一个不同的 USE 语句。 只有使用 USE 语句来指定某个数据库作为当前数据库之后,才能对该数据库及其存储的数据对象执行操作。
#### 总结:
本篇文章详细介绍了MySQL数据库的新增、查看、修改、删除和选择等操作,希望对你的数据库入门学习有那么一点点的帮助。
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传