第3章
数据库的创建与管理





学习要点: 通过在MySQL数据库管理系统支持下创建和维护教务管理系统数据库。理解MySQL数据库的构成,理解MySQL数据库对象,了解MySQL系统数据库和实例数据库,掌握MySQL数据库的创建、修改和删除的方法。
3.1MySQL数据库简介
数据库是数据库对象的容器,数据库不仅可以存储数据,而且能够使数据存储和检索以安全可靠的方式进行,并以操作系统文件的形式存储在磁盘上。数据库对象是存储、管理和使用数据的不同结构形式。
3.1.1数据库的构成
MySQL数据库主要分为系统数据库、示例数据库和用户数据库。
1. 系统数据库
系统数据库是指随安装程序一起安装,用于协助MySQL系统共同完成管理操作的数据库,它们是MySQL运行的基础。这些数据库中记录了一些必需的信息,用户不能直接修改这些系统数据库,也不能在系统数据库表上定义触发器。
1) sys数据库
sys数据库包含一系列的存储过程、自定义函数以及视图,可以帮助用户快速地了解系统的元数据信息。sys系统数据库还结合了information_schema和performance_schema的相关数据,让用户更加容易地检索元数据。
2) information_schema数据库
information_schema数据库类似“数据字典”,提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名、数据表名、列的数据类型及访问权限等。
3) performance_schema数据库
performance_schema数据库主要用于收集数据库服务器性能参数。MySQL用户不能创建存储引擎为performance_schema的表。
performance_schema的功能有: 提供进程等待的详细信息,包括锁、互斥变量、文件信息; 保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断; 易于增加或删除监控事件点,并可随意改变MySQL服务器的监控周期,如CYCLE、MICROSECOND。
4) mysql数据库
mysql数据库是MySQL的核心数据库,它记录了用户及其访问权限等MySQL所需的控制和管理信息。如果该数据库被损坏,MySQL将无法正常工作。
2. 示例数据库
示例数据库是系统为了让用户学习和理解MySQL而设计的。sakila和world示例数据库是完整的示例,具有更接近实际的数据容量、复杂的结构和部件,可以用来展示MySQL的功能。
3. 用户数据库
用户根据数据库设计创建的数据库,如教务管理系统数据库(D_eams)、图书管理系统数据库(D_lms)等。
MySQL数据库应用与实践教程(第2版)微课视频版
第
3
章
数据库的创建与管理

