[Java Web]MySQL数据库|一文带你了解并熟悉数据库相关知识和各种操作,超6000字详细介绍(一)

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: [Java Web]MySQL数据库|一文带你了解并熟悉数据库相关知识和各种操作,超6000字详细介绍

1、数据库相关概念

数据库是一种用于存储和管理数据的软件系统。

数据库英文名是 DataBase,简称DB。

数据库就是将数据存储在硬盘上,可以达到持久化存储的效果。

1.1、数据库类型

常见的数据库类型有关系型数据库(如MySQL,Oracle,SQL Server等)、非关系型数据库(如MongoDB,Redis等)和图形数据库(如Neo4j等)。

关系型数据库组织数据为表格形式,每一行为一条记录,每一列为一个字段,通过建立不同表之间的关系来组织数据。关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库

非关系型数据库不遵循表格形式,通常以文档,键值对或图形等形式存储数据。

图形数据库主要用于处理具有复杂关系的数据,通过图形模型来表示数据之间的关系。

1.2、数据库管理系统

数据库管理系统(DataBase Management System,简称 DBMS)是一种软件系统,用于创建,维护和使用数据库。常用的DBMS有MySQL,SQL Server,Oracle,PostgreSQL等。

在电脑上安装了数据库管理系统后,就可以通过数据库管理系统创建数据库来存储数据,也可以通过该系统对数据库中的数 据进行数据的增删改查相关的操作。

我们平时说的MySQL数据库其实是MySQL数据库管理系统。

1.2.1、数据库管理系统种类

常见的数据库管理系统有:

Oracle:收费的大型数据库,Oracle 公司的产品

MySQL: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购

SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用

PostgreSQL:开源免费中小型的数据库

DB2:IBM 公司的大型收费数据库产品

SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库

MariaDB:开源免费中小型的数据库

最常用的是MySQL

1.2.2、SQL和MySQL的关系

MySQL是数据库管理系统,而SQL是操作数据库的编程语言

1.3、数据库相关名词简介

1.3.1、数据一致性

数据库的数据一致性是指数据库中的数据在某一特定时刻是确定的。

常用的数据一致性级别有ACID,BASE等。

ACID是数据库事务的一种概念,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

BASE是非关系型数据库中的一种概念,它指的是基本可用性(Basically Available)、软状态(Soft-State)、最终一致性(Eventual Consistency)。

1.3.2、性能调优

数据库的性能调优是指通过优化数据库的结构、索引、查询语句等来提高数据库的查询性能。常用的方法有缩小数据表、创建合理的索引、优化SQL语句等。

1.3.3、备份和恢复

数据库备份和恢复是指将数据库中的数据复制到另一个地方,以防止数据丢失或灾难性故障。常用的数据库备份方法有全备、增量备份和差异备份。

1.3.4、数据库安全

数据库安全是指保护数据库中的数据不被未经授权的用户访问。常用的数据库安全措施有访问控制、加密、审计等。

1.3.5、数据库集群

数据库集群是指将多个数据库服务器组成一个集群,以提高数据库的可用性和性能。常用的数据库集群技术有MySQL Cluster、Oracle RAC、SQL Server AlwaysOn等。

1.3.6、数据仓库

数据仓库是一种用于存储和管理大量历史数据的数据库系统。常用的数据仓库软件有Oracle Warehouse Builder, SAP BW, IBM Cognos 等。

1.3.7、数据挖掘

数据挖掘是一种从大量数据中提取有用信息和知识的技术。常用的数据挖掘技术有关联规则挖掘、分类和聚类算法、回归分析等。

2、MySQL介绍

MySQL是一种关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。

它采用了类似于 SQL 的语言来管理数据库,支持多种操作系统平台。

MySQL是一种免费的开源软件。

MySQL支持多种存储引擎,其中包括 MyISAM, InnoDB, Memory, CSV, Archive, Blackhole 等。MyISAM是默认的存储引擎,支持全文索引和空间优化,适用于读多写少的场景。

InnoDB是支持事务和外键约束的存储引擎,适用于读写并存的场景。

MySQL还提供了许多管理工具和应用程序接口,如 MySQL Workbench, MySQL Administrator, MySQL Query Browser 等。

MySQL在Web应用,数据仓库,在线事务处理(OLTP)和数据仪表盘方面非常流行。并且在各种应用程序中都有广泛的应用,例如WordPress, Joomla, Magento等。

3、MySQL数据模型

MySQL中可以创建多个数据库,每个数据库对应到磁盘上的一个文件夹

在每个数据库中可以创建多个表,每张都对应到磁盘上一个 frm 文件

每张表可以存储多条数据,数据会被存储到磁盘中 MYD 文件中

具体例子如下:

编辑

如上图,我们通过客户端可以通过数据库管理系统创建数据库,在数据库中创建表,在表中添加数据。创建的每一个数据库 对应到磁盘上都是一个文件夹。比如可以通过SQL语句创建一个数据库(数据库名称为db1),SQL语句->create database db1;

我们可以在数据库安装目录下的data目录下看到多了一个 db1 的文件夹。所以,在MySQL中一个数据库对应到磁盘上的一个文件夹。

