zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

【MySQL】19-MySQL中如何创建数据库和管理数据库

mysql数据库 如何 管理 创建 19
2023-09-11 14:19:28 时间


1. 创建数据库

创建数据库有以下三种方式:


  • 方式1:创建数据库
CREATE DATABASE 数据库名;

创建的此数据库使用的是默认字符集。


  • 方式2:创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;

此方式显式地指明了要创建的数据库的字符集。


举个例子:

我要创建一个字符集为 gbk 的数据库,名称为 mytest2 。如下代码所示:

CREATE DATABASE mytest2 CHARACTER SET 'gbk';

创建成功后,我们使用下列语句查看该数据库的字符集:

SHOW CREATE DATABASE mytest2;

输出:

可以看到数据库 mytest2 的字符集为 gbk


  • 方式3:判断数据库是否已经存在,不存在则创建数据库 (推荐)
CREATE DATABASE IF NOT EXISTS 数据库名;

如果MySQL中已经存在相关的数据库,则会忽略创建语句,不再创建数据库。


方式3与方式2可以结合使用。


因为,假设已经存在了一个名为 mytest2 的数据库,此时如果再创建一个同名的数据库,MySQL就会报错,使用方式3可以在避免报错的同时,保证该数据库一定被创建。注意,执行之后并不会覆盖已经存在的数据库。


举个例子:

创建一个名为 mytest2 (已经存在) ,字符集为 utf8 的数据库:

CREATE DATABASE IF NOT EXISTS mytest2 CHARACTER SET 'utf8';

执行完毕后,再通过下列语句查看数据库 mytest2 的字符集:

SHOW CREATE DATABASE mytest2;

输出:

image-20220720094801298

可以看到,数据库 mytest2 并没有被覆盖为字符集为 utf8 的新数据库,而是保持原来字符集为 gbk 的旧数据库。


2. 管理数据库


1.查看当前连接中的有哪些数据库

SHOW DATABASES;

输出:

image-20220720100204942


2.选定要使用的数据库

USE mytest2;

在可视化软件如 SQLyog 中可以看到已经切换为 mytest2 数据库:

image-20220720100444242


3.查看当前数据库下都有哪些表

SHOW TABLES;

输出:

image-20220720100650213


4.查看当前使用的数据库

如果你不清楚当前自己正在使用的是哪个数据库,可以通过下列语句来查询:

SELECT DATABASE() FROM DUAL;

输出:

image-20220720100852218


5.查看其他数据库下都有哪些表

假设你当前在 mytest2 数据库,你想不切换数据库的前提下查看数据库 atguigudb 下都有那些表,可以使用下列语句:

SHOW TABLES FROM atguigudb;

输出:

image-20220720101219482


3. 修改数据库


在实际开发中,我们并不会对一个使用了很久的数据库进行修改操作。因为里面已经存储了大量的数据,贸然修改是一个既危险又昂贵的举动。


1.修改数据库的字符集

修改数据库的场景,更多是刚创建好新的数据库后,发现字符集设置错了,去进行修改。


举个栗子:

把字符集为 gbk 的数据库 mytest2 的字符集修改为 utf8

ALTER DATABASE mytest2 CHARACTER SET 'utf8';

执行完毕后执行下列语句查看 mytest2 的字符集:

SHOW CREATE DATABASE mytest2;

输出:

image-20220720102332602

可以看到字符集已经从原来的 gbk 修改为 utf8 了。


2.修改数据库的名称

【注意】

DATABASE是不能改名的。一些可视化工具虽然可以改名,但是它底层是先新建另一个数据库,再把所有表复制到新库,再删除旧库来实现的。


4. 删除数据库


删除数据库是一个非常严重的行为,一定要慎之又慎。因为MySQL数据库一般是没有回滚操作的,删掉了就再也无法找回来了。所以在企业中都会对一般的开发者设置权限,普通员工是没有权限删除数据库的。

提一句,删除数据库是构成危害信息安全罪的,是要承担刑事责任的。网上说的 “删库跑路” 是一句玩笑话,切勿当真。


删除数据库有两种方式:

  • 方式1:如果要删除的数据库存在,则删除成功。如果不存在,则报错:
DROP DATABASE mytest2;
  • 方式2 (推荐) :如果要删除的数据库存在,则删除成功。如果不存在,则默默结束,不会报错。
DROP DATABASE IF EXISTS mytest2;