【软件设计师】一篇文章带你了解数据库

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 【软件设计师】一篇文章带你了解数据库

🐓 数据库系统

数据库系统(Database System)是一个用于存储、检索、管理和维护数据的软件系统。它通常包含数据库(Database)数据库管理系统(Database Management System, DBMS)以及数据库管理员(Database Administrator, DBA)


数据库(Database

数据库是一个结构化的数据集合,它可以存储多种类型的数据,如文本、数字、图片、视频等。这些数据通常按照一定的结构(如表、视图、索引等)进行组织和存储,以便用户可以高效地查询和检索。


数据库管理系统(DBMS)

数据库管理系统是管理数据库的软件系统。它提供了多种功能,如数据的定义、插入、查询、更新、删除等,以及对数据库的安全性和完整性的控制。常见的数据库管理系统有MySQL、Oracle、SQLServer、PostgreSQL、SQLite等。


数据库管理员(DBA)

数据库管理员是负责管理和维护数据库的专业人员。他们负责设计数据库结构、优化查询性能、备份和恢复数据、监控数据库的运行状态以及处理数据库相关的故障和问题。


数据库系统的特点

结构化存储:数据库系统采用结构化的方式存储数据,使数据易于查询和管理。

数据共享:多个用户可以同时访问和操作数据库中的数据。

数据完整性:数据库系统通过完整性约束(如实体完整性、参照完整性等)保证数据的准确性和一致性。

数据安全性:数据库系统提供多种安全措施,如用户认证、访问控制等,以保护数据不被非法访问和篡改。

数据独立性:数据库系统实现了数据的物理独立性和逻辑独立性,使得应用程序与数据的存储结构和物理位置无关。


数据库系统的应用

数据库系统广泛应用于各种领域,如企业信息管理、电子商务、金融、科研、教育等。它们为企业和组织提供了高效、可靠的数据存储和管理解决方案,帮助他们更好地组织、分析和利用数据资源。


🐓 DBMS的功能

数据库管理系统(DataBase Managment System,DBMS)主要对共享数据的有效地组织,管理和存取。

1.数据库创建和管理:DBMS允许用户创建、配置和管理数据库,包括定义表、列、索引、视图和其他数据库对象,以及设置安全和访问控制等。

2.数据存储和管理:DBMS管理数据的存储、访问和维护,包括数据的插入、更新、删除和查询操作,以及数据的备份和恢复操作。

3.数据定义功能:DBMS提供数据定义语言(DDL)来定义数据库结构,包括表、视图、索引等数据库对象。这些定义存储在数据字典中,是DBMS运行的基础依据。

4.数据操纵功能:DBMS提供数据操纵语言(DML),用户可以使用DML实现对数据库的基本操作,如查询、插入、删除和修改等。DML分为宿主型和自含型,宿主型是将DML语句嵌入程序语言(如C, Java),自含型则是可以单独使用的DML语句。

5.数据库运行与管理:DBMS负责数据库在运行期间多用户环境下的并发控制、安全性检查、存取控制、完整性检查和执行、运行日志的组织管理、事务管理和自动恢复等。这些功能保证数据库正常运行,确保数据正确有效。

6.数据库备份和恢复:DBMS提供了备份和恢复功能,以便在数据库发生故障或数据丢失时,能够恢复数据并保护数据库的完整性。

7.数据库复制和同步:DBMS提供了复制和同步功能,以便在多个地点或多个服务器之间同步数据库,确保数据的一致性和可用性。

8.数据库监控和管理:DBMS提供了监控和管理功能,以便管理员能够实时地监控数据库的性能、资源使用情况、活动和事件,并对数据库进行管理和维护。


🐓 DBMS的特征

1.数据独立性:DBMS实现了数据与应用程序的独立性,这意味着用户可以通过逻辑模型来访问数据,而不需要了解数据的物理存储方式。数据的独立性包括数据的物理独立性和数据的逻辑独立性。物理独立性是指当数据的物理结构发生变化时,DBMS可以自动修改映射,以保持数据库逻辑结构和用户逻辑结构的不变,从而不影响应用程序的正常使用。逻辑独立性则是指用户逻辑结构(即应用程序所看到的数据结构)与数据库逻辑结构(即DBMS实际存储的数据结构)之间的独立性。

2.数据共享性:DBMS支持多用户共享数据库,多个用户可以同时访问和操作数据库,实现数据的共享和共同使用。由于数据以一个有结构的整体形式进行存储,任何一个应用程序的数据都可以从数据库中截取使用,实现了数据的共享性。

3.数据一致性:DBMS保证了数据的一致性,即数据的正确性和完整性。通过事务管理和并发控制机制,DBMS确保多个用户对数据的操作是一致的。

4.数据持久性:DBMS将数据存储在持久存储介质中,如硬盘或固态硬盘,以保证数据的持久性。即使在系统故障或断电的情况下,数据也不会丢失。

5.数据可扩展性:DBMS具有良好的可扩展性,可以根据需要扩展数据库的大小和性能。用户可以根据需求增加存储空间、调整缓存大小、优化查询等,以满足不断增长的数据需求。

6.数据安全性:DBMS提供了丰富的安全功能,包括用户认证、访问控制、数据加密等。这些功能保护数据不被非法访问和篡改,确保数据的安全性。

7.数据可管理性:DBMS提供了管理数据库的工具和接口,用户可以方便地管理数据库的结构、数据和权限。DBMS还提供了监控和诊断工具,帮助用户监控数据库的运行状态和性能。


🐓 DBMS的分类

按照数据模型分类

1.关系型数据库管理系统(RDBMS):这是最常见的一类数据库管理系统,基于关系数据模型进行数据的组织和管理。关系数据库使用表格来存储数据,并通过SQL(结构化查询语言)进行数据操作。常见的关系型数据库管理系统有Oracle、MySQL、SQL Server、PostgreSQL等。

2.非关系型数据库管理系统(NoSQL):与传统的关系型数据库不同,非关系型数据库不依赖于固定的表结构,而是采用键值对、文档、列族或图形等数据结构来存储数据。NoSQL数据库更适合处理大量、非结构化的数据,并且具有更高的可扩展性和灵活性。常见的非关系型数据库管理系统有MongoDB、Cassandra、Redis、Neo4j等。

按照数据存储方式分类

1.集中式数据库管理系统:所有数据都存储在一个集中的数据库服务器上,由数据库管理系统进行统一管理和维护。

2.分布式数据库管理系统:数据分布在多个数据库服务器上,每个服务器可以独立处理数据请求,并通过网络进行数据的通信和同步。分布式数据库管理系统可以提高数据的可扩展性和可靠性。


按照数据库的使用范围分类

1.桌面数据库管理系统:适用于个人或小型团队使用,通常安装在本地计算机上,用于管理小型数据库。

2.企业级数据库管理系统:适用于大型企业或组织使用,具有高可靠性、高性能和强大的功能,能够支持大量用户和复杂的数据操作。


🐓 数据库系统体系结构

集中式数据库系统

在集中式数据库系统中,所有的数据都存储在中心站点或中心服务器上,用户可以通过远程终端或本地站点上的终端来访问和操作这些数据。这种系统的数据管理控制也是集中的,由DBMS在中心站点上进行统一的管理和控制。


优点

1.数据集中存储和管理,方便数据的访问和协调。

2.数据冗余度小,因为所有数据都存储在中心位置,避免了数据的重复存储和浪费。

3.数据安全性和完整性容易得到保证,因为所有的数据操作都受到DBMS的统一管理和控制

缺点

1.如果中心站点或中心服务器发生故障,整个系统将无法使用,因为所有的数据都存储在中心位置。

2.数据流量可能较大,因为所有的数据操作都需要通过中心站点或中心服务器来完成。

3.对于大型分布式应用,集中式数据库系统可能无法满足性能和可扩展性的要求。

适用场景

需要统一管理和存储大量数据,确保数据的安全性、完整性和一致性,并提供高效的查询和分析功能的应用。例如数据仓库,电子商务,金融系统等。

71e1b808055c4f3e852c3edfd3d7340f.png

分布式数据库系统

数据库技术网络技术相结合的产物。其基本思想是将传统的集中式数据库中的数据分布到网络上的多台计算机中,形成一个逻辑上统一、物理上分散的数据库系统。


优点

1.数据独立性:分布式数据库系统允许用户在应用程序中独立地处理数据,而无需关心数据的物理存储和访问方式。这包括逻辑独立性、物理独立性和数据分布独立性,使得应用程序更加灵活和可维护。

2.场地自治性:每个节点都具有独立处理本地数据请求的能力,可以执行局部应用。这降低了网络通信的开销,提高了系统的响应速度。

3.分布透明性:用户对数据的访问和操作无需关心数据的物理分布情况,系统会将这些操作映射到相应的节点上执行。这简化了用户的使用体验,降低了系统的复杂性。

4.高可用性:由于数据分布在多个节点上,当某个节点发生故障时,其他节点可以继续提供服务,从而提高了系统的可用性。

5.可扩展性:分布式数据库系统可以轻松地添加新的节点来扩展系统的容量和性能,满足不断增长的数据处理需求。

6.负载均衡:通过将数据分布在多个节点上,可以实现负载均衡,提高系统的整体性能。


缺点

1.复杂性增加:由于数据分布在多个节点上,需要考虑数据的一致性、事务管理和安全性等问题,增加了系统的复杂性。

2.通信开销:虽然分布式数据库系统可以提高响应速度,但节点之间的通信开销可能会增加,特别是在处理大量数据时。

3.数据一致性和完整性维护:在分布式环境中维护数据的一致性和完整性是一个挑战,需要采用复杂的算法和机制来确保数据的正确性。

4.管理和维护困难:分布式数据库系统需要更多的管理和维护工作,包括节点之间的协调、数据备份和恢复等。


适用场景

适用于多种场景,特别是在需要处理大规模数据、高并发访问以及要求高可用性和可扩展性的情况下。例如物联网数据,大数据分析,多数据中心和云服务。


C/S数据库系统

这种结构中,一个处理机(客户端)的请求被送到另一个处理机(服务器)上执行。数据库系统功能分为前端和后端,前端主要处理用户界面和报表等,后端负责存取结构、查询计算和优化等。


优点

1.交互性强:C/S数据库系统允许客户端和服务器之间进行实时交互,用户可以在客户端上直接操作数据库,获得及时的数据反馈和处理结果。

2.安全性高:C/S结构通过点对点的通信方式,确保了数据传输的安全性和稳定性。同时,服务器端可以对数据进行严格的管理和控制,保证数据的安全性和完整性。

3.响应速度快:由于客户端和服务器直接相连,数据传输和处理的速度较快,用户可以获得更好的使用体验。

4.操作界面美观、功能强大:客户端应用程序可以根据用户的具体需求进行设计和开发,提供个性化的操作界面和强大的功能支持,满足用户的不同需求。

5.可扩充性好、管理简单:C/S结构可以灵活地扩展客户端和服务器的数量,方便系统的升级和维护。同时,系统的管理也相对简单,可以通过集中管理的方式对客户端和服务器进行配置和管理。

6.数据储存管理功能透明:在C/S结构中,数据的储存管理功能由服务器程序和客户应用程序分别独立进行,对于客户端用户来说,数据的存储和管理过程是透明的,无需关心背后的复杂过程。


缺点

1.高昂的维护成本:C/S数据库系统需要针对服务器和客户端分别进行维护,包括软件更新、硬件升级、网络安全等方面的工作。这通常需要专业的技术人员进行支持和维护,因此维护成本较高。

2.投资大:为了实现C/S数据库系统的正常运行,需要投入大量的资金购买和维护服务器、客户端设备、网络设备等。同时,还需要投入大量的人力和物力进行系统的开发、部署和维护。

3.依赖网络环境:C/S数据库系统的运行依赖于网络环境,如果网络出现故障或不稳定,将直接影响系统的正常运行。因此,需要投入大量的资金和时间来确保网络的稳定性和安全性。

4.客户端安装和维护工作量大:每个客户端都需要安装相应的应用程序,并进行定期的维护和更新。这增加了管理员的工作量,也增加了用户的等待时间。

5.数据安全问题:虽然C/S数据库系统可以通过服务器对数据进行集中管理,但在数据传输过程中仍然存在一定的安全风险。如果安全措施不到位,可能会导致数据泄露或被篡改。

6.系统扩展性受限:C/S数据库系统的扩展性相对较差,如果需要增加新的客户端或服务器,需要对整个系统进行重新配置和部署,增加了系统的复杂性和成本。


适用场景

常用在需要实时处理大量数据、保证数据的安全性和一致性,并且需要方便的管理和维护的应用。例如医院管理系统,银行管理系统,物流管理系统等。

b83f9671f9284904b0497b411906db81.png

并行式数据库系统

通过将数据库管理技术与并行处理技术有机结合,发挥多处理机结构的优势,从而提供比相应的大型机系统要求高得多的性价比和可用性。这种系统可以利用多个处理机对磁盘数据进行并行处理,解决磁盘的瓶颈问题,并通过开发查询时间并行性(不同查询并行执行)、查询内并行性(同一查询内的子操作并行执行)以及操作内并行性(子操作并行执行),大大提高查询效率。


共享内存式多处理器

共享内存式多处理器具有多种优势。首先,由于所有处理器都可以访问同一个内存空间,因此它们可以方便地共享数据和程序,这有助于简化编程模型和提高并行程序的效率。其次,这种架构通常具有较高的性能和可扩展性,因为处理器可以并行执行不同的任务,并且可以通过增加处理器数量来扩展系统的计算能力。

6a05f97659c34a4487e3d846f2a7146d.png

无共享式并行体系结构

在无共享式并行体系结构中,每个处理器节点都拥有自己的局部内存和存储设备,负责管理和访问自己的数据。当需要与其他节点进行通信或协作时,节点之间通过高速通信网络进行数据传输和同步。这种架构的优势在于它具有较高的可扩展性和可靠性,因为每个节点都可以独立地扩展和升级,而不会影响其他节点的运行。

e66c6537128146aea699670b1c16c2a2.png

🐓 数据库的三级模式

数据库的三级模式结构是数据库设计中的一个重要概念,它包括外模式、概念模式和内模式三个层次。这三个层次提供了不同的视图和抽象级别,使得数据库的设计、管理和使用更加灵活和高效。


外模式(External Schema)

也称为用户模式或子模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。

它描述了用户所关心的那部分数据,即与某个应用相关的那部分数据的逻辑表示。

一个数据库可以有多个外模式,因为不同的用户或应用程序可能关心不同的数据子集。

一个应用程序只能使用一个外模式。


概念模式(Conceptual Schema)

也称为逻辑模式,是整个数据库的逻辑结构的描述,它是数据库设计的核心。

它描述了现实世界中的实体及其性质与联系,定义了记录、数据项、数据的完整性约束条件以及记录之间的联系。

概念模式提供了一个全局的、统一的、抽象的数据视图,是数据库管理员进行数据库设计和管理的基础。

一个数据库只有一个概念模式。


内模式(Internal Schema)

也称为存储模式,描述了数据在存储介质上的存储方式和物理结构,是数据库最低一级的逻辑描述。

它与具体的物理存储介质和存取方法有关,如数据的存储格式、存储位置、存储设备的组织方式等。

内模式的设计需要考虑数据的存储效率、访问速度、安全性等因素。

一个数据库只有一个内模式。


优点

实现了数据库的逻辑独立性物理独立性。逻辑独立性是指外模式与概念模式之间的独立性,即当概念模式改变时,外模式可以保持不变,从而不影响应用程序。物理独立性是指概念模式与内模式之间的独立性,即当数据的物理存储方式改变时,概念模式可以保持不变,从而不影响外模式和应用程序。这种独立性使得数据库的设计、管理和使用更加灵活和高效。

a023b00be1d441c5a1eba680a4c4d144.png

🐓 数据库的两级映像

数据库的两级映像是指数据库管理系统(DBMS)提供的两个层次的映像,用于保证数据库中的数据具有较高的逻辑独立性和物理独立性。


外模式/模式映像(External Schema/Conceptual Schema Mapping)

这是数据库的第一个映像,存在于外模式和概念模式之间。

它定义了外模式与概念模式之间的对应关系,描述了如何将外模式中的数据映射到概念模式中的数据。

当概念模式(即全局逻辑结构)发生变化时,只需要修改外模式/概念模式映像,而不需要修改应用程序,从而保证了数据的逻辑独立性。

这种逻辑独立性意味着应用程序可以独立于底层数据库的设计变化而变化。


模式/内模式映像(Conceptual Schema/Internal Schema Mapping)

这是数据库的第二个映像,存在于概念模式和内模式之间。

它定义了概念模式与内模式之间的对应关系,即数据全局逻辑结构和存储结构之间的对应关系。

当数据的物理存储方式(如数据的组织、存储格式等)发生变化时,只需要修改模式/内模式映像,而不需要修改概念模式和外模式,从而保证了数据的物理独立性。

这种物理独立性意味着底层数据的物理存储结构可以独立于上层应用程序和逻辑设计而变化。

1c20b947964747db86bd17ab519c8269.png

🐓 数据的独立性

数据的独立性是数据库系统的一个核心特性,它指的是数据库中的数据与应用程序之间的独立关系。

逻辑独立性是指数据库的逻辑结构(即概念模式)与应用程序之间的独立关系。当数据库的逻辑结构发生变化时,应用程序不需要进行相应的修改,因为应用程序是通过外模式与数据库进行交互的,而外模式与概念模式之间的映射关系保证了这种独立性。这种逻辑独立性使得应用程序可以独立于数据库的逻辑设计变化而变化,从而减少了应用程序的维护和修改工作。

物理独立性是指数据库的物理结构(即内模式)与逻辑结构(即概念模式)之间的独立关系。当数据库的物理存储方式、存储格式等发生变化时,逻辑结构不需要进行相应的修改,因为概念模式与内模式之间的映射关系保证了这种独立性。这种物理独立性使得底层数据的物理存储结构可以独立于上层应用程序和逻辑设计而变化,从而提高了数据库系统的灵活性和可维护性。


🐓 数据模型

数据模型(Data Model)是对现实世界数据特征的抽象表示,它描述了数据、数据之间的关系以及数据操作的约束条件。

根据应用的不同,数据模型可以分为两大类

概念模型:按用户的观点对数据和信息进行建模,主要用于数据库设计。它是对现实世界的事物及其联系的第一级抽象,不依赖于具体的计算机系统,不涉及信息在计算机内如何表示、如何处理等问题。

逻辑模型:直接面向数据库系统的模型,用于DBMS的实现。它进一步细分为层次模型、网状模型、关系模型、面向对象数据模型、和对象关系数据模型、半结构化数据模型等。


🐓 数据模型三要素

1.数据结构:主要描述数据的类型、内容、性质以及数据间的联系等。它是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。

2.数据操作:描述在相应的数据结构上的操作类型和操作方式。它是操作运算符的集合,包括若干操作和推理规则,用以对目标类型的有效实例所组成的数据库进行操作。

3.数据约束:描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。


🐓 E-R图

E-R图,也称为实体-联系图(Entity-Relationship Diagram),是数据模型的一种可视化表示方法,用于描述现实世界的概念模型。E-R图提供了表示实体类型、属性和联系的方法,是数据库设计的重要工具。

基本元素

1.实体型(Entity):这是E-R图的核心部分,它代表现实世界中可以区分的对象或事物。在E-R图中,实体型用矩形表示,矩形内部写明实体名称。实体可以是具体的(如学生、产品),也可以是抽象的(如事件、行为)。

2.属性(Attribute):属性描述了实体所具有的某一特性或特征。在E-R图中,属性用椭圆形表示,椭圆内部写明属性名称。属性与实体之间通过无向边连接,表示该属性属于该实体。属性可以是基本数据类型(如整数、字符串),也可以是复合数据类型(如地址、日期)。

3.联系(Relationship):联系描述了不同实体集之间的联系。在E-R图中,联系用菱形表示,菱形内部写明联系名称。菱形通过无向边与相关的实体连接,表示这些实体之间存在某种关系。联系的类型可以是1:1(一对一)、1:n(一对多)或m:n(多对多)


🐓 完整性约束

确保数据库中数据的准确性、可靠性和一致性的规则和条件。这些约束条件定义了数据在数据库中应该如何存储和管理,以防止无效或错误的数据进入数据库。

实体完整性(Entity Integrity)

确保数据库中的每个表都有一个唯一标识符,通常是主键(Primary Key)。

主键的值必须是唯一的,并且不能为空(NULL)。

这意味着表中的每一行都必须有一个唯一的标识,以便于区分和引用。

参照完整性(Referential Integrity)

确保数据库中的表之间的关系保持一致性。

当一个表中的数据引用另一个表中的数据时(例如,外键),参照完整性规则确保引用的数据是有效和存在的。

这防止了数据的不一致性和冗余。

用户定义完整性(User-Defined Integrity)

这是根据特定应用的需要而定义的约束条件。

用户可以定义规则来确保数据满足特定的业务规则或需求。


🐓 关系代数运算

关系代数运算是一组在关系数据库上执行的操作,用于查询和操作关系数据。

d084d2837e82469788fbdf017f30f1c4.png


关系代数运算

并(Union)

符号:∪

定义:将两个关系合并成一个新的关系,要求两个关系具有相同的结构(即属性数目和类型相同)。

示例:R ∪ S 表示关系 R 和 S 的并集,其中 R 和 S 具有相同的结构。

563d365e4cdc45a7bd1d19f43d2c299b.png

差(Difference)

符号:-

定义:从一个关系中减去另一个关系,得到的结果是第一个关系中存在但第二个关系中不存在的元组。

示例:R - S 表示关系 R 中存在但不在关系 S 中的元组集合。

ca6cf703a12b4ba39f5a38e848658cc2.png

笛卡尔积(Cartesian Product)

符号:×

定义:两个关系的笛卡尔积是一个新的关系,其中的元组是第一个关系的每个元组与第二个关系的每个元组的组合。

示例:R × S 表示关系 R 和 S 的笛卡尔积。

d912f2210cea4ddea44454c435793d8e.png

投影(Projection)

符号:π (pi)

定义:从一个关系中选择指定的属性列,形成新的关系。

示例:π_A,C(R) 表示从关系 R 中选择 A 和 C 属性列的所有元组。

b94fd82ea7814b48b72402f3d0d3867c.png

连接(Join)

符号:⨝ (bowtie)

定义:根据两个关系之间的某些属性值的相等条件,将这两个关系连接起来。

示例:R ⨝_A=S.B S 表示根据 A 属性的值等于 S 关系中 B 属性的值,将关系 R 和 S 进行连接。

1c3132554a72465ba1c40df3e06a4d25.png

f97a84e958d54b42897a0bc429ab6427.png

2fc7a8887a664b25a30852199b0789a2.png

除(Division)

符号:÷

定义:如果一个关系 R 中的所有元组在另一个关系 S 的元组上都有相同的属性值,则结果是一个新的关系,其中包含 R 中满足这个条件的所有元组。

示例:R ÷ S 表示关系 R 被关系 S 除的结果。

0172440115334b05826727dc6547b2dc.png


1ffcf0a60b2a46ea8f2a92d85da84665.png

重命名(Renaming)

符号:ρ (rho)

定义:对关系的属性进行重命名。

示例:ρ_A→X, B→Y(R) 表示将关系 R 中的 A 属性重命名为 X,B 属性重命名为 Y。


🐓 SQL语言的特点

SQL(结构化查询语言)是一种用于管理关系型数据库的编程语言

1.综合统一:SQL语言集数据查询、数据定义和数据控制功能于一体,语言风格统一,可以完成数据库活动中的全部工作。

2.高度非过程化:用户只需要指出“做什么”, 而不需要指出“怎么做”,数据的存取和整个语句的操作过程由系统自动完成,大大减轻了用户的负担。

3.面向集合的操作方式:查询的结果和更新操作的对象均可为元组的集合。

4.以同一种语法结构提供两种使用方式:SQL既是自含式语言,又是嵌入式语言,用户可以在终端上以交互方式使用SQL语言,也可以嵌入到C/C++、Java等主语言程序中,供主程序调用执行。

5.简单易学,灵活易用:语言简洁,语法简单。既可直接使用SQL语句对数据库进行操作,也可把SQL语句嵌入到高级语言程序中。

6.高效性:SQL的执行速度快,可以对海量数据进行快速的查询和操作,有效提高了数据处理的效率和质量。

7.可移植性:SQL是一种标准的语言,被广泛应用于各种数据库系统中,如MySQL、Oracle、SQL Server等,具有较好的跨平台性和兼容性,可移植性强。

8.数据库操作的严谨性:SQL强调数据的完整性、一致性和安全性,可以有效保护数据库中的数据,确保数据的正确性和可靠性。

9.支持多种操作:SQL支持数据的查询、插入、修改和删除等操作,同时还支持数据表的创建、修改、删除和重命名等管理操作,以及存储过程、触发器和函数等高级操作,可满足不同的数据库管理需求。


🐓 SQL语言的组成

1.数据定义语言(DDL,Data Definition Language):DDL用于定义和管理数据库中的对象,如表(Table)、索引(Index)、视图(View)等。常见的DDL命令包括CREATE(创建)、ALTER(修改)和DROP(删除)等。

2.数据操作语言(DML,Data Manipulation Language):DML用于对数据库中的数据进行操作,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)等。

