MySQL入门_实战3_创建和删除数据库

MySQL入门_实战系列文章目录



前言

创建数据库比较简单,本节将介绍如何执行以下操作。


1.创建和使用数据库

1.1 查看数据库

登录到数据库

mysql -uroot -p

使用SHOW语句可以找出服务器上当前存在哪些数据库:

mysql> SHOW DATABASES;

在这里插入图片描述

新安装的数据库中一般可以看到 information_schema、mysql、performance_schema 和 sys这四个自带的数据库。

1.2 创建库

语法格式:
CREATE DATABASE database_name;
在MySQL命令行中创建名称为goods的数据库,用来管理商品。

 CREATE DATABASE goods;

在这里插入图片描述
然后,查看通过 命令**SHOW DATABASES;**查看MySQL中存在的数据库

mysql> SHOW DATABASES;

在这里插入图片描述

可以看到,数据库列表中增加了名称为goods的数据库。

如果数据库中目前已经存在了名为goods的数据库,再次使用CREATE DATABASE goods;语句创建名称为goods的数据库时就会报错。

报错信息:
ERROR 1007 (HY000): Can’t create database ‘goods’; database exists
错误信息为:无法创建数据库goods,数据库已存在。
在这里插入图片描述
现在我们有一个需求是:
如果MySQL中不存在goods数据库,则建库;如果MySQL中已经存在goods数据库,则忽略该创建语句不建库,且SQL不报错。

这种情况下,可以使用CREATE DATABASE IF NOT EXISTS的SQL格式创建数据库避免报错的情况。

创建数据库的语法格式如下:
CREATE DATABASE IF NOT EXISTS database_name;
例:

mysql> CREATE DATABASE IF NOT EXISTS goods;

在这里插入图片描述

1.3 选择数据库

创建数据库后并不会直接使用该库,你必须明确指定库。要使unitedkingdom成为当前数据库,使用以下语句:

mysql> USE goods

在这里插入图片描述
数据库只需要创建一次,但每次开始mysql会话时都必须指定数据库。您可以通过USE语句来实现这一点。或者,您可以在调用mysql时在命令行上选择数据库。只需在命令行连接串之后指定它的名称即可,例如:

$> mysql -u root -p goods

在这里插入图片描述

重点提示:
刚才显示的命令中的goods不是您的密码。如果希望在命令行上的-p选项之后提供密码,那么必须不使用空格(例如,作为-ppassword,而不是作为-p password)。但是,不建议将密码放在命令行上,因为这样做可能会被登录到您机器上的其他用户窥探到。

可以通过命令 SELECT DATABASE(); 随时查看当前选择的数据库

mysql> SELECT DATABASE();

在这里插入图片描述

1.4 字符集编码

查看数据库默认字符集编码

SHOW VARIABLES LIKE '%character_set_database%';

在这里插入图片描述
前面我们创建名称为goods的数据库时没有指定字符集编码,那么goods库使用的是什么字符集编码呢?

MYSQL会为创建的每个库指定一个字符编码。如果在创建数据库的SQL中时没有为显式的指定字符编码,那么MySQL会为数据库使用默认的字符编码,这个默认的字符编码就是上面查询到的信息,也是我们写在数据库配置文件my.cnf中的信息。

[mysqld]
#服务端字符集
character-set-server=utf8mb4
[mysql]
#客户端默认字符集
default-character-set=utf8mb4
[client]
#设置mysql客户端连接服务端时默认使用的端口
default-character-set=utf8mb4

查看数据库中记录的建库信息

SHOW CREATE DATABASE goods;

在这里插入图片描述
在命令行中,也可使用下面这个格式,对输出进行格式化
SHOW CREATE DATABASE database_name \G
在这里插入图片描述
可以发现,此时goods数据库的字符编码为utf8mb4,排序规则为utf8mb4_0900_ai_ci。

说明:
\G,表示将查询结果进行按列打印,横向表格纵向输出,可以使每个字段打印到单独的行

1.5 删除数据库

在MySQL中删除数据库的语法格式如下:

DROP DATABASE [IF EXISTS] database_name;
[IF EXISTS] 是可选参数,用来判断待删除数据库是否存在。
下面以这个例子说明:

mysql> DROP DATABASE goods;

在这里插入图片描述

查看MySQL中存在的数据库。

mysql> SHOW DATABASES;

在这里插入图片描述
可以看到,goods数据库已经被删除。

如果MySQL中不存在goods数据库,执行DROP DATABASE goods;命令则会报错:ERROR 1008 (HY000): Can't drop database 'goods'; database doesn't exist
提示信息为:无法删除goods数据库,数据库不存在
在这里插入图片描述
通过这下面这种方式可以避免报错:

mysql> DROP DATABASE IF EXISTS goods;

在这里插入图片描述
如果MySQL中存在goods数据库,则删库;如果MySQL中不存在goods数据库,则忽略删库语句且SQL不报错。

如果该文章有帮助到您,请 点赞 支持,谢谢!
有任何疑问,欢迎在评论中留言。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值