【JaveWeb教程】(17) MySQL数据库开发之 MySQL简介、安装、数据类型、SQL通用语法 详细代码示例讲解

目录

    • 前言
    • 1. MySQL概述
      • 1.1 安装
        • 1.1.1 版本
        • 1.1.2 安装
        • 1.1.3 连接
        • 1.1.4 企业使用方式(了解)
      • 1.2 数据模型
      • 1.3 SQL简介
        • 1.3.1 SQL通用语法
        • 1.3.2 分类

在这里插入图片描述

前言

在我们讲解SpringBootWeb基础知识(请求响应案例)的时候,我们讲到在web开发中,为了应用程序职责单一,方便维护,我们一般将web应用程序分为三层,即:Controller、Service、Dao 。

之前我们的案例中,是这样子的请求流程:浏览器发起请求,先请求Controller;Controller接收到请求之后,调用Service进行业务逻辑处理;Service再调用Dao,Dao再解析user.xml中所存储的数据。

在这里插入图片描述

xml文件中可以存储数据,但是在企业项目开发中不会使用xml文件存储数据,因为不便管理维护,操作难度大。 在真实的企业开发中呢,都会采用数据库来存储和管理数据,那此时,web开发调用流程图如下所示:

在这里插入图片描述

首先来了解一下什么是数据库。

  • 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。

像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app,那这些大家所看到的数据,其实都是存储在数据库中的。最终这些数据,只是在浏览器或app中展示出来而已,最终数据的存储和管理都是数据库负责的。

在这里插入图片描述

数据是存储在数据库中的,那我们要如何来操作数据库以及数据库中所存放的数据呢?

那这里呢,会涉及到一个软件:数据库管理系统(DataBase Management System,简称DBMS)

  • DBMS是操作和管理数据库的大型软件。将来我们只需要操作这个软件,就可以通过这个软件来操纵和管理数据库了。

此时又出现一个问题:DBMS这个软件怎么知道要操作的是哪个数据库、哪个数据呢?是对数据做修改还是查询呢?

  • 需要给DBMS软件发送一条指令,告诉这个软件我们要执行的是什么样的操作,要对哪个数据进行操作。而这个指令就是SQL语句

SQL(Structured Query Language,简称SQL):结构化查询语言,它是操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准。我们学习数据库开发,最为重要的就是学习SQL语句 。

关系型数据库:我们后面会详细讲解,现在大家只需要知道我们学习的数据库属于关系型数据库即可。

在这里插入图片描述

结论:程序员给数据库管理系统(DBMS)发送SQL语句,再由数据库管理系统操作数据库当中的数据。

了解了数据库的一些简单概念之后,接下来我们再来介绍下目前主流的数据库,这里截取了排名前十的数据库:

在这里插入图片描述

  • Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。(通常是不差钱的公司会选择使用这个数据库)
  • MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。目前Oracle推出两个版本的Mysql:社区版(开源免费)、商业版(收费)。
  • SQL Server:Microsoft 公司推出的收费的中型数据库,C#、.net等语言常用。
  • PostgreSQL:开源免费的中小型数据库。
  • DB2:IBM公司的大型收费数据库产品。
  • SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
  • MariaDB:开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品,与MySQL数据库有很好的兼容性。

那这么多数据库,我们全部都需要学习吗,其实并不用,我们只需要学习其中的一个就可以了,我们此次课程中学习的数据库是现在互联网公司开发使用最为流行的MySQL数据库。

此时大家可能会有一个疑问,我们现在学习的是Mysql数据库,我们以后去公司做开发,如果用到的是Oracle数据库或SQL Server数据库该怎么办?其实大家完全不用担心这个问题,因为这些数据库都是属于关系型数据库,要操作关系型数据库都是通过 SQL语句来实现的,而SQL语句又是操作关系型数据库的统一标准。

结论:只要我们学会了SQL语句,就可以通过SQL语句来操作Mysql,也可以通过SQL语句来操作Oracle或SQL Server

课程内容安排:

在这里插入图片描述

以上课程内容拆解为3部分知识点:

在这里插入图片描述

接下来我们就先进入到第一天的Mysql概述学习。

1. MySQL概述

在这里插入图片描述

官网:https://dev.mysql.com/

1.1 安装

1.1.1 版本

MySQL官方提供了两个版本:

  • 商业版本(MySQL Enterprise Edition)

    • 该版本是收费的,我们可以使用30天。 官方会提供对应的技术支持。
  • 社区版本(MySQL Community Server)

    • 该版本是免费的,但是MySQL不会提供任何的技术支持。

本课程,采用的是MySQL的社区版本(8.0.31)

1.1.2 安装

官网下载地址:https://downloads.mysql.com/archives/community/

在这里插入图片描述

这个安装包呢,大家可以不用下载,因为资料中已提供现成的安装包。 在这里插入图片描述

安装MySQL具体的步骤,参考资料中提供的 《MySQL安装文档》 ,进行软件的安装即可。

1.1.3 连接

MySQL服务器启动完毕后,然后再使用如下指令,来连接MySQL服务器:

mysql -u用户名 -p密码 [-h数据库服务器的IP地址 -P端口号]

-h 参数不加,默认连接的是本地 127.0.0.1 的MySQL服务器

-P 参数不加,默认连接的端口号是 3306

上述指令,可以有两种形式:

  • 密码直接在-p参数之后直接指定 (这种方式不安全,密码直接以明文形式出现在命令行)

在这里插入图片描述

  • 密码在-p回车之后,在命令行中输入密码,然后回车

在这里插入图片描述

1.1.4 企业使用方式(了解)

上述的MySQL服务器我们是安装在本地的,这个仅仅是在我们学习阶段,在真实的企业开发中,MySQL数据库服务器是不会在我们本地安装的,是在公司的服务器上安装的,而服务器还需要放置在专门的IDC机房中的,IDC机房呢,就需要保证恒温、恒湿、恒压,而且还要保证网络、电源的可靠性(备用电源及网络)。

在这里插入图片描述

那我们要想使用服务器上的这台MySQL服务器,就需要在我们的电脑上去远程连接这台MySQL。 而服务器上安装的MySQL数据库呢,并不是你一个人在访问,我们项目组的其他开发人员也是需要访问这台MySQL的。

在这里插入图片描述

我们在学习阶段,如果想提前体验一下企业中数据库的使用方式,可以借助于VMware虚拟机来实现。我们可以在我们的电脑上安装一个VMware,然后在Vmware虚拟机上在安装一个服务器操作系统Linux,然后再在Linux服务器上安装各种企业级软件。

在这里插入图片描述

接下来,就来演示一下,通过MySQL的客户端命令行,如何来连接服务器上部署的MySQL :

mysql -u用户名 -p密码 [-h数据库服务器的IP地址 -P端口号]

在这里插入图片描述

1.2 数据模型

介绍完了Mysql数据库的安装配置之后,接下来我们再来聊一聊Mysql当中的数据模型。学完了这一小节之后,我们就能够知道在Mysql数据库当中到底是如何来存储和管理数据的。

在介绍 Mysql的数据模型之前,需要先了解一个概念:关系型数据库。

关系型数据库(RDBMS)

概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。

而所谓二维表,指的是由行和列组成的表,如下图:

在这里插入图片描述

二维表的优点:

  • 使用表存储数据,格式统一,便于维护

  • 使用SQL语言操作,标准统一,使用方便,可用于复杂查询

我们之前提到的MySQL、Oracle、DB2、SQLServer这些都是属于关系型数据库,里面都是基于二维表存储数据的。

结论:基于二维表存储数据的数据库就成为关系型数据库,不是基于二维表存储数据的数据库,就是非关系型数据库(比如大家后面要学习的Redis,就属于非关系型数据库)。

2). 数据模型

介绍完了关系型数据库之后,接下来我们再来看一看在Mysql数据库当中到底是如何来存储数据的,也就是Mysql 的数据模型。

