【MySQL】19-MySQL中如何创建数据库和管理数据库
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;
输出:
可以看到,数据库 mytest2
并没有被覆盖为字符集为 utf8
的新数据库,而是保持原来字符集为 gbk
的旧数据库。
2. 管理数据库
1.查看当前连接中的有哪些数据库
SHOW DATABASES;
输出:
2.选定要使用的数据库
USE mytest2;
在可视化软件如 SQLyog 中可以看到已经切换为 mytest2
数据库:
3.查看当前数据库下都有哪些表
SHOW TABLES;
输出:
4.查看当前使用的数据库
如果你不清楚当前自己正在使用的是哪个数据库,可以通过下列语句来查询:
SELECT DATABASE() FROM DUAL;
输出:
5.查看其他数据库下都有哪些表
假设你当前在 mytest2
数据库,你想不切换数据库的前提下查看数据库 atguigudb
下都有那些表,可以使用下列语句:
SHOW TABLES FROM atguigudb;
输出:
3. 修改数据库
在实际开发中,我们并不会对一个使用了很久的数据库进行修改操作。因为里面已经存储了大量的数据,贸然修改是一个既危险又昂贵的举动。
1.修改数据库的字符集
修改数据库的场景,更多是刚创建好新的数据库后,发现字符集设置错了,去进行修改。
举个栗子:
把字符集为 gbk
的数据库 mytest2
的字符集修改为 utf8
。
ALTER DATABASE mytest2 CHARACTER SET 'utf8';
执行完毕后执行下列语句查看 mytest2
的字符集:
SHOW CREATE DATABASE mytest2;
输出:
可以看到字符集已经从原来的 gbk
修改为 utf8
了。
2.修改数据库的名称
【注意】
DATABASE是不能改名的。一些可视化工具虽然可以改名,但是它底层是先新建另一个数据库,再把所有表复制到新库,再删除旧库来实现的。
4. 删除数据库
删除数据库是一个非常严重的行为,一定要慎之又慎。因为MySQL数据库一般是没有回滚操作的,删掉了就再也无法找回来了。所以在企业中都会对一般的开发者设置权限,普通员工是没有权限删除数据库的。
提一句,删除数据库是构成危害信息安全罪的,是要承担刑事责任的。网上说的 “删库跑路” 是一句玩笑话,切勿当真。
删除数据库有两种方式:
- 方式1:如果要删除的数据库存在,则删除成功。如果不存在,则报错:
DROP DATABASE mytest2;
- 方式2 (推荐) :如果要删除的数据库存在,则删除成功。如果不存在,则默默结束,不会报错。
DROP DATABASE IF EXISTS mytest2;
相关文章
- Mycat(4):消息表mysql数据库分表实践
- mysql高性能分页语句_如何优化Mysql千万级快速分页
- mysql数据库中,通过mysqldump工具仅将某个库的所有表的定义进行转储
- mysql数据库,如何进行数据目录的初始化操作
- mysql中,如何查看数据库元数据(metadata)的字符集?
- mysql中,如何查看数据库中当前可用的校勘?字符集默认的collation?
- 用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server如何处理
- MySQL 定时备份数据库(非常全)
- 数千台MySQL数据库遭黑客比特币勒索,该怎么破?
- MySQL使用初步—mysql数据库的基本命令
- .NET/Mysql-petatoco连接mysql数据库
- 转 做了两款数据库监控工具(mysql and nosql),打算在近期开源
- 转 phpmyadmin操作技巧:如何在phpmyadmin里面复制mysql数据库?
- [mysql]MySQL数据库如何导出
- python操作mysql数据库系列-操作MySql数据库(三)
- python操作mysql数据库系列-操作MySql数据库(一)
- Mysql命令mysql:连接Mysql数据库
- 虚拟主机如何连接MYSQL数据库呢?
- mysql—MySQL数据库中10位时间戳转换为标准时间后,如何对标准时间进行加减X天处理
- 初学mysql 如何删除数据库 如何安装mysql
- JDBC如何连接mysql数据库附详细步骤
- MySQL数据库镜像 / 实时备份Zen Cart数据库
- 数据库原理及MySQL应用 | 数据表操作
- MySQL数据库开发必备常识
- (5.8)mysql高可用系列——MySQL中的GTID复制(实践篇)
- MySQL数据库触发器