什么是MySQL?

本文涉及的产品
RDS AI 助手,专业版
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 这篇文章介绍了MySQL,一个流行的开源数据库系统,用于Web应用。MySQL基于客户机/服务器架构,允许多用户并发访问并提供安全控制。它支持SQL标准,包括数据类型如数值、字符串和日期,以及内置函数。查询语言SQL是其核心,强调非过程化编程,简化数据操作。示例展示了如何用SQL选择特定记录。

640.png


本文介绍MySQL的体系结构和查询语言。
# 01、MySQL简介
MySQL是目前最流行的关系数据库管理系统之一,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。在Web应用方面,MySQL是最好的关系数据库管理系统支撑软件之一。MySQL将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,表之间通过外键建立关联,这样就增加了数据存取的速度并提高了数据操作的灵活性。MySQL使用最常用的标准化SQL定义、访问和操作数据库。其社区版的性能卓越,搭配PHP和Apache即可组建良好的开发环境。MySQL软件体积小、运行速度快、总体拥有成本低,特别是开放源码这一特点,一般中小型Web应用程序的开发都选择MySQL作为支撑数据库。
# 02、MySQL的体系结构



MySQL采用的是客户机/服务器(Client/Server)体系结构,因此,在使用MySQL存取数据时,必须至少使用两个或者两类程序。

(1) 在数据服务器上的数据库服务程序(对应Server端)。数据库服务程序监听从网络上传过来的客户机请求并根据这些请求访问数据库,并将结果返回给客户机以响应它们的请求。

(2) 连接到数据库服务器的客户机程序(对应Client端)。这些程序是用户和服务器交互的工具,负责将用户需求进行加工并传递到服务器以及将服务器返回的信息告知用户。

MySQL的分发包由服务器和几个客户机程序组成。程序员可以根据具体的需求来选择使用客户机。最常用的客户机程序为mysql,这是一个交互式的客户机程序,它能发布查询并看到结果。此外,其他的客户机程序有mysqldump和mysqlimport,分别导出表的内容到某个文件或将文件的内容导入某个表;mysqladmin用来查看服务器的状态并完成管理任务,如告诉服务器关闭、重启、刷新缓存等。如果现有的客户机程序不满足需要,MySQL还提供了一个客户机开发库,可以编写自己的程序。开发人员可以直接调用开发库中的C语言程序,如果希望使用其他语言,还有几种其他的接口可用。

MySQL的客户机/服务器体系结构具有如下优点。

(1) 服务器提供并发控制,使两个用户不能同时修改相同的记录。所有客户机的请求都通过服务器处理,服务器分类辨别谁准备做什么、何时做。如果多个客户机希望同时访问相同的表,它们不必互相裁决和协商,只要发送自己的请求给服务器并让它仔细确定完成这些请求的顺序即可。

(2) 不必在数据库所在的机器上注册。MySQL可以非常出色地在互联网上工作,因此用户可以在任何位置运行一个客户机程序,只要此客户机程序能够连接到网络上的服务器即可。当然,不是任何人都可以通过网络访问你的MySQL服务器。MySQL含有一个灵活而又有高效的安全系统,只允许有权限的人访问数据,而且可以保证用户只能够做允许的事情。
# 03、MySQL的查询语言

MySQL使用结构化查询语言(Structured Query Language,SQL)与服务器通信。MySQL系统使用的SQL基本上符合SQL 92的标准,但其对SQL 92标准既有扩展又有未实现的地方。

##表、列和数据类型

表是数据在一个MySQL数据库中的存储单元。如表8-1所示,它是一张二维表,包含一组固定的列。表中的列描述该表所表示的实体的属性,每列都有一个名字及各自的特性。列由两部分组成:数据类型(Data Type)和长度(Length)。

■ 表1 MySQL中的表结构


image.png


MySQL常用的数据类型有数值类型、字符串类型及日期类型等。表2中给出了MySQL的基本数据类型及其描述。

■ 表2 常用的数据类型


image.png

函数

函数(Function)是存储在数据库中的代码块。程序员可以根据需要创建不同的函数,并直接在SQL语句中调用。函数可以把计算的结果直接返回给调用的SQL。例如,MySQL提供一个SUBSTRING函数来执行字符串上的“取子串”操作,如果创建一个叫作MYSUB的函数来执行一个自定义的取子串操作,就可以在一个SQL命令中调用它。如:

select mysub("This is a test", 6, 2)
SQL语句

SQL是一种典型的非过程化程序设计语言。这种语言的特点是:只指定哪些数据被操纵,至于对这些数据要执行哪些操作,以及这些操作是如何执行的,则未被指定。非过程化程序设计语言的优点在于简单易学,因此SQL已经成为关系数据库访问和操纵数据的标准语言。

与SQL对应的是过程化程序设计语言,各种高级程序设计语言都属于这一范畴。该语言的特点是:一条语句的执行是与其前后的语句和控制结构(如条件语句、循环语句等)相关的。与SQL相比,这些语言显得比较复杂,但优点是使用灵活,数据操纵能力非常强大。

