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




    1. 创建数据库

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


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

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


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

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


    举个例子:

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

    CREATE DATABASE mytest2 CHARACTER SET 'gbk';
    
    • 1

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

    SHOW CREATE DATABASE mytest2;
    
    • 1

    输出:

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


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

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


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


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


    举个例子:

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

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

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

    SHOW CREATE DATABASE mytest2;
    
    • 1

    输出:

    image-20220720094801298

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


    2. 管理数据库


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

    SHOW DATABASES;
    
    • 1

    输出:

    image-20220720100204942


    2.选定要使用的数据库

    USE mytest2;
    
    • 1

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

    image-20220720100444242


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

    SHOW TABLES;
    
    • 1

    输出:

    image-20220720100650213


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

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

    SELECT DATABASE() FROM DUAL;
    
    • 1

    输出:

    image-20220720100852218


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

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

    SHOW TABLES FROM atguigudb;
    
    • 1

    输出:

    image-20220720101219482


    3. 修改数据库


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


    1.修改数据库的字符集

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


    举个栗子:

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

    ALTER DATABASE mytest2 CHARACTER SET 'utf8';
    
    • 1

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

    SHOW CREATE DATABASE mytest2;
    
    • 1

    输出:

    image-20220720102332602

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


    2.修改数据库的名称

    【注意】

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


    4. 删除数据库


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

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


    删除数据库有两种方式:

    • 方式1:如果要删除的数据库存在,则删除成功。如果不存在,则报错:
    DROP DATABASE mytest2;
    
    • 1
    • 方式2 (推荐) :如果要删除的数据库存在,则删除成功。如果不存在,则默默结束,不会报错。
    DROP DATABASE IF EXISTS mytest2;
    
    • 1
  • 相关阅读:
    微信小程序 - 渲染和逻辑
    遍历map的四种方法及Map.entry详解
    C++——map和set
    简明易懂:Python中的分支与循环
    JS——利用JS实现 tab 切换详解
    【多线程学习】线程池、简单的银行取款模拟
    iOS源码-工程目录讲解
    C++继承
    CY3-Transferrin CY3标记转铁蛋白 Transferrin-FITC/ICG/Cy3
    科普丨如何让语言芯片保持稳定性能
  • 原文地址:https://blog.csdn.net/Sihang_Xie/article/details/125889165