本文摘自千锋教育编著的《MySQL数据库从入门到精通》,文中项目多,案例分析简洁,并有对应视频学习,让自学变得简单,实战就业。
1.1数据库入门
1.1.1什么是数据库
数据库(Database,DB)是建立在计算机存储设备上,按照数据结构来组织、存储和管理数据的仓库,可将其视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行增加、删除、修改、查找等操作,这里所说的数据不仅包含数字,还包含文字、视频、声音等,数据库的主要特点如下所示。
- 实现数据共享:数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
- 减少数据的冗余度:同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据和数据冗余,维护了数据的一致性。
- 数据的独立性:数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
- 数据实现集中控制:文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中,其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
- 数据一致性和可维护性:主要包括安全性控制(以防止数据丢失、错误更新和越权使用)、完整性控制(保证数据的正确性、有效性和相容性)和并发控制(使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用)。
- 故障恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复运行时出现的故障,可能是物理上或是逻辑上的错误。
另外,初学者可能会认为数据库就是数据库系统,其实,数据库系统的范围比数据库大很多,数据库系统是由硬件和软件组成,其中硬件主要用于存储数据库中的数据,软件主要包括操作系统以及应用程序等,数据库系统的几个重要部分的关系如图1.1所示。
图1.1中可以看到,数据库系统几个重要部分的关系,这些重要部分的解释具体如下。
- 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。
- 数据库管理系统(DataBase Management
System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。 - 数据库应用程序(DataBase Application
System,DBAS):用户在对数据库进行复杂管理的时候,DBMS可能无法满足用户需求,这时就需要使用数据库应用程序访问和管理DBMS中存储的数据。
通常情况下,会用数据库来表示所使用的数据库软件,这经常会引起混淆,确切的说,数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。
1.1.2 SQL简介
Structure Query Language(结构化查询语言)是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准,各数据库厂商都支持ISO的SQL标准,并在标准的基础上做了自己的扩展。
从以上介绍可以看出,SQL有以下几项优点。
- 不是某个特定数据库供应商专有的语言,几乎所有重要的数据库管理系统都支持SQL。
- 简单易学,该语言的语句都是由描述性很强的英语单词组成,且这些单词的数目不多。
- 高度非过程化,即用SQL操作数据库,只需指出“做什么”,无须指明“怎么做”,存取路径的选择和操作的执行由数据库自动完成。
SQL包含了所有对数据库的操作,它主要由四个部分组成,具体如下。
-
数据库定义语言(DDL):主要用于定义数据库、表等,其中包括CREATE语句、
ALTER语句和DROP语句,CREATE语句用于创建数据库、数据表等,ALTER语句用于修改表的定义等,DROP语句用于删除数据库、删除表等。
-
数据库操作语言(DML):主要用于对数据库进行添加、修改和删除操作,其中包括INSERT语句、UPDATE语句和DELETE语句,INSERT语句用于插入数据,UPDATE语句用于修改数据,DELETE语句用于删除数据。
-
数据库查询语言(DQL):主要用于查询,也就是SELECT语句,SELECT语句可以查询数据库中的一条或多条数据。
-
数据控制语言(DCL):主要用于控制用户的访问权限,包括GRANT语句、REVOKE语句、COMMIT语句和ROLLBACK语句,GRANT语句用于给用户添加权限,REVOKE语句用于收回用户的权限,COMMIT语句用于提交事务,ROLLBACK语句用于回滚事务。
通过SQL,可以直接操作数据库,很多应用程序中也经常使用SQL语句,例如Java程序中可以嵌入SQL语句,实现Java程序调用SQL语句操作数据库,此外,PHP、Python等语言也可以嵌套SQL语句。
1.1.3常见的数据库产品
随着数据库技术的不断发展,数据库产品越来越多,从关系型数据库到后来的非关系型数据库,2017年8月,DB-Engines发布了最新的数据库排行,如图1.2所示。
从图1.2中可以看到,Oracle居首位,其他数据库也不同程度地受关注,这里介绍一些常见的数据库产品,具体如下。
1.Oracle数据库
Oracle Database,又名Oracle RDBMS,或简称Oracle,是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上最流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好、适应高吞吐量的数据库解决方案。
2.MySQL数据库
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其高效性、可靠性和适应性而备受关注,大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
3.SQL Server数据库
SQL Server是美国Microsoft公司推出的一种关系型数据库系统,它是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
4.MongoDB数据库
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。它支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且支持对数据建立索引。
5.DB2数据库
DB2是IBM公司开发的关系数据库管理系统,它有多种不同的版本,如:DB2工作组版(DB2Workgroup Edition)、DB2企业版(DB2 Enterprise Edition)、DB2个人版(DB2 Personal Edition)和DB2企业扩展版(DB2 Enterprise-Extended Edition)等,这些产品基本的数据管理功能是一样的,区别在于支持远程客户能力和分布式处理能力。
6.Redis数据库
Redis 是一个高性能的key-value数据库。在部分场合可以对关系数据库起到很好的补充作用。它提供了Java、C/C++、C#、PHP、JavaScript、Perl、Object-C、Python和Ruby等客户端,使用很方便。
关注公众号:千问千知(qwqz1000),领取MySQL视频教程。