MySQL是关系型数据库,是基于二维表进行数据存储的,具体的结构图下:
在这里插入图片描述

  • 通过MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库
  • 使用MySQL客户端,向数据库管理系统发送一条SQL语句,由数据库管理系统根据SQL语句指令去操作数据库中的表结构及数据
  • 一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包含多行记录。

在Mysql数据库服务器当中存储数据,你需要:

  1. 先去创建数据库(可以创建多个数据库,之间是相互独立的)
  2. 在数据库下再去创建数据表(一个数据库下可以创建多张表)
  3. 再将数据存放在数据表中(一张表可以存储多行数据)

1.3 SQL简介

SQL:结构化查询语言。一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

在学习具体的SQL语句之前,先来了解一下SQL语言的语法。

1.3.1 SQL通用语法

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

在这里插入图片描述

2、SQL语句可以使用空格/缩进来增强语句的可读性。

在这里插入图片描述

3、MySQL数据库的SQL语句不区分大小写。

在这里插入图片描述

4、注释:

  • 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
  • 多行注释: /* 注释内容 */

以上就是SQL语句的通用语法,这些通用语法大家目前先有一个直观的认识,我们后面在讲解每一类SQL语句的时候,还会再来强调通用语法。

1.3.2 分类

SQL语句根据其功能被分为四大类:DDL、DML、DQL、DCL

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户、控制数据库的访问权限

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/612930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Laravel 使用rdkafka_laravel详细教程(实操避坑)

一、选择rdkafka 首先要看版本兼容问题,我的是Laravel5.6,PHP是7.3.13,所以需要下载兼容此的rdkafka,去 Packagist 搜索 kafka ,我用的是 Packagist选择里面0.10.5版本, 二、安装rdkafka 在 Laravel 项目…

python爬虫实战(9)--获取澎pai热榜

1. 需要的类包 import pandas as pd import requests2. 请求地址 通过分析,数据可以直接从接口获取,无需解析页面标签,直接取出我们需要的数据即可。 def fetch_hot_news(api_url):response requests.get(api_url)if response.status_cod…

循环打印当前时间的前七个小时

padStart和padEnd是es6中新增的语法 只能对字符串使用,是新增的方法不会修改原字符串 str.padStart(MaxLength,‘填充的内容’) // 当str的长度没有达到MaxLength,会将第二个参数填充到这个str前直到达到MaxLength str.padEnd(MaxLength,‘填充的内容’…

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-3(2) 刚体的位形 Configuration of Rigid Body

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…

pyDAL一个python的ORM(9) pyDAL的嵌套查询

假设有以下两个表: db.define_table(person,Field(id, string), Field(‘name, string), Field(‘dept, string)) db.define_table(things,Field(id, string), Field(‘name, string), Field(‘owner, string)) 一、使用belongs进行嵌套查询 我们查询要求&#…

Vue+Element Ui实现el-table自定义表头下拉选择表头筛选

用vueelement ui开发管理系统时,使用el-table做表格,当表格列过多的时候,想要做成可选表头的,实现表格列的筛选显示,效果如下: 代码文件结构: 废话不多说,直接上代码: 第…

2023年,AI爆发的一年

公众号:算法一只狗 今年以来,AI呈爆发式发展。在文本生成的领域,涌现出以ChatGPT为代表的生成式大模型。而在文本图像生成方面,有高度自定义的Stable Diffusion,和简单易用上手的Midjournery。多模态领域更是百花齐放&…

外汇天眼:Options与OneTick合作,共同打造全球SAAS分析平台

Options Technology,一家为全球金融领域提供云服务的托管服务提供商,今天宣布与OneMarketData及其旗舰产品OneTick平台的合作。 Options将使OneTick订户能够访问其庞大的市场数据存储库,包括股票、外汇、期货、期权和固定收益数据&#xff0…

OpenAI GPT商店来了! 创业公司打不过就加入?|对话Agent创业公司S2R

