MySQL从入门到精通(四)

                                              数据库操作

4.1 认识数据库

4.1.1 数据库基本概念

数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库,是存储在一起的相关数据的集合。其优点主要体现在以下几个方面:

  1. 减少数据的冗余度,节省数据的存储空间;
  2. 具有较高的数据独立性和易扩充性;
  3. 实现数据资源的充分共享。

下面介绍与数据库相关的几个概念:

1.数据库系统

数据库系统(DataBase System,DBS)是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的储存、管理、处理、维护数据的系统。

2.数据库管理系统

数据库管理系统(DataBase Management System,DBMS)是科学组织和储存数据,对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。高效地获取和维护数据的系统软件。位于用户和操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。它主要的功能包括:

1.数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。

2.数据操作:DBMS提供数据操作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等操作。

3.数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。

4.数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。

5.数据库的保护:数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。

6.数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。

7.通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。

3.关系数据库
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库的时候,你能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。而SQL语言是标准用户和应用程序到关系数据库的接口。其优势是容易扩充,且在最初的数据库创造之后,一个新的数据种类能被添加而不需要修改所有的现有应用软件。

  • 关系数据结构:在关系模型中数据结构单一,现实世界的实体以及实体间的联系均用关系来表示,实际上关系模型中数据结构就是一张二维表
  • 关系操作集合:关系操作分为关系代数、关系演算、具有关系代数和关系演算双重特点的语言(SQL)
  • 完整性约束:完整性约束包括实体完整性 参照完整性 用户定义完整性

4.1.2 数据库常用对象

在MySQL的数据库中,表、视图、存储过程和索引等具体存储数据或对数据进行操作的实体都被称为数据库对象。下面介绍几种常用的数据库对象。

  • 表:表是包含数据库中所有数据的数据库对象,由行和列组成,用于组织和存储数据 
  • 字段:表中每列称为一个字段
  • 索引:索引是一个单独的、物理的数据库结构
  • 视图:视图是从一张或多张表中导出的表(也称虚拟表),是用户查看数据表中数据的一种方式 
  • 存储过程:存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作)

4.1.3 系统数据库

系统数据库是指安装完MySQL服务器后,会附带一些数据库。系统数据库会记录一些必需的信息,用户是不能直接修改这些系统数据库的。test和sakila除外,这两个数据库中信息对于系统不是必须的,可以进行修改。

4.2 创建数据库

在MySQL中,通过CREATE DATABASE语句和CREATE SCHEMA语句创建数据库,语法如下:

create  {DATABASE|SCHEMA}  [IF NOT EXISTS]  数据库

[        [DEFAULT] CHARACTER SET [=] 字符集 | [DEFAULT] COLLATE [=] 校对规则名称

];

4.2.1 通过CREATE DATABASE语句创建基本数据库

通过CREATE DATABASE语句创建一个名称为db_admin的数据库。

MySQL从入门到精通(四)

4.2.2 通过CREATE SCHEMA语句创建基本数据库

通过CREATE SCHEMA语句创建一个名称为db_admin1的数据库。

MySQL从入门到精通(四)

4.2.3 创建指定字符集的数据库

在创建数据库时,如果不指定其使用的字符集或者是字符集的较对规则,那么将根据my.ini文件中指定的default-character-set变量的值来设置其使用的字符集。

MySQL从入门到精通(四)

4.2.4 创建数据库前判断是否存在同名数据库

在MySQL中,不允许同一系统中存在两个相同名称的数据库,如果要创建的数据库名称已经存在,那么系统将给出以下错误信息: ERROR 1007 (HY000): Can't create database 'db_test'; database exists

4.3 查看数据库

成功创建数据库后,可以使用SHOW命令查看MySQL服务器中的所有数据库信息。语法如下:

SHOW  {DATABASES|SCHEMAS}

[LIKE '模式' WHERE 条件] ;

MySQL从入门到精通(四)

4.4 选择数据库

在MySQL中,使用CREATE DATABASE语句创建数据库后,该数据库并不会自动成为当前数据库。如果想让它成为当前数据库,需要使用MySQL提供的USE语句来实现,USE语句可以实现选择一个数据库,使其成为当前数据库。只有使用USE语句指定某个数据库为当前数据后,才能对该数据库及其存储的数据对象执行稳中有降种后消费品操作。 USE语句的语法格式如下:     USE  数据库名;

MySQL从入门到精通(四)

4.5 修改数据库

在MySQL中,创建一个数据库后,还可以对象其进行修改,不过这里的修改是指可以修改被创建数据库的相关参数,并不能修改数据库名。修改数据库名不能使用这个语句。修改数据库可以使用ALTER DATABASE或者ALTER SCHEMA语句来实现。 修改数据库的语句的语法格式如下:

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

             [DEFAULT] CHARACTER SET [=] 字符集 |

             [DEFAULT] COLLATER [=] 较对规则名称

MySQL从入门到精通(四)

4.6 删除数据库

在MySQL中,可以通过使用DROP DATABASE语句或者DROP SCHEMA语句来删除已经存在的数据库。使用该命令删除数据库的同时,该数据库中的表,以及表中的数据也将永久删除,因此,在使用该语句删除数据库时,一定要小心,以免误删除有用的数据库。 DROP DATABASE或者DROP SCHEMA语句的语法格式如下:

DROP {DATABASE|SCHEMA} [IF EXISTS]  数据库名;

MySQL从入门到精通(四)

当我们使用上面的命令删除数据库,如果指定的数据库不存在,将产生如图所示的异常信息。

MySQL从入门到精通(四)

为了解决这一问题,可以在DROP DATABASE语句中使用IF EXISTS从句来保证只有当数据库存在时才执行删除数据库的操作。

MySQL从入门到精通(四)