MySQL入门_实战系列文章目录
- MySQL入门_实战1 MYSQL安装和卸载
- MySQL入门_实战2 MYSQL的登录和断开以及SQL查询常见问题
前言
创建数据库比较简单,本节将介绍如何执行以下操作。
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不报错。
如果该文章有帮助到您,请 点赞 支持,谢谢!
有任何疑问,欢迎在评论中留言。