文|郝 鑫 1月10日,OpenAI推出了在线商店“GPT Store”。该商店已于昨日开始向付费用户、团队和企业用户推出,商店汇集了用户为各种任务创建的ChatGPT的自定义版本。 2023年初到年末,Agent就像一位来自异域的吉普赛女郎&#…

JavaScript中要实现爬虫抓取动态滚动条加载的内容Puppeteer

在JavaScript中,要实现爬虫抓取动态滚动条加载的内容(即滚动到页面底部时自动加载更多内容的网页),通常需要模拟用户滚动行为,并等待页面内容动态加载完成。由于浏览器环境下的JavaScript并不支持直接用于生产环境的网…

用ChatGPT来造一个ChatGPT:计算机领域智能问答系统实践(1)

随着信息技术的迅猛发展,人们在计算机领域的知识需求日益增长,而传统搜索引擎在回答特定问题时存在一定局限性。一个智能问答系统可以提供更直接、准确的答案,帮助用户更高效地获取所需信息。 此外,计算机领域的知识通常较为复杂…

linux 网络基础配置

将Linux主机接入到网络,需要配置网络相关设置一般包括如下内容: 主机名 iP/netmask (ip地址,网关) 路由:默认网关 网络连接状态 DNS服务器 (主DNS服务器 次DNS服务器 第三个DNS服务器) 一、…

【System Verilog and UVM实力进阶2】SVA语法

毛主席说过:没有调查就没有发言权。 《SVA介绍——学习SVA语法》系列第二讲 本文还是延续上一篇的风格,语言内容尽可能简单明了,有问题大家相互讨论,共同进步。需要电子书的朋友可以给我发邮件。tommi.weiqq.com 1.16 "ended…

228.【2023年华为OD机试真题(C卷)】传递悄悄话(优先搜索(DFS)-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-传递悄悄话二.解题思路三.题解代码Python题解代…

本地远程实时获取无人机采集视频图像(天空端 + jetson nano + 检测分割 + 回传地面端显示)

无线图传设备介绍 2、jetson nano天空端数据采集检测保存 3、本地回传显示 1、无线图传设备介绍 由于本设计考虑将无人机得到检测结果实时回传给地面站显示,因此需要考虑一个远程无线通信设备进行传输。本设计采用思翼HM30图传设备。通过无线图传的wifi将天空端的桌…

整数对最小和(100%用例)C卷 (JavaPythonC++Node.jsC语言)

给定两个整数数组 array1 、 array2 ,数组元素按升序排列。假设从 array1 、 array2 中分别取出一个元素可构成一对元素,现在需要取出 k 对元素,并对取出的所有元素求和,计算和的最小值 注意:两对元素如果对应于 array1 、 array2 中的两个下标均相同,则视为同一对元素。…

2023全球软件研发技术大会(SDCon2023)-核心PPT资料下载

一、峰会简介 本次峰会包含12大会议主题:云原生设施与平台、微服务架构实践、软件质量与效能、大数据实践与前沿、架构设计与演进、高可用与高性能架构、Web与大前端开发、编程语言与平台、AIGC与大模型、推荐系统实践、AI智能应用与研究、机器学习架构实践。 软件…

版本控制背景知识

版本控制背景知识 本文是关于 Git 系列文章的导读,我们先介绍一下版本控制的背景知识。 什么是版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。它将什么时候、什么人更改了文件的什么内容等信息如实记录下来…

使用SpringDataRedis操作Redis

Redis的java客户端 jedisLettuceSpring Data Redis Spring Data redis 是Spring的一部分,对 Redis 底层开发包进行了高度封装。在Spring项目中,可以使用Spring Data Redis来简化操作。 Spring Data Redis使用方式 操作步骤: 导入Spring …

深度探讨鸿蒙工程师面试题

深度探讨鸿蒙工程师面试题 第一部分:引言 鸿蒙(HarmonyOS)作为华为推出的全场景分布式操作系统,引领着未来智能化时代的潮流。鸿蒙工程师在这一创新性领域中扮演着至关重要的角色。本文将深入研究一系列鸿蒙工程师面试题&#x…