第3章 数据库的创建与操作

本章内容提要

MySQL数据库安装好之后,就可以进行数据库的相关操作了。MySQL数据库是指所涉及的对象以及数据的集合,它不仅反映了数据本身的内容,而且反映了对象以及数据之间的联系,对数据库的操作是开发人员的一项重要工作。本章就来介绍MySQL数据库的创建与操作。

本章知识点

  • 创建MySQL数据库的方法。
  • 查看数据库的方法。
  • 选择数据库的方法。
  • 删除数据库的方法。
  • MySQL数据库中的存储引擎。
  • 修改存储引擎的方法。

3.1 MySQL数据库概述

MySQL数据库是存放有组织的数据集合的容器,以系统文件的形式存储在磁盘上,由数据库系统进行管理和维护。

3.1.1 数据库特点

在MySQL中,数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的应用程序接口(Application Program Interface,API),用于创建、访问、管理、搜索和复制所保存的数据。

不过,也可以将数据存储在文件中,但是在文件中读写数据的速度相对较慢。所以,现在使用关系数据库管理系统(Relational Database Management System,RDBMS)来存储和管理大数据量。而MySQL是最流行的关系数据库管理系统,尤其是在Web应用方面,MySQL可以说是最好的RDBMS应用软件之一。

关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关系数据库管理系统具有以下特点,这也是MySQL数据库具有的特点。

(1)数据以表格的形式出现。

(2)每行为各种记录名称。

(3)每列为记录名称所对应的数据域。

(4)许多的行和列组成一张表单。

(5)若干的表单组成数据库。

3.1.2 数据库对象

MySQL数据库中的数据在逻辑上被组织成一系列对象,当一个用户连接到数据库后,所看到的是这些逻辑对象,而不是物理的数据库文件。MySQL中有以下数据库对象。

(1)数据表:数据库中的数据表与我们日常生活中使用的表格类似,由列和行组成。其中,每一列代表一个相同类型的数据。每列又称为一个字段,每列的标题称为字段名;每一行包括若干列信息,一行数据称为一个元组或一条记录,它是有一定意义的信息组合,代表一个实体或联系;一个数据库表由一条或多条记录组成,没有记录的表称为空表。

(2)主键:每个表中通常都有一个主关键字,用于唯一标识一条记录。主键是唯一的,用户可以使用主键来查询数据。

(3)外键:用于关联两个表。

(4)复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

(5)索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,类似于书籍的目录。

(6)视图:视图看上去同表相似,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存在。视图是由查询数据库表或其他视图产生的,它限制了用户能看到和修改的数据。由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。

(7)默认值:默认值是当在表中创建列或插入数据时,为没有指定具体值的列或列数据项赋予事先设定好的值。

(8)约束:是数据库实施数据一致性和数据完整性的方法,或者说是一套机制,包括主键约束、外键约束、唯一性约束、默认值约束和非空约束。

(9)规则:用来限制数据表中字段的有限范围,以确保列中数据完整性的一种方式。

(10)触发器:一种特殊的存储过程,与表格或某些操作相关联,当用户对数据进行插入、修改、删除或对数据库表进行建立、修改、删除时激活,并自动执行。

(11)存储过程:一组经过编译的可以重复使用的T-SQL代码的组合,它是经过编译存储到数据库中的,所以运行速度要比执行相同的SQL语句块快。

MySQL为关系数据库,这种所谓的“关系”可以理解为“表格”的概念,一个关系数据库由一个或数个表格组成。图3-1所示为一个表格。

(1)表头(header):每一列的名称。

(2)列(col):具有相同数据类型的数据的集合。

(3)行(row):每一行用来描述某条记录的具体信息。

图3-1 一个表格

(4)值(value):行的具体信息,每个值必须与该列的数据类型相同。

(5)键(key):键的值在当前列中具有唯一性。

3.1.3 系统数据库

MySQL包含了information_schema、mysql、performance_schema、sakila、sys和world 6个系统数据库。在创建任何数据库之前,用户可以使用命令来查看系统数据库,具体的方法为:在“命令提示符”窗口中登录到MySQL数据库,然后输入如下命令:

    SHOW DATAVASES;

图3-2 查看数据库

按Enter键,即可显示出系统数据库,如图3-2所示。

(1)information_schema:这个数据库保存了mysql服务器所有数据库的信息,比如数据库的名、数据库的表、访问权限、数据库表的数据类型、数据库索引的信息等。该数据库是一个虚拟数据库,物理上并不存在,在查询数据后,从其他数据库获取相应的信息。

(2)mysql:这个数据库是MySQL的核心数据库,类似于SQL Server中的master表,主要负责存储数据库的用户、权限设置、关键字等,还有mysql自己需要使用的控制和管理信息。例如,可以使用mysql数据库中的mysql.user表来修改root用户的密码。

(3)performance_schema:这个数据库主要用于收集数据库服务器性能参数,并且数据库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表的。

(4)sakila:这个数据库最初由MySQL AB文档团队的前成员Mike Hillyer开发,旨在提供可用于书籍、教程、文章、样本等示例的标准模式。sakila示例数据库还用于突出MySQL的最新功能,如视图、存储过程和触发器。

(5)sys:这个数据库所有的数据源来自performance_schema数据库。目标是把performance_schema数据库的复杂度降低,让数据库管理员(DBA)能更好地阅读这个库里的内容,从而让数据库管理员更快地了解数据库的运行情况。

(6)world:这个数据库是MySQL提供的示例数据库,包括3个数据表,分别是city城市表、country国家表、countrylanguage国家语言表。