这些过程化的程序设计语言在访问数据库时一般不允许按照某种特定的顺序来读取表的记录,因为这样做会降低DBMS读取记录的效率。而使用SQL只能按查询条件来读取记录。当考虑如何从表中取出记录时,自然会想到按记录的位置读取它们。例如,也可以通过循环逐个记录地扫描,来选出特定的记录。但在使用SQL读取记录时,要尽量避免这种操作思路。

假如想选出所有名字是Tom的记录,如果使用传统的编程语言,可能会构造一个循环,逐个查找表中的记录,看名字字段内容是否匹配Tom。这种选择记录的方法是可行的,但是效率非常低。而用SQL时,只要说“选择所有名字域等于Tom的记录”,SQL就会筛选出所有符合条件的记录。SQL会确定实现查询的最佳方法。

例如,从表teachers中取出id为1的数据:

select * from teachers where id=1

实现相同的功能,如果用普通的高级语言,也许需要一个复杂的循环。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
JSON JavaScript 小程序
关于HBuilderX的简单介绍
关于HBuilderX的简单介绍
4229 0
|
11月前
|
存储 人工智能 自然语言处理
DeepSeek R1+Open WebUI实现本地知识库的搭建和局域网访问
本文介绍了使用 DeepSeek R1 和 Open WebUI 搭建本地知识库的详细步骤与注意事项,涵盖核心组件介绍、硬件与软件准备、模型部署、知识库构建及问答功能实现等内容,适用于本地文档存储、向量化与检索增强生成(RAG)场景的应用开发。
4288 0
|
6月前
|
缓存 运维 监控
从可视化工作流到系统架构企业功能增强:低代码技术内核的再审视
在数字化转型背景下,低代码的价值不仅在于可视化界面,更在于其技术内核——涵盖可视化工作流、数据模型、逻辑引擎与系统架构。深入理解这些机制,有助于评估其在扩展性、治理性与架构一致性方面的潜力。通过组件化设计、实时渲染、业务逻辑编排与分布式协作,低代码平台实现高效开发与灵活扩展;SQL引擎、功能引擎、模板与图表引擎协同支撑高性能运行;模型驱动开发与AI深度融合推动自动化与智能化升级;插件生态与开放架构则强化了跨行业适配与可持续演进能力。未来,低代码将融合AI、云原生与开放生态,成为企业敏捷创新与智能决策的关键支撑。
|
11月前
|
人工智能 供应链 算法
RFID室内资产定位将颠覆传统方式
RFID室内资产定位技术凭借非接触识别、实时追踪及批量读取等优势,正颠覆传统人工盘点模式。其高效率、强适应性与智能化数据处理能力,广泛应用于医疗、制造、仓储等领域,助力企业实现精细化资产管理。
|
人工智能 自然语言处理 算法
具身智能高校实训解决方案 ----从AI大模型+机器人到通用具身智能
在具身智能的发展历程中,AI 大模型的出现成为了关键的推动力量。高校作为培养未来科技人才的摇篮,需要紧跟这一前沿趋势,开展具身智能实训课程。通过将 AI 大模型与具备 3D 视觉的机器人相结合,为学生搭建一个实践平台。
1932 64
|
缓存 监控 前端开发
SPA 首屏加载速度优化
【10月更文挑战第14天】解决 SPA 首屏加载速度慢的问题需要综合运用多种优化策略和技术。通过资源压缩、减少异步请求、优化渲染流程、利用缓存、代码分割、预加载等方法,可以有效提高 SPA 首屏加载速度,为用户提供更好的体验。同时,性能监控和分析是持续优化的关键,应根据实际情况不断调整优化策略。在未来,随着技术的不断发展,我们还需要不断探索新的优化方法和途径,以适应不断变化的需求。
463 56
|
机器学习/深度学习 JSON 文字识别
OCR文字识别技术总结(一)
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并经过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提升识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也随之产生。
7940 27
OCR文字识别技术总结(一)
|
存储 监控 Docker
探索微服务架构下的容器化部署
本文旨在深入探讨微服务架构下容器化部署的关键技术与实践,通过分析Docker容器技术如何促进微服务的灵活部署和高效管理,揭示其在现代软件开发中的重要性。文章将重点讨论容器化技术的优势、面临的挑战以及最佳实践策略,为读者提供一套完整的理论与实践相结合的指导方案。
|
Kubernetes 前端开发 分布式数据库
工作中常见的软件系统部署架构
在实际应用中,会根据项目的具体需求、规模、性能要求等因素选择合适的部署架构,或者综合使用多种架构模式来构建稳定、高效、可扩展的系统。
1871 2
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架与编译器的作用
AI框架如PyTorch和TensorFlow提供丰富的API,简化神经网络模型的实现与训练,抽象硬件操作并自动管理内存。AI编译器将高级语言编写的模型转换为硬件可执行代码,通过多层次优化提升性能。这使得算法工程师可以专注于模型设计与创新,而无需关注底层计算细节。AI框架和编译器不仅提高开发效率,还能充分利用硬件资源,是推动AI系统性能提升的关键技术。访问昇腾社区官网或下载APP,获取更多AI学习资源和参与各类活动。
808 0