MySQL初学之旅(1)配置与基础操作

85fb7bf2aa654fc28cdfa712d1f776df.jpeg


目录

1.前言

2.正文

2.1数据库的发展历程

2.2数据库的基础操作

2.2.1启动服务

2.2.2创建与删除数据库

2.2.3数据类型

2.2.4创建表与删除表

2.3MySQL Workbench基础使用简介

3.小结


1.前言

哈喽大家好吖,今天博主正式开始为大家分享数据库的学习,数据库的学习也是为了未来能够完成企业级项目而添砖Java(doge),那么废话不多说,让我们开始吧。

2.正文

2.1数据库的发展历程

在正式学习数据库之前,让我们先了解下MySQL的发展历程以及我们为什么要学习MySQL,这对我们会有什么帮助。

MySQL的历史可以追溯到1979年,当时Michael Widenius在一家名为TcX的小公司工作,他创建了一个名为Unireg的报告工具,最初是用BASIC(这个就是俗称的B语言)编写的,运行在4 MHz的计算机和16KB的RAM上。

50e8d9f967aa427f983e6f46e390c55c.png

随着时间的推移,这个工具被用C语言重写,并移植到了Unix平台上。1995年,MySQL由David Axmark, Allan Larsson和Michael Widenius三位工程师在瑞典创立,并在同年发布了第一个MySQL服务器版本。1996年,MySQL 1.0版本首次发布,随后在同年10月发布了MySQL 3.11.1版本,最初只提供了Solaris的二进制版本,一个月后发布了源代码和Linux二进制版本。在接下来的两年里,MySQL被移植到多个操作系统上,功能集逐渐增加。

e39c3e8841eb4cccb179faa8265b2c54.png

2000年左右,MySQL AB公司成立,并与Sleepycat合作,为Berkeley DB数据文件提供SQL接口,从而为MySQL增加了事务处理能力。2001年,MySQL集成了InnoDB存储引擎,该引擎支持事务处理和行级锁。MySQL 4.0版本正式结合了InnoDB,而到了MySQL 5.0版本,增加了视图、存储过程等功能。

2a4e715b212c4a7baf51c63183b01ada.png

2008年1月16日,MySQL被Sun公司收购。后来,Oracle在2010年收购了Sun Microsystems,MySQL现在由Oracle拥有。

在了解完MySQL的大致发展历程,接下来我们就需要知道我们为什么要学习MySQL 

数据库是用来干什么的呢:

数据库是一个用于存储、组织、管理和高效访问大量结构化数据的关键系统。它允许用户通过特定的软件应用程序或查询语言来添加、访问、更新和删除数据,从而支持各种业务操作、决策制定和信息系统。

我们使用MySQL的优点:

  1. 简单易用:MySQL以其简单易用的特点吸引了大量Java开发者。它的安装和配置过程相对简单,提供了友好的图形用户界面和丰富的命令行工具,使得开发者可以轻松管理数据库、执行SQL查询和维护数据。

  2. 性能优异:MySQL在大规模数据处理和高并发访问场景下保持高效运行。Java应用往往需要处理大量数据和高频率的数据库操作,MySQL在这种情况下表现尤为出色。

  3. 社区支持:MySQL作为开源项目,拥有庞大的用户社区和丰富的资源支持。Java开发者可以通过社区获得大量的学习资料、技术文档和示例代码。

  4. 丰富的工具生态:MySQL拥有丰富的工具生态,为Java开发者提供了诸多便利,包括数据库管理工具、数据迁移工具和性能监控工具等。

  5. 成本效益:MySQL作为开源数据库,具有极高的成本效益。Java开发者可以免费使用MySQL,避免了高昂的商业数据库许可费用。

  6. 广泛应用场景:MySQL在各类应用场景中都有广泛的应用,包括Web应用、企业系统、数据分析等。其灵活的架构和强大的功能使得Java开发者可以根据不同的需求选择最合适的解决方案。

  7. 不断创新和更新:MySQL作为开源项目,持续不断地进行创新和更新,不断推出新功能和优化性能。Java开发者可以及时获取MySQL的最新版本,享受到最新的技术和功能。