3.数据查询语言(DQL,Data Query Language):DQL用于从数据库中查询数据,最常用的DQL语句是SELECT语句,它可以用于获取特定条件下的数据集合。

4.数据控制语言(DCL,Data Control Language):DCL用于控制数据库的访问权限和安全性,包括授权(GRANT)、回收权限(REVOKE)等。

5.事务控制语言(TCL,Transaction Control Language):TCL用于控制数据库中的事务,包括事务的提交(COMMIT)和回滚(ROLLBACK)等。


🐓 SQL数据定义

在SQL(结构化查询语言)中,数据定义(Data Definition)涉及创建、修改和删除数据库结构中的对象,如表(Tables)、索引(Indexes)、视图(Views)、触发器(Triggers)和存储过程(Stored Procedures)等。


创建表(CREATE TABLE)

CREATE TABLE 表名 (  
    列名1 数据类型1 [约束1],  
    列名2 数据类型2 [约束2],  
    ...  
);

修改表(ALTER TABLE)

ALTER TABLE 表名  
ADD 列名 数据类型 [约束];  
  
ALTER TABLE 表名  
DROP COLUMN 列名;  
  
ALTER TABLE 表名  
MODIFY COLUMN 列名 数据类型;  
  
ALTER TABLE 表名  
ADD CONSTRAINT 约束名 约束类型 (列名);


删除表(DROP TABLE)

DROP TABLE 表名;


创建索引(CREATE INDEX)

CREATE INDEX 索引名 ON 表名 (列名);


删除索引(DROP INDEX)

DROP INDEX 索引名 ON 表名;


创建视图(CREATE VIEW)

CREATE VIEW 视图名 AS  
SELECT 列名1, 列名2, ...  
FROM 表名  
WHERE 条件;


删除视图(DROP VIEW)

DROP VIEW 视图名;


创建存储过程(CREATE PROCEDURE)

CREATE PROCEDURE 存储过程名  
[参数1, 参数2, ...]  
AS  
BEGIN  
    -- SQL语句  
END;


删除存储过程(DROP PROCEDURE)

DROP PROCEDURE 存储过程名;


创建触发器(CREATE TRIGGER)

CREATE TRIGGER 触发器名  
ON 表名 [FOR | AFTER | INSTEAD OF] [INSERT | UPDATE | DELETE]  
AS  
BEGIN  
    -- SQL语句  
END;


删除触发器(DROP TRIGGER)

DROP TRIGGER 触发器名 ON 表名;


🐓 SQL数据查询

在SQL(结构化查询语言)中,数据查询是最常用的操作之一,用于从数据库中检索数据。


select查询

SELECT 列名1, 列名2, ...  
FROM 表名  
WHERE 条件;


