2.1 创建数据库
数据库技术主要研究如何科学地组织和存储数据,以及如何高效地获取和处理数据,它已广泛应用于各个领域。数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库可以看作一个存储数据对象的容器,这些对象包括数据表、视图、触发器、存储过程等,其中数据表是最基本的数据对象,是存放数据的实体。创建数据库后,才能建立数据表及其他的数据对象。
2.1.1 数据库的基本概念
1.数据
数据(Data)是描述客观事物的符号(可以是文字、数字、图形、图像等),经过数字化后存入计算机,是数据库存储的基本对象。
2.数据库
数据库(Database,DB)就是一个有结构的、集成的、可共享的、统一管理的数据集合。数据库是一个有结构的数据集合,也就是说,数据是按一定的数据模型来组织的,数据模型可用数据结构来描述。
在关系数据库中,不仅存放着各种用户数据,如与商品有关的数据、与客户有关的数据、与订单有关的数据等,还存放着与各个表结构定义相关的数据,这些数据通常称为元数据。
在关系数据库中,不仅存放着各种用户数据,如与商品有关的数据、与客户有关的数据、与订单有关的数据等,还存放着与各个表结构定义相关的数据,这些数据通常称为元数据。
3.数据库管理系统
数据库管理系统(Database Management System,DBMS)是一种用来管理数据库的商品化软件,用于建立、使用和维护数据库,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
4.数据库应用程序
数据库应用程序是使用某种程序设计语言,为实现某些特定功能而编写的程序,如查询程序、报表程序等。
5.数据库用户
数据库用户是使用数据库的人员,数据库系统中的用户一般有以下 4 类。
6.数据库系统
数据库系统(Database System,DBS)是由数据库及其管理软件组成的系统,是存储介质、处理对象和管理系统的集合体,一般由数据、数据库、数据库管理系统、数据库应用系统、用户和硬件构成。数据是构成数据库的主体,是数据库系统管理的对象。数据库是存放数据的仓库,数据库管理系统是数据库系统的核心软件,数据库应用系统是数据库管理系统支持下由用户根据实际需要开发的应用程序。
用户包括应用程序员、数据库管理员、数据管理员和最终用户。硬件是数据库系统的物理支撑,包括 CPU、内存、硬盘及 I/O 设备等。
7.关系数据库
关系数据库是一种建立在关系模型上的数据库,是目前最受欢迎的数据库管理系统。常用的关系数据库有 MySQL、SQL Server、Access、Oracle、DB2 等。在关系数据库中,关系模型就是一个二维表,因而一个关系数据库就是若干个二维表的集合。
8.系统数据库
MySQL 主要包含 information_schema、mysql、performance_schema、sys 等系统数据库,在创建任何数据库之前,用户可以使用相关命令查看系统数据库,即在命令行窗口中登录到MySQL 服务器,然后在“mysql>”提示符后输入如下命令 :
show databases ;
按【Enter】键执行该命令,会显示安装 MySQL 时系统自动创建的 4 个数据库,如图 2-1所示。
图 2-1 查看安装MySQL时系统自动创建的数据库
information_schema 数据库
information_schema 数据库
information_schema 数据库是一个虚拟数据库,是查询数据后,从其他数据库获取的相应信息。在 information_schema 中有数个只读表,它们实际上是视图,而不是基本表,因此,用户将无法看到与之相关的任何文件。
mysql 数据库
mysql数据库是MySQL的核心数据库,主要负责存储数据库的用户、权限设置、关键字等,还有其本身需要使用的控制和管理信息。
performance_schema 数据库
performance_schema 数据库主要用于收集数据库服务器的性能参数,
该数据库里数据表的存储引擎均为 Performance_Schema,而用户是不能创建存储引擎为 Performance_Schema 的数据表的。
sys 数据库
sys 数据库中所有的数据源来自 performance_schema 数据库,其目的是把 performance_schema 数据库的复杂度降低,让数据库管理员能更好地阅读这个数据库里的内容,从而更快地了解数据库的运行情况。
2.1.2 认识创建MySQL数据库的命令
MySQL 安装与配置完成后,首先需要创建数据库,这是使用 MySQL 各项功能的前提。
默认情况下,只有系统管理员和具有创建数据库角色权限的登录账户的拥有者,才可以创建数据库。在 MySQL 中,root 用户拥有最高权限。MySQL 提供了创建数据库的命令 Create Database,其语法格式如下 :
Create { Database | Schema } [ if not exists ] < 数据库名称 >
[ create_specification , … ]
其中,create_specification 的可选项如下 :
[ Default ] Character Set < 字符集名称 >
| [ Default ] Collate < 排序规则名称 >
【任务 2-1】使用 Navicat for MySQL 创建数据库 MallDB
【任务描述】 |
在 Navicat for MySQL 的图形化环境中完成以下任务。 (1)创建连接 MallConn,并打开连接 MallConn。 (2)创建数据库 MallDB。 (3)查看 MallConn 连接中的数据库。 (4)打开新创建的数据库 MallDB。 |
【任务实施】
创建连接 MallConn,并打开连接 MallConn
(1)启动图形管理工具 Navicat for MySQL。
(2)建立连接 MallConn。在【Navicat for MySQL】窗口中单击【文件】菜单,在弹出的菜单中依次选择【新建连接】-【MySQL】命令,如图 2-2 所示。
图 2-2 在【文件】菜单中依次选择【新建连接】-【MySQL】命令
打开【MySQL- 新建连接】对话框,在该对话框中设置连接参数,在“连接名”输入框中输入“MallConn”,然后分别输入主机名或 IP 地址、端口、用户名和密码,如图 2-3 所示。
输入完成后单击【测试连接】按钮,打开显示了“连接成功”提示信息的对话框,如图 2-4所示,表示连接创建成功,单击【确定】按钮保存所创建的连接。在【Navicat for MySQL】窗口左侧就会出现连接 MallConn。
(3)打开连接 MallConn。在【Navicat for MySQL】窗口左侧用鼠标右键单击新创建的连接 MallConn,在弹出的快捷菜单中选择【打开连接】命令,如图 2-5 所示,即可打开 MallConn 连接,显示 MallConn 连接中的数据库,如图 2-6 所示。
创建数据库 MallDB
在【Navicat for MySQL】窗口左侧用鼠标右键单击打开的连接 MallConn,在弹出的快捷菜单中选择【新建数据库】命令,如图 2-7 所示,打开【新建数据库】对话框。
在【数据库名】输入框中输入“MallDB”,在【字符集】下拉列表中选择【utf8】选项,在【排序规则】下拉列表中选择【utf8_general_ci】选项,如图 2-8 所示。
在【新建数据库】对话框中切换到【SQL 预览】选项卡,如图 2-9 所示。
图 2-9 【新建数据库】对话框的【SQL预览】选项卡
在【SQL 预览】选项卡中可以看到,创建 MySQL 数据库 MallDB 的语句如下 :
CREATE DATABASE'MallDB'CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
查看 MallConn 连接中的数据库
在【Navicat for MySQL】窗口中展开 MallConn 连接,可以看到新创建的数据库 MallDB,如图 2-10 所示。
图 2-10 查看新数据库MallDB
打开新创建的数据库 MallDB
在【Navicat for MySQL】窗口左侧用鼠标右键单击新创建的数据库“malldb”,在弹出的快捷菜单中选择【打开数据库】命令,如图 2-11 所示。数据库“malldb”的打开状态如图 2-12 所示。
【任务 2-2】在命名行中使用 Create Database 语句创建数据库
【任务描述】 |
(1)创建一个名称为 StudentDB 的数据库。 (2)查看 MySQL 服务器主机上的数据库。 |
创建数据库 StudentDB
(1)登录 MySQL 服务器。
打开 Windows 命令行窗口,在命令提示符后输入命令“mysql –u root -p123456”,按【Enter】键后,若窗口中的命令提示符变为“mysql>”,表示成功登录 MySQL 服务器。
(2)输入创建数据库的语句。
在命令提示符“mysql>”后面输入创建数据库的语句 :
Create Database if not exists StudentDB ;
按【Enter】键,执行结果如下 :
Query OK, 1 row affected, 1 warning (0.47 sec)
查看 MySQL 服务器主机上的数据库
在命令提示符“mysql>”后面输入以下语句 :
Show Databases ;
按【Enter】键,执行结果如图 2-13 所示。从显示的结果可以看出,已经存在 StudentDB 数据库,表示该数据库已创建成功。
图 2-13 查看MySQL服务器主机上的数据库
2.2 选择和查看数据库
当登录 MySQL 服务器后,可能有多个可以操作的数据库,这时就需要选择要操作的数据库了。使用 Create Database 语句创建数据库之后,该数据库不会自动成为当前数据库,需要使用 Use 语句来指定。在 MySQL 中,对数据表进行操作之前,需要选择该数据表所在的数据库,选择 MySQL数据库的命令的语法格式如下 :
Use 数据库名称 ;
【任务 2-3】在命名行中使用语句方式选择与查看数据库的相关信息
【任务描述】 |
(1)选择当前数据库为 StudentDB。 (2)查看数据库 StudentDB 使用的字符集。 (3)查看当前使用的数据库。 (4)查看数据库 StudentDB 使用的端口。 (5)查看数据库文件的存放路径。 |
【任务实施】
选择当前数据库为 StudentDB
在命令提示符“mysql>”后输入以下语句 :
Use StudentDB ;
按【Enter】键后出现提示信息“Database changed”,表示数据库选择成功。
查看数据库 StudentDB 使用的字符集
在命令提示符“mysql>”后输入语句 :
Show Create Database StudentDB ;
按【Enter】键后会显示图 2-14 所示的结果。
图 2-14 查看数据库 StudentDB使用的字符集
查看当前使用的数据库
在命令提示符“mysql>”后输入语句“select database() ; ”,然后按【Enter】键执行该语句,查看当前使用的数据库,结果如图 2-15 所示。
图 2-15 查看当前使用的数据库
查看数据库 StudentDB 使用的端口
在命令提示符“mysql>”后输入语句“show variables like 'port' ; ”,然后按【Enter】键执行该语句,查看当前数据库 StudentDB 使用的端口,结果如图 2-16 所示。
图 2-16 查看数据库 StudentDB使用的端口
查看数据库文件的存放路径
在命令提示符“mysql>”后输入语句“show variables like '%datadir%'; ”,然后按【Enter】键执行该语句,查看数据库文件的存放路径,结果如图 2-17 所示。
图 2-17 查看数据库文件的存放路径
2.3 修改数据库
数据库创建成功后,如果需要修改数据库的参数,可以使用 Alter Database 语句。其语法格式如下 :
Alter { Database | Schema } [ 数据库名称 ]
[ alter_specification , … ]
其中,alter_specification 的可选项如下 :
[ Default ] Character Set 字符集名称
| [ Default ] Collate 排序规则名称
【任务 2-4】使用 Alter Database 语句修改数据库
【任务描述】 |
(1)选择 StudentDB 为当前数据库。 (2)查看数据库 StudentDB 默认的字符集。 (3)查看数据库 StudentDB 默认的排序规则。 (4)修改数据库 StudentDB 的字符集为“gb2312”、排序规则为“gb2312_chinese_ci”。 (5)查看数据库 StudentDB 修改后的字符集。 (6)查看数据库 StudentDB 修改后的排序规则。 |
【任务实施】
选择 StudentDB 为当前数据库
在命令提示符“mysql>”后输入语句“Use StudentDB ; ”,然后按【Enter】键执行该语句,若提示“Database changed”,则表示数据库选择成功。
查看数据库 StudentDB 默认的字符集
在命令提示符“mysql>”后输入语句“show variables like 'character%' ; ”,然后按【Enter】键执行该语句,查看当前数据库 StudentDB 默认的字符集,结果如图 2-18 所示。
图 2-18 查看当前数据库 StudentDB默认的字符集
查看数据库 StudentDB 默认的排序规则
在命令提示符“mysql>”后输入语句“show variables like 'collation%' ; ”,然后按【Enter】键执行该语句,查看当前数据库 StudentDB 的排序规则,结果如图 2-19 所示。
图 2-19 查看数据库 StudentDB默认的排序规则
修改数据库 StudentDB 的默认字符集和排序规则
在命令提示符“mysql>”后输入以下语句 :
Alter Database StudentDB Character set gb2312 Collate gb2312_chinese_ci ;
按【Enter】键,出现“Query OK, 1 row affected (0.48 sec)”提示信息,表示修改成功。
查看数据库 StudentDB 修改后的字符集
在命令提示符“mysql>”后输入语句“show variables like 'character%' ; ”,然后按【Enter】键执行该语句,查看当前数据库 StudentDB 修改后的字符集,结果如图 2-20 所示。
图 2-20 查看数据库 StudentDB修改后的字符集
查看数据库 StudentDB 修改后的排序规则
在命令提示符“mysql>”后输入语句“show variables like 'collation%' ; ”,然后按【Enter】键执行该语句,查看当前数据库 StudentDB 修改后的排序规则,结果如图 2-21 所示。
2.4 删除数据库
删除数据库是指在数据库系统中删除已经存在的数据库,即将已经存在的数据库从磁盘中清除。删除数据库之后,数据库中的数据也将被删除,原来分配的空间将被收回。值得注意的是,删除数据库会永久删除该数据库中的所有数据表及数据。因此,在删除数据库时,应特别谨慎。
在 MySQL 中,使用“Drop Database”语句可删除数据库,其语法格式如下 :
Drop Database [ if exists ] < 数据库名 > ;
若使用“if exists”子句,则可避免删除不存在的数据库时出现错误提示信息 ;如果没有使用“if exists”子句,那么删除的数据库在 MySQL 中不存在时,系统就会显示错误提示信息。
【任务 2-5】使用 Drop Database 语句删除数据库
【任务描述】 |
(1)查看 MySQL 当前连接中的数据库。 (2)删除数据库 StudentDB。 (3)在删除数据库 StudentDB 前后分别查看 MySQL 当前连接中的数据库。 |
【任务实施】
查看 MySQL 当前连接中的数据库
在命令提示符“mysql>”后输入“Show Databases ; ”语句,按【Enter】键,从运行结果中可以看出 MySQL 当前连接中包含了 StudentDB 数据库。
删除数据库 StudentDB
在命令提示符“mysql>”后输入以下语句 :
Drop Database StudentDB ;
按【Enter】键,出现“Query OK, 0 rows affected (0.11 sec)”提示信息,表示删除成功。
删除数据库 StudentDB 后,再一次查看 MySQL 当前连接中的数据库
在命令提示符“mysql>”后输入“Show Databases ;”语句并按【Enter】键,结果如图 2-22所示,可以看出当前连接中数据库 StudentDB 已不存在。
图 2-22 删除数据库 StudentDB后查看MySQL当前连接中的数据库
sys 数据库
performance_schema 数据库