• MySQL数据库的常见操作(七)


    MySQL数据库的常见操作

      1、创建数据库

      2、创建重名的数据库以及如何查看警告信息

      3、设置数据库的编码方式(默认为utf8)

      4、修改和查看数据库的编码方式

      5、删除数据库

      6、6、删除已经删除了的数据库

    1、创建数据库

      

      花括号代表必须是要有的,中括号代表是可有可不有,竖线是代表选择,即是从花括号里选择。

      这里的查询和我们后面学习的查找,是两个截然不同的概念。

      一行被影响,当我们把数据库创建成功之后,它要把我们数据库创建成功的结果,要放到系统数据库里,所以出现一行被影响。

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | test |
    +--------------------+
    3 rows in set (0.05 sec)

    mysql> create database dajiangtai;
    Query OK, 1 row affected (0.04 sec)

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | dajiangtai |
    | mysql |
    | test |
    +--------------------+
    4 rows in set (0.01 sec)

    mysql>

     2、创建重名的数据库以及如何查看警告信息

    mysql> create database dajiangtai;
    ERROR 1007 (HY000): Can't create database 'dajiangtai'; database exists
    mysql> create database if not exists dajiangtai;
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    mysql> show warnings;
    +-------+------+-----------------------------------------------------+
    | Level | Code | Message |
    +-------+------+-----------------------------------------------------+
    | Note | 1007 | Can't create database 'dajiangtai'; database exists |
    +-------+------+-----------------------------------------------------+
    1 row in set (0.00 sec)

    mysql>

      我们可以看到警告级别是Note,警告信息还是我们之前看到的那个信息。

    只是说,用了 if not exists 不会把错误信息直接反馈到客户端而已。默认的编码方式,是配置文件my.ini里的

      查看某数据库的编码方式是什么?

    mysql> show create database dajiangtai;
    +------------+-----------------------------------------------------------------
    -----+
    | Database | Create Database
    |
    +------------+-----------------------------------------------------------------
    -----+
    | dajiangtai | CREATE DATABASE `dajiangtai` /*!40100 DEFAULT CHARACTER SET latin
    1 */ |
    +------------+-----------------------------------------------------------------
    -----+
    1 row in set (0.00 sec)

    mysql>

      这条指令的意思是,数据库创建时所使用的指令是什么。可以看到数据库名称是dajiangtai,但是,编码方式是默认的latin1。

    MySQL5.7版本

    [client]下添加
    default-character-set=utf8

    [mysqld]下添加

    character-set-server=utf8

      如果不这样改,会导致5.7版本mysql无法打开。不信你试试

    MySQL5.5版本

    [client]下添加

    default-character-set=utf8

    [mysqld]下添加

    default-character-set=utf8

    MySQL5.1版本

    [client]下添加

     default-character-set=utf8

    [mysqld]下添加

    character-set-server=utf8

      重启MySQL生效即可。

     

    3、设置数据库的编码方式(默认为utf8)

     

    mysql> create database if not exists dajiangtai character set utf8;
    Query OK, 1 row affected (0.05 sec)

    mysql> show create database dajiangtai;
    +------------+-----------------------------------------------------------------
    ---+
    | Database | Create Database
    |
    +------------+-----------------------------------------------------------------
    ---+
    | dajiangtai | CREATE DATABASE `dajiangtai` /*!40100 DEFAULT CHARACTER SET utf8
    */ |
    +------------+-----------------------------------------------------------------
    ---+
    1 row in set (0.00 sec)

    mysql>

      

    mysql> create database if not exists dajiangtai2 character set gbk;
    Query OK, 1 row affected (0.01 sec)

    mysql> show create database dajiangtai2;
    +-------------+----------------------------------------------------------------
    ----+
    | Database | Create Database
    |
    +-------------+----------------------------------------------------------------
    ----+
    | dajiangtai2 | CREATE DATABASE `dajiangtai2` /*!40100 DEFAULT CHARACTER SET gbk
    */ |
    +-------------+----------------------------------------------------------------
    ----+
    1 row in set (0.00 sec)

    mysql>

      这里注意,以后随着我们的业务和数据增加,比如,dajiangtai2这个数据库,在创建时编码方式没注意,比如已经是gbk编码方式了,那么,我们不要想当时删除dajiangtai2这个数据库,再来重新创建,这是一笔非常大的损失。

      那么,我们如何在不丢失这些数据记录的基础上,怎么把编程方式由原来的gbk为uft8?

     4、修改和查看数据库的编码方式

     

    mysql> alter database dajiangtai2 character set utf8;
    Query OK, 1 row affected (0.00 sec)

    mysql> show create database dajiangtai2;
    +-------------+-----------------------------------------------------------------
    -----+
    | Database | Create Database
    |
    +-------------+-----------------------------------------------------------------
    -----+
    | dajiangtai2 | CREATE DATABASE `dajiangtai2` /*!40100 DEFAULT CHARACTER SET utf
    8 */ |
    +-------------+-----------------------------------------------------------------
    -----+
    1 row in set (0.00 sec)

    mysql>

    5、删除数据库

    mysql> drop database dajiangtai;
    Query OK, 0 rows affected (0.00 sec)

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | dajiangtai2 |
    | mysql |
    | test |
    +--------------------+
    4 rows in set (0.00 sec)

    mysql>

    6、删除已经删除了的数据库

     

    mysql> drop database dajiangtai;
    ERROR 1008 (HY000): Can't drop database 'dajiangtai'; database doesn't exist
    mysql> drop database if exists dajiangtai;
    Query OK, 0 rows affected, 1 warning (0.01 sec)

    mysql>

  • 相关阅读:
    分布式事务的解决方案
    普通平衡树(bzoj 3224)
    [学习笔记] 树链剖分
    矩阵树定理——矩阵树不是树
    哈夫曼树
    SDOI2018一轮NOI培训 题目整理
    Luogu P1119 灾后重建
    轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑(转)
    单点登录的设计与实现
    PHP如何进阶,提升自己
  • 原文地址:https://www.cnblogs.com/zlslch/p/6533733.html
Copyright © 2020-2023  润新知