MySQL讲义第2讲——数据库操作

MySQL讲义第2讲——数据库操作

数据库可以是一个专门存储数据对象的容器,包括:表、视图、触发器、存储过程等,其中表是最基本的数据对象,所有的数据都存放在表中。在创建任何数据对象之前,要创建数据库。然后在数据库中创建所需要的各种对象。

一、创建数据库

使用 CREATE DATABASE 语句创建数据库,语法格式如下:

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];

说明:
(1[]中的内容是可选的。
(2<数据库名>:要创建数据库的名称。
(3IF NOT EXISTS:只有该数据库不存在时才能执行创建操作,可以避免因为数据库已经存在而引起错误。
(4[DEFAULT] CHARACTER SET:指定数据库的默认字符集。字符集是用来定义 MySQL 存储字符串的方式。该选项可以省略,如果省略就采用配置文件中指定的字符集。MySQL 不允许在同一个系统中创建两个相同名称的数据库。
(5[DEFAULT] COLLATE:指定字符集的默认校对规则。校对规则用来定义比较字符串的方式,以解决排序和字符分组的问题。该选项可以省略,如果省略就采用配置文件中指定的校对规则。

1、查看MySQL默认的字符集和校对规则

mysql> show variables like '%char%';   --查看系统默认的字符集
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| character_set_client     | utf8                                 |
| character_set_connection | utf8                                 |
| character_set_database   | utf8mb4                              |
| character_set_filesystem | binary                               |
| character_set_results    | utf8                                 |
| character_set_server     | utf8mb4                              |
| character_set_system     | utf8                                 |
| character_sets_dir       | /usr/local/mysql-5.7/share/charsets/ |
+--------------------------+--------------------------------------+
8 rows in set (0.26 sec)

mysql> show variables like '%COLL%';  --查看系统默认的校对规则
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8_general_ci    |
| collation_database   | utf8mb4_general_ci |
| collation_server     | utf8mb4_general_ci |
+----------------------+--------------------+
3 rows in set (0.03 sec)

2、创建数据库时省略字符集和校对规则

mysql> create database mydb;
Query OK, 1 row affected (0.21 sec)

可以使用 show create database 命令查看完整的数据库创建信息,命令如下:

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

--由于创建数据库时没有指定字符集,则使用 character_set_database 参数对应的字符集。

3、创建数据库时指定字符集和校对规则

mysql> create database mydb2 character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.11 sec)

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

二、查看系统中已经存在的数据库

使用 show databases 命令可以查看系统中已经存在的数据库有哪些,命令如下:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| #mysql50#:q!       |
| hist               |
| mydb               |
| mydb2              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
8 rows in set (0.03 sec)

三、修改数据库

修改数据库主要是修改数据库的字符集和校对规则,使用 alter database 命令,各选项的含义和 create database 相同。语法如下:

ALTER DATABASE [数据库名]
[ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>

下面的把 mydb 数据库的字符集修改为 gbk,校对规则修改为 gbk_chinese_ci。

mysql> alter database mydb character set gbk collate gbk_chinese_ci;
Query OK, 1 row affected (0.01 sec)

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

四、删除数据库

删除数据库使用 drop database 命令,语法如下:

drop database 数据库名;

下面的命令删除数据库 mydb:

mysql> drop database mydb;
Query OK, 0 rows affected (0.18 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| #mysql50#:q!       |
| hist               |
| mydb2              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

五、选择数据库

由于表、视图等对象必须包含到某个数据库中,因此在创建对象之前必须先选择对象所在的数据库。语法如下:

use 数据库名;

1、选择数据库 hist,查看其中包含的表

mysql> use hist;
Database changed

mysql> show tables;   --hist 数据库包含一张表。
+----------------+
| Tables_in_hist |
+----------------+
| dept           |
+----------------+
1 row in set (0.00 sec)

2、选择数据库 mydb2,查看其中包含的表

mysql> use mydb2;
Database changed

mysql> show tables;  --mydb2 数据库中没有创建表。
Empty set (0.00 sec)

猜你喜欢

转载自blog.csdn.net/weixin_44377973/article/details/108651969