聚合函数

SELECT AVG(列名) FROM 表名;


分组(GROUP BY)

SELECT 列名1, COUNT(列名2) FROM 表名 
GROUP BY 列名;


排序(ORDER BY)

SELECT *  
FROM 表名  
ORDER BY 列名 DESC;


连接(JOIN)

SELECT 返回值  
FROM 表1
INNER JOIN 表2 ON 表1.列1 = 表2.列1  


LIMIT和OFFSET

SELECT *  
FROM students  
LIMIT 数量;


SELECT *  
FROM students  
LIMIT 数量 OFFSET 开始量;


🐓 插入数据

基本语法

1. INSERT INTO 表名 (列名1, 列名2, 列名3, ...)  
2. VALUES (值1, 值2, 值3, ...);


🐓 修改数据

基本语法

UPDATE 表名  
SET 列名1 = 值1, 列名2 = 值2, ...  
WHERE 条件;


🐓 删除数据

基本语法

DELETE FROM 表名  
WHERE 条件;


🐓 授权

授予特定权限

GRANT SELECT, INSERT ON 表名 TO '用户名'@'主机名';


授予特定权限

GRANT ALL PRIVILEGES ON 表名 TO '用户名'@'主机名';


授予特定列的权限

GRANT SELECT (列名1, 列名2) ON 表名 TO '用户名'@'主机名';


