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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: [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字段 删除

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
4月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
419 158
|
4月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
509 1
|
4月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
505 0
|
4月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
921 152
|
4月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
764 156
|
4月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
4月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
4月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
SQL Java 数据库连接
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
464 0
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
|
SQL 关系型数据库 MySQL
MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
276 0
MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)

推荐镜像

更多