2.2数据库的基础操作

2.2.1启动服务

在使用MySQL服务之前,当然要先去官网安装配置环境咯,官网奉上MySQLhttps://www.mysql.com/cn/

在配置好环境之后我们需要在电脑上启动数据库服务,有以下俩种方法启动:

  • 搜索栏直接搜索服务去寻找MySQL。
  • 或者win+R输入services.msc打开服务。

3c7322fd9c9247e88bc4ec4beebd5eef.png

找到MySQL启动服务。

9e9467b863394d468a535cf77763968c.png

启动完服务后打开箭头所在,并输入密码,如果出现以下结果说明已经数据库服务开始运行起来咯

 5af695b8ac7640929f3dfcfe53fa500f.png

bceaab61e14f405cb2a2c6b943039ddd.png

这样我们就完成了以上操作,可以开始代码部分的学习了。

2.2.2创建与删除数据库

展示当前数据库:

show databases;

 4d35b0ad86054086865452e449a177c9.png

创建数据库:

create database (if not exists) testbase;

注:小括号内为可加可不加,意思为如果不存在该名的数据库就创建,否则报错,testbase为数据库名,可任意写。

为了显示创建效果我们再使用show databases;语句:

1b6fe8366bcb4800a9c320cf8e076230.png

可见创建成功。

删除数据库:

drop database (if exists) databasename;

我们删除一下上文刚创建的数据库并展示出来:

c629f65c18f047fe8cc1c7465ab46917.png

2.2.3数据类型

因为数据库中会存储各种各样类型的数据,所以在数据库中也有数据类型,详解如下:

一、数值类型

数值类型用于存储整数或小数,包括整数类型、浮点类型和定点数类型。

  1. 整数类型

    • TINYINT:小整数,范围从-128到127(有符号)或0到255(无符号)。
    • SMALLINT:小型整数,范围从-32,768到32,767(有符号)或0到65,535(无符号)。
    • MEDIUMINT:中型整数,范围从-8,388,608到8,388,607(有符号)或0到16,777,215(无符号)。
    • INT:标准整数,范围从-2,147,483,648到2,147,483,647(有符号)或0到4,294,967,295(无符号)。
    • BIGINT:大整数,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807(有符号)或0到18,446,744,073,709,551,615(无符号)。
  2. 浮点类型

    • FLOAT:单精度浮点数,范围约为-3.402823466E+38到3.402823466E+38。
    • DOUBLE:双精度浮点数,范围约为-1.7976931348623157E+308到1.7976931348623157E+308。
  3. 定点数类型

    • DECIMAL(M, D):精确的数值类型,M是总位数,D是小数位数。例如,DECIMAL(10, 2)可以存储总共10位数字,其中2位在小数点后。一般表示小数推荐使用这个,更加精准

二、字符串类型

字符串类型用于存储文本或字符数据,包括定长字符串、变长字符串和文本字符串。

  1. 定长字符串

    • CHAR(M):定长字符串,字符数为M。若实际存储的字符少于M,则用空格填充。
  2. 变长字符串

    • VARCHAR(M):变长字符串,最大字符数为M。存储实际字符数加1或2字节用于记录长度。这个也是使用比较多的。
  3. 文本字符串

    • TINYTEXT:最多255字节的文本。
    • TEXT:最多65,535字节的文本。
    • MEDIUMTEXT:最多16,777,215字节的文本。
    • LONGTEXT:最多4,294,967,295字节的文本。

此外,还有二进制字符串类型,如BINARY(定长二进制字符串)和VARBINARY(变长二进制字符串)。


三、日期和时间类型

日期和时间类型用于存储日期和时间值,包括以下几种:

  1. DATE:日期,格式为YYYY-MM-DD,范围为1000-01-01到9999-12-31。
  2. TIME:时间,格式为HH:MM:SS,范围为'-838:59:59'到'838:59:59'。
  3. DATETIME:日期和时间,格式为YYYY-MM-DD HH:MM:SS,范围为1000-01-01 00:00:00到9999-12-31 23:59:59。

