Mysql十分钟快速入门

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Mysql十分钟快速入门

前言

大家好,一直以来我都本着 用最通俗的话理解核心的知识点, 我认为所有的难点都离不开 基础知识 的铺垫


适合人群

  • 学完Java基础
  • 想通过Java快速构建web应用程序
  • 想学习或了解SpringBoot


大佬可以绕过 ~


背景

本节给大家讲讲 Java的SpringBoot框架, 之前我们学习的都是java的基础知识和底层提供的一些能力,我们日常工作都是在写接口。在我们在产品开发中,一般我们都会选择比较稳定的框架来帮我们加速开发,不会自己去造轮子,而在java众多框架中,spring框架表现的非常好,大部分公司都会首选它作为开发框架,而至今,大部分企业都是以springboot来构建项目了~


情景回顾

上期我们讲解了springboot中的http请求处理以及涉及到的几个注解。后台服务始终绕不开数据的开发,我们需要把用户产生的数据落地到数据库。本期,将带大家学习一下springboot中的数据库处理, 我们将学习目前市面上比较火的Mybatis框架, 它是一个ORM框架, 我将分为三个小节去讲解,现在用的比较多的数据库是Mysql, 它是一个开源关系型数据库, 这一节将带大家快速入门Mysql。最近github可能会被墙,所以我把源码放到了国内gitee上,本节我们依然使用上期的代码


项目源码(持续更新⭐️)


环境搭建

如果你是mac用户,推荐使用 homebrew安装, 它是mac软件包管理工具,如果你还没安装, 可以到这个官网去安装 brew.sh/index_zh-cn, 安装好后执行命令:

brew install mysql@5.7
复制代码


安装好后,它会列出启动命令,设置root密码命令,复制运行即可

如果你是windows用户, 可以直接去mysql官网下载安装, 安装好后运行即可


可视化工具

工欲善其事,必先利其器。目前市面上可视化工具很多,目前比较火的是Navicat,推荐使用,功能也丰富,界面也比较美观。平时开发中,推荐大家多使用工具,因为很多繁琐的事情,点点按钮就结束了,不用去敲黑乎乎的命令了。


安装好后,我们点击左上角的链接,链接到我们的数据库,链接成功后,右击链接名称,点击新建数据库。


多说一点, 在生产环境中,数据库操作,我们一般没有编辑操作,通常只有查询数据的操作, 一般用的都是云产品, 比如阿里云的Rds,因为维护数据库服务的成本太大了,安全性也不高,所以生成环境中的库一般都是用的云产品。如果你是管理员,对账号一定要做权限,和账号分配。


理论概述

之前我们提到mysql是关系型(RDBMS)数据库, 我们需要理解几个关键术语:

  • 数据库: 数据库是一些关联表的集合
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。


如果你看的有点懵逼,没关系,这不影响我们成为crud body, 本节只是带大家快速入门,不会涉及太多专业领域知识,不要慌~


sql语法学习

创建表

终于进入正题了,下面我们学习一下mysql的sql编写。我们用Navicat新建一张表, 点击我们刚刚创建的库,点击表, 然后点击右边绿色加号,就可以新建了。 然后会跳出新建字段的界面,输入我们的字段就好, 字段意思就是数据的一个属性, 这里我们以用户角色表为例,我就不一一带大家新建字段了,这里直接导sql,可以参考, 我也是用工具新建的,创建完的表想复制sql给别人,可以点击右边的DDL查看创建表的sql

