MySQL基础(2)——数据库操作

在SQL中数据库定义语言也叫DDL(Data Definition Language),主要用来创建或删除数据库,添加索引等操作。

创建数据库

下面给出创建数据库的定义语句:

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

来解释一下:


  1. 在{}里的内容是必需的,而[]里的内容是可选的。所以创建数据库最简单的语句如下:
CREATE DATABASE db_name;

在MySQL中DATABASE和SCHEMA可以看做是一样的,并且在写SQL语句的时候,最好是将SQL命令大写,其他内容像db_name等小写比较好。

  1. 如果创建数据库时,数据库已经存在,这个时候MySQL就会出现错误提示,这个时候[IF NOT EXISTS]就很有必要了,当数据库不存在的时候,就创建数据库,当数据库存在的时候,只会出现警告而非错误。
  2. 创建数据库可以设置数据库的编码方式,如果不设置就使用默认设置。如果没有改默认的编码方式,那么window上默认的应该是gbk,mac上默认的是latin1

示例:

mysql> CREATE DATABASE IF NOT EXISTS test CHARACTER SET 'UTF8';
Query OK, 1 row affected (0.00 sec)
查看数据库

查看MySQL中有哪些数据库,可以通过以下命令:

SHOW {DATABASES|SCHEMAS};

示例:

mysql> SHOW SCHEMAS;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)
查看数据库库定义

有时候时间长了,忘记了某个数据的编码方式,可以查看数据库的定义

SHOW CREATE {DATABASE|SCHEMA} db_name;

示例:

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

通过这条语句就可以轻松的查看数据库的定义了。

修改数据库编码

有时候创建数据库之后才想起来没有修改数据库的编码,这个时候修改数据库编码就需要用到ALTER命令了

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

简单的示例:

mysql> ALTER DATABASE test CHARACTER SET 'UTF8';
Query OK, 1 row affected (0.00 sec)
删除数据库
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name;

删除数据库需要用到DROP字段,同样的使用[IF EXISTS]为了防止当数据库不存在时,MySQL删除出现错误提示。

mysql> DROP DATABASE IF EXISTS test;
Query OK, 0 rows affected (0.00 sec)

数据库操作基本上就结束了。
在MySQL中是不区分大小写的,例如将上述SQL语句中的db_name该为大写,也是可以的。
例如你创建了一个名叫test的数据库,然后删除的时候使用TEst,这样是否可行呢?

mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> DROP DATABASE TEst;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

看这是可行的。但是还是尽量的按照MySQL命令大写,自定义名称小写的形式来编写SQL语句。

你可能感兴趣的:(MySQL基础(2)——数据库操作)