而一个数据库下可以创建多张表,我们到MySQL中自带的mysql数据库的文件夹目录下:

编辑

而上图中右边的db.frm 是表文件,db.MYD 是数据文件,通过这两个文件就可以查询到数据展示成二维表的效果。

4、MySQL数据类型

MySQL 支持多种类型,可以分为:

  1. 数值类型:int, bigint, float, double, decimal等。这些类型用于存储数字数据。
  2. 日期和时间类型:date, datetime, timestamp, year等。这些类型用于存储日期和时间数据。
  3. 字符串类型:char, varchar, text, blob, enum等。这些类型用于存储字符串数据。
  4. 二进制类型:binary, varbinary, blob等。这些类型用于存储二进制数据。
  5. 布尔类型:BOOL或者TINYINT(1)。这种类型用于存储布尔值。
  6. 枚举类型:ENUM。这种类型用于存储固定的选项列表。
  7. JSON类型:JSON。这种类型用于存储JSON数据。

这些类型每一种都有自己的特点,在使用时需要根据实际需求来选择合适的类型。

char和varchar:

5、SQL

5.1、简介

Structured Query Language,简称 SQL,结构化查询语言、操作关系型数据库的编程语言

SQL用于查询、插入、更新、删除数据。

定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其他的数据库管理系统,也同样的使用SQL来操作。

5.2、通用语法

语法要求如下:

①SQL语句可以单行或多行书写,以分号结尾。

②MySQL 数据库的SQL语句不区分大小写,关键字建议使用大写

③注释:

单行注释:-- 注释内容 或 #注释内容(MySQL 特有)

注意:使用-- 添加单行注释时,--后面一定要加空格,而#没有要求。

多行注释:/* 注释 */

5.3、SQL语句分类

具体分类如下:

①DDL(Data Definition Language):数据定义语言,用来定义数据库对象:数据库,表,列等

②DML(Data Manipulation Language) :数据操作语言,用来对数据库中表的数据进行增删改

③DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录(数据)

④DCL(Data Control Language):数据控制语言,用来定义数据库的访问权限、安全级别、创建用户

(各单词:Definition/ˌdefɪˈnɪʃ(ə)n/,Manipulation/məˌnɪpjuˈleɪʃn/,Query/ˈkwɪəri/)

简单来说:

DDL:用来操作数据库,表等

DML:对表中数据进行增删改

DQL:对数据进行查询操作。从数据库表中查询到我们想要的数据

DML:对数据库进行权限控制。比如让某一个数据库表只能让某一个用户进行操作等。

编辑

6、Data Definition Language(DDL)

下面介绍DDL来操作数据库,主要介绍相关SQL语句:

6.1、操作数据库

6.1.1、查询

查询所有的数据库->show databases;

6.1.2、创建

创建数据库->create database 数据库名称;

创建的时候不知道数据库名称是否会重名,如果重名则会出现Can't create database错误,想要避免这种错误,则需要在创建新的数据库之前判断一下是否重名:

判断,如果不存在则创建->create database if not exists 数据库名称;

6.1.3、删除

删除数据库->drop database 数据库名称;

删除数据库(判断,如果存在则删除)->drop database if exists 数据库名称;

6.1.4、使用数据库

数据库创建好了之后,要在数据库中执行操作,得先明确在哪个数据库中,因此就需要明确使用数据库。

使用数据库->use 数据库名称;

查看当前使用的数据库->select database();

6.2、操作表(CURD)

操作表也就是对表进行增(Create)删(delete)改(Update)查(Retrieve),俗称CURD

6.2.1、查询

查询当前数据库下所有表名称->show tables;

查询表结构->desc 表名称;

(desc->降序排列 descend 的缩写)

6.2.2、创建

CREATE TABLE 表名 (

字段名1 数据类型1,

字段名2 数据类型2,

字段名n 数据类型n

);

注意:最后一行末尾,不能加逗号

举例:

编辑

create table tb_user (

id int,

username varchar(20),

password varchar(32)

);

6.2.3、删除

删除表->drop table 表名;

删除表时判断表是否存在->drop table if exists 表名;

6.2.4、修改

①修改表名->alter table 表名 rename to 新的表名;

Ex:alter table student rename to stu; -- 将表名student修改为stu

②添加一列->alter table 表名 add 列名 数据类型;

EX:alter table stu add address varchar(50); -- 给stu表添加一列address,该字段类型是varchar(50)

③修改数据类型->alter table 表名 modify 列名 新数据类型; (modify : 修改)

EX:alter table stu modify address char(50); -- 将stu表中的address字段的类型改为 char(50)

④修改列名和数据类型->alter table 表名 change 列名 新列名 新数据类型;

EX:alter table stu change address addr varchar(50);

-- 将stu表中的address字段名改为 addr,类型改为varchar(50)

⑤删除列->alter table 表名 drop 列名;

EX:alter table stu drop addr; -- 将stu表中的addr字段 删除

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
77 26
|
22天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
40 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
17天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
28天前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
27 2
|
1月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
1月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
54 6
|
1月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
72 4
|
2月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
159 6
|
1月前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
65 0
WK
|
1月前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
90 0