🐓 回收权限

撤销特定权限

REVOKE SELECT, INSERT ON 表名 FROM '用户名'@'主机名';


撤销所有权限

REVOKE ALL PRIVILEGES ON 表名 FROM '用户名'@'主机名';


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
SQL 存储 BI
【软件设计师备考 专题 】数据库语言(SQL)
【软件设计师备考 专题 】数据库语言(SQL)
115 0
|
2月前
|
存储 安全 算法
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
88 0
|
19天前
|
前端开发 数据库
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
|
15天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的《数据库原理及应用》课程平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的《数据库原理及应用》课程平台附带文章源码部署视频讲解等
17 0
|
1月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
30 4
|
1月前
|
Java 测试技术 数据安全/隐私保护
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
20 0
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
|
2月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的《数据库系统原理》课程平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的《数据库系统原理》课程平台附带文章和源代码设计说明文档ppt
28 1
|
2月前
|
存储 分布式数据库 数据库
【软件设计师—基础精讲笔记3】第三章 数据库系统
【软件设计师—基础精讲笔记3】第三章 数据库系统
70 0
|
2月前
|
编解码 缓存 数据库
【软件设计师备考 专题 】编写内部设计文档:屏幕设计和数据库设计
【软件设计师备考 专题 】编写内部设计文档:屏幕设计和数据库设计
95 0
|
2月前
|
存储 传感器 数据管理
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
68 0