CREATE TABLE `user_role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `role_name` varchar(20) DEFAULT '',
  `is_delete` int(11) DEFAULT '0',
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='用户 - 角色表';
复制代码


Create 新增记录

表我们插好了,怎么往里边查数据呢? 有两种方式:

  • 双击表,进入后右击添加记录,即可,不仅仅是添加,修改直接改选中值改就完了,是不是很方便
  • 通过sql语法执行, 点击查询 -> 新建查询 -> 输入sql


我们最常用的就是表的sql操作了,所以我们重点学习数据操作相关的sql语法

插入记录:

INSERT INTO `user_role` (`id`, `name`, `role_name`, `is_delete`, `created_at`, `updated_at`) VALUES (2, '用户', '用户', 0, '2022-04-12 10:56:39', '2022-04-12 10:56:39');
复制代码


Update 修改记录

UPDATE `user_role` SET `name` = '用户', `role_name` = '用户', `is_delete` = 0, `created_at` = '2022-04-12 10:56:39', `updated_at` = '2022-04-12 10:56:39' WHERE `id` = 2;
复制代码


Select 查询记录

我们平常业务开发用的最多就是查询操作了,往往复杂的sql也都是在这里产生, sql优化也是优化查询

# 查询所有数据和字段
Select * from `user_role`
# 查询某条数据和所有字段
Select * from `user_role` where id=2
# 查询某条数据和某个字段
Select id,name from `user_role` where id=2
# 按创建时间倒序排序数据
Select id,name from `user_role` where created_at desc
# 按创建时间升序排序数据
Select id,name from `user_role` where created_at asc
# 按创建时间范围筛选数据
Select id,name from `user_role` where created_at > "2022-04-01 00:00:00" and created_at < "2022-04-30 00:00:00"
复制代码


sql的语法语义化还是比较友好的,我们查询数据就是select xxx,在哪查就是from, 查哪个就是where,很容易理解, 所以不用去背它,要去理解它,多写就熟悉了


Delete 删除数据

DELETE FROM `user_role` WHERE id=2
复制代码


Where后可以跟的条件

  • and 并且,都真为真 满足所有才返回查到记录
  • or 或 一真为真,满足一个就返回记录
  • like 模糊查询, 通常会和 %配合使用, 比如 name like %张%,查询只要name中含有张的数据就返回
  • >、<、>=、<= 比较大小,这没啥好说的
  • if 判断返回, 语法格式 if(expr, val1, val2), expr是判断条件,如果为真返回val1,否则返回val2


去重查询

这里给大家介绍常用的两种:


Distinct

select distinct(name) from `user_role`
复制代码

这种有弊端,就是distinct必须跟在字段


GroupBy 分组查询

select * from `user_role` GroupBy name;
复制代码

name进行分组,GroupBy后边可以跟多个字段,当是多个字段时,需要满足多条件

对于数据去重, 有时候当数据量很大的时候,我们用sql查询会非常吃力,我们可以在代码层面上做处理,因为程序计算比较快


结束语

本节到此就结束了,我们主要讲了Mysql数据库的使用,建议大家多自己练习练习,不要去背语句,要去理解它,适当的做些总结, 最新的代码已经同步到仓库了


下期预告

有了sql基础之后,我们再学习MyBatis框架就相对简单了,下期带大家正式学习它~

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 关系型数据库 MySQL
【mysql】MySQL 分区快速入门
【mysql】MySQL 分区快速入门
168 0
|
SQL 安全 关系型数据库
云数据库 RDS SQL Server 快速入门(二)
云数据库 RDS SQL Server 快速入门(二)
146 0
|
SQL 存储 关系型数据库
Mysql快速入门 1
Mysql快速入门
77 0
|
6月前
|
关系型数据库 MySQL 数据库
Web 框架 Flask 快速入门(三)数据库-MySQL
数据库 1、数据库的安装与配置 这节用到flask的两个扩展,使用pip安装扩展就行
196 0
|
6月前
|
Web App开发 JavaScript 关系型数据库
百度搜索:蓝易云【NodeJS 了解和快速入门 - 实现 http 服务 & 操作 mysql教程。】
通过使用上述示例代码,您可以快速入门并实现Node.js的HTTP服务和操作MySQL数据库。您可以根据需要进一步扩展和定制这些代码以满足您的具体要求。
65 0
uiu
|
SQL 存储 分布式计算
Hive 快速入门与平台搭建 | 结合Mysql(一)
Hive 快速入门与平台搭建 | 结合Mysql(一)
uiu
514 0
Hive 快速入门与平台搭建 | 结合Mysql(一)
|
关系型数据库 数据库 PostgreSQL
云数据库RDS PostgreSQL 快速入门(二)
云数据库RDS PostgreSQL 快速入门(二)
162 1
|
关系型数据库 MySQL 网络安全
云数据库 RDS MySQL 快速入门(二)
云数据库 RDS MySQL 快速入门(二)
153 0
|
关系型数据库 MySQL
Mysql快速入门 2
Mysql快速入门
35 0
|
NoSQL 关系型数据库 MySQL
PHP快速入门13-MySQL数据库与Redis操作
PHP快速入门与实战,本篇文章介绍的内容,MySQL数据库与Redis操作,后续更多内容将收录在专栏PHP快速入门与实战。
125 0