2.2.4创建表与删除表

表是什么?表是数据库中存储数据的基本结构。一个表通常由行(rows)和列(columns)组成,类似于Excel电子表格或纸质表格。每一列代表一个字段,每一行代表一条记录。表用于组织和存储特定类型的数据,例如,一个图书馆数据库中的“Books”表可能包含书名、作者、ISBN号和出版日期等字段。

在创建表之前,先得使用当前需要操作的数据库:

use database_name;

06c93aaf4e334718a32cd7047ad41f2d.png

创建表 :

CREATE TABLE 表名 (  列名1 数据类型 [约束],  列名2 数据类型 [约束],  ...  [表选项]  
);

示例: 

7b16bbe8131f48098d92aff8384a2ba0.png

删除表:

DROP TABLE 表名;

7aa7788716794357aff39c8839529153.png

这就是一些基础操作,至于比较关键的增删改查我们后续会有详细的讲解。

2.3MySQL Workbench基础使用简介

接下来让我们大概了解下是如何使用的MySQL Workbench,这个是在咱们配置MySQL环境时就有这个软件,让我们更加方便的操作数据,让我们先简单介绍下MySQL Workbench。

MySQL Workbench是一款专门为MySQL设计的集成化桌面软件,也是一款功能强大的数据库管理工具。它提供了数据库设计与模型建立、SQL开发、数据库管理等功能,并支持Windows、Linux和Mac OS等操作系统。

打开这个页面:

9eee079485764e96972d804c8117a1ad.png

第一次进入需要密码,输入自己设置的即可。

创建数据库:

29ebedc399024066a14244197c4ec945.png

给数据库起完名字后,点击apply,

4da1665f3c644343bb8e1a0fccc9a8c7.png

新建表:

9dec13b67b7641b3ab6138c144aaf183.png

在下面这个页面为表格创建里面的变量,填写数据类型,或者填上注解,最后apply。

697ff616bb9b407a9da3fb8e75e139a6.png

点击apply:

5d42b87c6f614a8bb400fcb3f6d6b935.png

这样一个表就创建完毕了。

dcb0fc11dccf43a58365d106067b81d0.png

删除右键drop即可。

3.小结

今天的分享到这里就结束了,喜欢的小伙伴点点赞点点关注,你的支持就是对我最大的鼓励,加油!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【优选算法】——滑动窗口(下篇)!

目录 1、水果成篮 2、找到字符串中所有字母异位词 3、串联所有单词的子串 4、最小覆盖子串 1、水果成篮 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能…

【Python】heapq模块(操作最小堆,主要用途优先队列)

Python中heapq模块被称为堆队列算法,也成为优先队列算法。堆的主要用途是优先队列和堆排序。 堆(二叉树的应用):最小堆,最大堆。 最小堆:父节点小于等于所有子节点,左右子节点无大小要求&…

MFC图形函数学习06——画椭圆弧线函数