3.1.2数据库文件
在MySQL中,每个数据库都对应存放在一个与数据库同名的文件夹中。MySQL数据库文件有IBD类型。.IBD文件可能包含多个表的表和索引数据。在InnoDB系统表空间中创建的表是在现有的文件中创建的,该文件位于MySQL数据目录中。数据库的默认存放位置是C:\ProgramData\MySQL\MySQL Server 8.0\Data\。可以通过配置向导或手工配置修改数据库的默认存放位置,具体操作方法请参阅2.2节。
3.1.3数据库对象
MySQL数据库中的数据在逻辑上被组织成一系列数据库对象,这些数据库对象包括: 表、视图、约束、索引、存储过程、触发器、用户定义函数、用户和角色。
下面对这些常用数据库对象进行简单介绍。
1. 表
表是MySQL数据库中最基本、最重要的对象,是关系模型中实体的表示方式,用于组织和存储具有行列结构的数据对象。行是组织数据的单位,列是用于描述数据的属性,每一行都表示一条完整的信息记录,而每一列表示记录中相同的元素属性值。由于数据库中的其他对象都依赖于表,因此表也称为基本表。
2. 视图
视图是一种常用的数据库对象,它为用户提供了一种查看数据库中数据的方式,其内容由查询需求定义。视图是一个虚表,与表非常相似,也是由字段与记录组成的。与表不同的是,视图本身并不存储实际数据,它是基于表存在的。
3. 索引
索引是为提高数据检索的性能而建立,利用它可快速地确定指定的信息。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B树)中,使MySQL可以快速有效地查找与键值关联的行。
4. 存储过程和触发器
存储过程和触发器是两个特殊的数据库对象。在MySQL中,存储过程的存在独立于表,而触发器则与表紧密结合。用户可以使用存储过程来完善应用程序,使应用程序的运行更加有效率; 可以使用触发器来实现复杂的业务规则,更加有效地实施数据完整性。
5. 用户和角色
用户是对数据库有存取权限的使用者。角色是指一组数据库用户的集合。数据库中的用户可以根据需要添加,用户如果被加入到某一角色,则将具有该角色的所有权限。
3.1.4数据库对象的标识符
数据库对象的标识符指数据库中由用户定义的、可唯一标识数据库对象的有意义的字符序列。标识符必须遵守以下规则。
(1) 可以包含来自当前字符集的数字、字母、字符“_”和“$”。
(2) 可以以在一个标识符中合法的任何字符开头。标识符也可以以一个数字开头,但是不能全部由数字组成。
(3) 标识符最长可为64个字符,而别名最长可为256个字符。
(4) 数据库名和表名在UNIX操作系统上是区分大小写的,而在Windows操作系统上忽略大小写。
(5) 不能使用MySQL关键字作为数据库名、表名。
(6) 不允许包含特殊字符,如“.”“/”或“\”。
如果要使用的标识符是一个关键字或包含特殊字符,必须用反引号“`”引起来(加以界定)。
例如: 



create table `select`

(`char-colum` char(8),

`my/score`int

);




3.2管理数据库
现在主流的数据库管理系统都提供了图形用户界面管理数据库方式。同时也可以使用SQL语句来进行数据库的管理。在MySQL中主要使用两种方法创建数据库: 一是使用图形化管理工具MySQL Workbench创建数据库,此方法简单、直观,以图形化方式完成数据库的创建和数据库属性的设置; 二是使用SQL语句创建数据库,此方法可以将创建数据库的脚本保存下来,在其他计算机上运行以创建相同的数据库。
3.2.1创建数据库
SQL语句创建用户数据库的语句是CREATE DATABASE。其语法格式如下。



CREATE {DATABASE|SCHEMA}[IF NOT EXISTS] <数据库文件名>

[选项];




说明: 
(1) 语句中“[]”内为可选项。
(2) IF NOT EXISTS 在创建数据库前加上一个判断,只有该数据库目前尚不存在时才执行CREATE DATABASE操作。
(3) 选项用于描述如字符集和校对规则等选项。
(4) SQL语句对英文字母的大小写不进行区分。本书为了符合习惯用法,在正文中讲解SQL语句的用法时,语句中的关键词、系统函数名等都采用大写形式,而在具体例子的代码中,关键词、系统函数名等大多采用小写形式。后文中如没有特别说明,都采用这样的写法。
设置字符集或校对规则。语法格式如下。



[DEFAULT] CHARACTER SET [=] 字符集

|[DEFAULT] COLLATE [=] 校对规则名




例3.1创建名为D_sample的数据库。SQL语句如下。



create database D_sample;




在MySQL命令行工具中输入以上SQL语句,执行结果如图3.1所示。




图3.1创建数据库D_sample


例3.2为避免因重复创建时系统显示的错误信息,使用IF NOT EXISTS选项创建名为D_sample的数据库。SQL语句如下。



create database if not exists D_sample;




在MySQL命令行工具中输入以上SQL语句,执行结果如图3.2所示。



图3.2使用IF NOT EXISTS选项创建数据库


3.2.2查看已有的数据库
对于已有的数据库,可以使用MySQL Workbench和SQL语句查看。
使用SHOW DATABASES语句显示服务器中所有可以使用的数据库的信息,其格式如下。



图3.3查看已有数据库的信息




SHOW DATABASES;




例3.3查看所有可以使用数据库的信息。SQL语句如下。



show databases;




如图3.3所示显示所有数据库的信息。

3.2.3打开数据库
当用户登录MySQL服务器,连接MySQL后,用户需要连接MySQL服务器中的一个数据库,才能使用该数据库中的数据,对该数据库进行操作。一般地,用户需要指定连接MySQL服务器中的哪个数据库,或者从一个数据库切换至另一个数据库,可以利用USE语句来打开或切换至指定的数据库。其语法格式如下。



USE <数据库文件名>;




例3.4打开D_sample数据库。SQL语句如下。



use D_sample;




在MySQL命令行工具中输入以上SQL语句,执行结果如图3.4所示。



图3.4打开数据库D_sample


3.2.4修改数据库
修改数据库主要是修改数据库参数,使用ALTER DATABASE语句来实现。其语法格式如下。



ALTER {DATABASE|SCHEMA} [数据库文件名]

[选项];




说明: 
(1) 数据库文件名为可选项,当不选数据库文件名时,则修改当前数据库。
(2) 修改数据库的选项和创建数据库的选项相同。
例3.5修改数据库D_sample的默认字符集和校对规则。



alter database D_sample

default character set=gbk

default collate=gbk_chinese_ci;




执行结果如图3.5所示。


图3.5修改数据库D_sample


3.2.5删除数据库
如果需要删除已经创建的数据库,来释放被占用的磁盘空间和系统资源消耗。使用DROP DATABASE语句删除数据库。其语法格式如下。



DROP DATABASE [IF EXISTS] <数据库文件名>;




例3.6删除D_sample1数据库。



drop database D_sample1;




执行结果如图3.6所示。



图3.6删除数据库D_sample1


使用DROP DATABASE 命令时,还可以使用IF EXISTS子句,避免删除不存在的数据库时出现MySQL提示信息。
3.2.6使用MySQL Workbench管理数据库
创建和管理数据库除了使用SQL语句方式,还可以使用MySQL Workbench图形化管理工具创建和管理数据库,MySQL Workbench方式使用图形化的界面来提示操作,是最简单也是最直接的方法,非常适合初学者。
1. 使用MySQL Workbench创建数据库
例3.7创建数据库D_sample1。
其具体操作步骤如下。
(1) 从“开始”菜单上选择“所有程序”的MySQL项中的MySQL Workbench 8.0 CE项,启动MySQL Workbench。
(2) 在MySQL Workbench菜单栏Database中,选择Connect to Database项,打开Connect to Database窗口,如图3.7所示。输入密码后,单击OK按钮完成数据库连接。



图3.7连接数据库窗口



(3) 在打开的窗口中,单击工具栏上的
图标,在Name文本框中输入数据库名称“D_sample1”,如图3.8所示。



图3.8创建数据库


(4) 单击Apply按钮,在打开的Apply SQL Script to Database窗口中显示创建数据库的SQL脚本,如图3.9所示。



图3.9Apply SQL Script to Database窗口


(5) 单击Apply按钮,执行创建数据库的脚本,如图3.10所示。单击Finish按钮,完成创建数据库。



图3.10完成创建数据库


2. 使用MySQL Workbench查看数据库
例3.8查看已有的数据库信息。
其具体操作步骤如下.
(1) 从“开始”菜单上选择“所有程序”的MySQL项中的MySQL Workbench 8.0 CE项,启动MySQL Workbench。
(2) 在MySQL Workbench菜单栏Database中,选择Connect to Database项,打开Connect to Database窗口,输入密码后,单击OK按钮完成数据库连接。
(3) 在打开的窗口中可以看到所有可以使用数据库的信息,如图3.11所示。



图3.11查看数据库信息


3. 使用MySQL Workbench修改数据库
例3.9修改D_sample1数据库的字符集和校对规则。具体操作如下。
(1) 在MySQL Workbench窗口中,选择D_sample1,右击,在弹出的快捷菜单中选择Alter Schema项,在打开的d_sample1Schema选项卡中,单击Charset/Collation列表框按钮,展开“字符集和校对规则”,如图3.12所示。
(2) 在展开的列表框中选择gbk和gbk_chinese_ci,单击Apply按钮。在打开的Apply SQL Script to Database窗口中显示修改数据库字符集和校对规则的SQL脚本。
(3) 单击Apply按钮,执行修改数据库字符集和校对规则的脚本。单击Finish按钮,完成修改数据库。



图3.12“字符集和校对规则”列表


4. 使用MySQL Workbench删除数据库
例3.10删除D_sample1数据库。
其具体操作步骤如下。
(1) 在MySQL Workbench窗口中,选择D_sample1,右击,在弹出的快捷菜单中选择Drop Schema项,打开对话框,如图3.13所示。


图3.13删除数据库


(2) 在对话框中,单击Drop Now按钮,删除数据库。
必须将当前数据库指定为其他数据库,不能删除当前打开的数据库。


课堂实践3


课堂实践3: 创建和管理教务管理系统数据库
(1) 使用SQL语句,创建教务管理系统数据库D_eams。SQL语句如下。



create database D_eams;




(2) 修改数据库D_eams的默认字符集和校对规则。SQL语句如下。



alter database D_eams

default character set=gb2312

default collate=gb2312_chinese_ci;




(3) 删除教务管理系统数据库D_eams。SQL语句如下。



drop database D_eams;




小结
本章介绍了MySQL数据库基础知识,介绍了数据库的创建、打开、查看、修改和删除等基本操作。这些基本操作是进行数据库管理与开发的基础。通过学习,熟练掌握使用SQL语句进行数据库的创建、修改和删除操作的技能。理解使用MySQL Workbench创建、修改和删除数据库的操作方法。了解错误执行删除数据库操作的后果,培养认真严谨的工作态度,坚守良好的职业道德。
思考与实践
1. 选择题
(1) 下列选项中属于修改数据库的语句是()。

A. CREATE DATABASEB. ALTER DATABASE
C.  DROP DATABASED. 以上都不是
(2)  ()数据库主要用于收集数据库服务器性能参数。
A. sysB. performance_schema
C. information_schemaD. mysql
(3) 下列不属于MySQL的系统数据库是()。
A. sysB. mysql
C. pubs_schemaD. information_schema
(4)  MySQL数据库的表数据文件的扩展名为()。
A.  .sqlB.  .mydC.  .mdbD.  .ibd
(5) MySQL数据库的描述表结构文件的扩展名为()。
A.  .frmB.  .mydC.  .ibdD.  .myt
2. 填空题
(1) MySQL的系统数据库为()、()、()和()。
(2) MySQL数据库对象有()、()、()、()和()等。
(3) 创建数据库除可以使用图形界面操作外,还可以使用()命令创建数据库。
(4) 在MySQL中,用()语句来打开或切换至指定的数据库。
(5) ()是表、视图、存储过程、触发器等数据库对象的集合,是数据库管理系统的核心内容。
3. 实践题
(1) 使用MySQL Workbench创建教务管理系统D_eams。
(2) 使用MySQL Workbench修改教务管理系统D_eams。设置字符集Charset为gbk(支持简体中文及繁体中文),设置校对规则Collation为gbk_bin(以二进制形式存储且区分大小写)。
(3) 使用MySQL Workbench,在认真确认要删除数据库后,谨慎删除教务管理系统D_eams。