1、创建数据库

1
2
3
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [[DEFAULT]CHARACTER SET [=] charset_name]

// {} 代表必选参数,| 代表必选其中之一,[] 代表可选参数
1
2
mysql> CREATE DATABASE demo1;
Query OK, 1 row affected (0.01 sec)

如果我们再次执行该命令:

1
2
mysql> CREATE DATABASE demo1;
ERROR 1007 (HY000): Can't create database 'demo1'; database exists

会提示我们已经存在,且报错了,那么我们也可以选择使用 IF NOT EXISTS 参数来看下:

1
2
mysql> CREATE DATABASE IF NOT EXISTS demo1;
Query OK, 1 row affected, 1 warning (0.01 sec)

提示成功, 一条数据受影响且有一条警告,但是没有报错,为什么警告我们应该知道,而且可以查看:

1
2
3
4
5
6
7
mysql> SHOW WARNINGS;
+-------+------+------------------------------------------------+
| Level | Code | Message |
+-------+------+------------------------------------------------+
| Note | 1007 | Can't create database 'demo1'; database exists |
+-------+------+------------------------------------------------+
1 row in set (0.00 sec)
  • 提示:查看上一步操作产生的警告:SHOW WARNINGS;

2、查看当前服务器的数据库

通过 SHOW DATABASES;SHOW SCHEMAS;都可以查看当前服务器已有的数据库:

1
2
3
4
5
6
7
8
9
10
11
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| demo1 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)

information_schemamysqlperformance_schemasys等数据库不可以操作删除,他们包含了我们所需的权限等系统信息,是系统生成的。

3、查看指定数据库的定义

用该命令查看指定数据库的定义 SHOW CREATE {DATABASE|SCHEMA} db_name

1
2
3
4
5
6
7
mysql> SHOW CREATE DATABASE demo1;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| demo1 | CREATE DATABASE `demo1` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)

主要是看编码 latin1,如果我们创建的时候指定编码来创建:

1
2
3
4
5
6
7
8
9
10
mysql> CREATE DATABASE demo2 CHARACTER SET = 'GBK';
Query OK, 1 row affected (0.00 sec)

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

可以看出我们指定编码创建的数据库他的编码就是指定的。

4、修改指定数据库的编码

有时候我们需要修改现有的数据库编码,用一下命令:

1
ALTER {DATABASE|SCHEMA} db_name [DEFAULT] CHARACTER SET [=] charset_name

我们来修改 demo2 的编码为 utf8 并查看:

1
2
3
4
5
6
7
8
9
10
mysql> ALTER DATABASE demo2 CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

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

5、打开指定的数据库

我们可以使用USE来打开指定数据库,如果我们忘记当前打开的是哪个数据库,可以使用SELECT DATABASE()来查看:

1
2
3
4
5
6
7
8
9
10
11
mysql> USE demo1;
Database changed
mysql> USE demo2;
Database changed
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| demo2 |
+------------+
1 row in set (0.00 sec)

6、删除指定的数据库

删除数据库的命令是DROP {DATABASE|SCHEMA} [IF EXISTS] db_name:

1
2
mysql> DROP DATABASE demo2;
Query OK, 0 rows affected (0.01 sec)