绘制椭圆弧线函数是MFC基本绘图函数,这个函数需要的参数比较多,共四对坐标点。前两对坐标点确定椭圆的位置与大小,后两对坐标确定椭圆弧线的起点与终点。 一、绘制椭圆弧线函数 原型:BOOL Arc(int x1,int y1,int x2,int y2…

Nuxt 项目安装时报错 fetch failed (详细)

报错: ERROR Error: Failed to download template from registry: Failed to download https://raw.githubusercontent.com/nuxt/starter/templates/templates/v3.json: TypeError: fetch failed. 报错原因: 对 raw.githubusercontent.com 进行了 DNS 污染,这会导致你的请…

autox.js下载并保存项目到设备使用

最近刷快手极速版薅羊毛,手动刷有点累。因此找到这个。 PS:更多内容请见官方文档:首页 (autoxjs.com) 1.下载工程化环境:https://github.com/kkevsekk1/AutoX/archive/refs/heads/dev-test.zip 手机软件下载软件:Relea…

ssm+vue680基于SSM的旅游论坛设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

盘点2024年制造业数字化转型的6大发展趋势

​目前制造业的行业数字化发展存在以下几个趋势: 1、从“增量时代”进入“存量时代”,数字化转型成为行业共识 过去几十年,我国装备制造行业从无到有,从小到大,从指数增长的增量时代,进入优化升级的存量时…

安科瑞Acrel-2000ES储能柜能量管理系统的详细介绍-安科瑞 蒋静

Acrel-2000ES储能柜能量管理系统具备全面的储能监控和管理功能。它包括了储能系统设备(如PCS、BMS、电表、消防、空调等)的详细信息,并实现了数据采集、处理、存储、数据查询与分析、可视化监控、报警管理和统计报表等功能。此外,…

ESP32的下的蓝牙应用笔记(1)——Beacon蓝牙信标

Beacon蓝牙信标简介 ‌Beacon蓝牙信标‌是一种基于蓝牙低功耗(BLE)技术的设备,主要用于提供位置信息和数据传输服务。它通过周期性地广播信号,能够在一定范围内与其他蓝牙设备进行通信,从而提供精准的位置信息和相关服…

[极客大挑战 2019]BuyFlag1

[极客大挑战 2019]BuyFlag1 审题 菜单有一个home,一个payflag 查看payflag中的要求 具体有三个要求 要有100000000块钱要是CUIT的学生回答正确的密码 知识点 http消息头的伪造 解题 抓包查看信息 看到user0,猜测这应该是CUIT的学生的判断条件…

ElementUI el-form表单多层数组的校验

问题描述 提示:这里描述项目中遇到的问题: ElementUI el-form表单多层数组的校验 页面效果: 数据结构: addform: {code: ,type: ,value: ,state: 1,remark: ,fieldList: [{fieldCode: ,resolverEntities: [{resolverType: , re…

Java基础-I/O流

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 字节流 定义 说明 InputStream与OutputStream示意图 说明 InputStream的常用方法 说明 OutputStrea…

FITS论文解析

在本文中,作者探讨了如何将复杂的频域特征提取与简单的线性模型(如DLinear)结合,以优化时间序列预测任务的效率和解释性。本文的核心思想是利用频域处理和DLinear的简化结构来达到高效的预测能力,同时保留对复杂特征的…

【go从零单排】go三种结构体:for循环、if-else、switch

Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 for循环是go语言唯一的循环语句,没错,在go中再也不会看到while true package mainimport …

【数据增强】Mixup

方法来源 Mixup是2018年发表在ICLR上的一种数据增强方法,它通过将多组不同数据集的样本进行线性组合,生成新的样本,从而扩充数据集。 核心思想是从每个batch中随机选择两张图像,并以一定比例混合生成新的图像,新图像的…

基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式

时间序列数据表示了一个随时间记录的值的序列。理解这些序列内部的关系,尤其是在多元或复杂的时间序列数据中,不仅仅局限于随时间绘制数据点(这并不是说这种做法不好)。通过将时间序列数据转换为图,我们可以揭示数据片段内部隐藏的连接、模式和关系,帮助我们发现平稳性和时间连…

Qt学习笔记第41到50讲

第41讲 UI美化遗留问题解决 如上图所示目前记事本的雏形已现,但是还是有待优化,比如右下角的拖动问题。 解决方法: ①首先修改了Widget类的构造函数。 Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) {ui->s…

社区养老服务小程序ssm+论文源码调试讲解

第2章 开发环境与技术 校车购票微信小程序的编码实现需要搭建一定的环境和使用相应的技术,接下来的内容就是对校车购票微信小程序用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的,是经常变动的&#xf…

【RabbitMQ】03-交换机

1. 交换机 2. Fanout交换机 广播。生产者向exchange发消息 SpringBootTest public class SpringAmqpTest {Autowiredpublic RabbitTemplate rabbitTemplate;Testvoid testSimple() {String exchangName "hmall.fabout";rabbitTemplate.convertAndSend(exchangName…

Java基础-集合

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 前言 一、Java集合框架概述 二、Collection接口及其实现 2.1 Collection接口 2.2 List接口及其实现 …