当前位置: 首页> 科技> IT业 > 后端Web之数据库(以MySQL为例)

后端Web之数据库(以MySQL为例)

时间:2025/7/27 1:39:26来源:https://blog.csdn.net/chencxiaobai/article/details/141279514 浏览次数:0次

目录

1.概述

2.MySQL

3.DDL

4.DML

5.DQL


1.概述

对于我们自己写的一些小功能,数据一般存储在文件中,比如XML文件。而在实际项目中,数据都是存放在数据库中的。数据库(DataBase )是一个存储数据的集合,它允许用户存储、检索和管理信息。数据库通常由多个表组成,这些表通过键关联,以便于数据的组织和访问。

在企业中,由于数据库要共享,所以都是将数据库安装在服务器上,服务器放置于恒温恒湿无尘的专业机房中。开发人员通过客户端远程连接数据库。

数据库类型主要分为两大类:

  • 关系型数据库(RDBMS):如MySQL、PostgreSQL、Oracle、SQL Server等,它们使用表格模型存储数据,并通过SQL进行操作。
  • 非关系型数据库(NoSQL):如MongoDB、Cassandra、Redis等,它们不使用表格模型,可以存储结构化、半结构化或非结构化数据。

简单来说,基于二维表(有行和列,如excel表)来存储数据的数据库就是关系型数据库,不通过表结构存储数据的就是非关系型数据库,如redis。

我们通过发送sql语句给数据库管理系统DataBase Management System (DBMS)来操纵和管理数据库。

SQL(Structured Query Language,结构化查询语言)是一种标准化的语言,用于在关系型数据库管理系统(RDBMS)中进行数据管理和操作。

目前主流的一些关系型数据库:虽然产品不一样,但它们都可以通过相同的sql语句进行操作

项目中的数据库设计:

项目中的数据库表的设计:

2.MySQL

MySQL是一个流行的开源关系型数据库管理系统(RDBMS),它是基于客户端-服务器模型的,并广泛应用于Web应用程序的后端,提供数据存储、查询和维护的功能。它以其可靠性、易用性和性能而闻名,并且由于其开源特性,拥有庞大的社区支持。

数据模型:

SQL语句通常分为以下四类:

通过命令行去操作数据库比较繁琐,采用图形化工具会方便一些,以下是常见的图形化工具,其中DataGrip集成在IDEA中,能够在IDEA中使用

MySQL中的数据类型:

主要分为三类:数值类型、字符串类型、日期时间类型。在满足业务的情况下,选占用磁盘小的更合适

数值类型:

字符串类型:定长是指字符串固定占用空间,比如char(10)就占用10个字符空间。变长是指字符串有多长就占用多长,比如varchar(10)有三个字符就占用3个字符空间。

但是计算机不用判断定长的空间占用,需要判断变长的空间占用。因此定长的性能高,但占用磁盘多,变长则相反。即空间换时间和时间换空间

日期时间类型:

3.DDL

DDL已经很大程度上被图形化界面工具替代了,以下简单介绍DDL:

创建表:其中约束是作用于表中字段上的规则,用于限制存储在表中的数据。比如id不能重复只能唯一,这就是唯一约束或者主键约束。约束用来保证数据库中数据的正确性、有效性和完整性。

约束的种类:自增可以让主键id自动增加,而不用手动输入

修改表:

4.DML

增加数据(insert):

修改数据(update):

删除数据:

5.DQL

查询操作是所有sql语句中最重要、最常用、最复杂的的操作。

基本查询:其中*号不建议使用,不直观而且效率低(会查询并传输所有信息)。

条件查询where:在基本查询上添加where条件(运算符筛选)列表

分组查询group by:分组后通常会计算每个组的数据,因此要结合聚合函数使用

其中字段值为null的数据不参与聚合函数的计算,因此要做统计的话要选择一个非空字段,比如id

where与having都是条件查询,它们的区别是:

1. 执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

2. 判断条件不同: where不能对聚合函数进行判断,而having可以。

排序查询order by:在分组查询的基础上加上order by,排序方式只有升序ASC和降序DESC,默认是升序,因此ASC可省略

分页查询limit:

关键字:后端Web之数据库(以MySQL为例)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: