【MySQL数据库】初步认识数据库,实现基本操作

         在信息爆炸的今天,数据无处不在,它们构成了互联网世界的基石。但数据本身若未经有效组织和管理,就如同散落在沙滩上的珍珠,难以发挥其真正的价值。这时,“数据库”这一概念便如同一根线,将这些珍珠串联起来,使之成为璀璨的项链。本文将带您初步认识数据库,了解其基本概念、发展历程、主要职能及重要作用。

⚗️ 一.数据库

数据库(Database)是一种用于存储、管理和检索数据的系统,它允许用户以结构化方式组织、存储和检索大量信息。在数字时代,数据库是几乎所有软件应用和服务的基石,支撑着从简单的网站到复杂的业务系统和数据分析平台的数据管理需求。

🧪1.定义

数据库可以被形象地比喻为电子化的文件柜,但它远比传统文件管理更加高效和灵活。它不仅仅是一个存放数据的地方,更是一个包含了一系列规则、方法和程序的综合系统,用于确保数据的准确、安全、高效访问。

🧫2.特点

  1. 结构化: 数据库中的数据按照特定的结构(如表格、键值对等)组织,这有助于高效地存储和查询信息。
  2. 最小冗余度: 通过规范化等手段减少数据重复,确保每个数据元素只存储一次,提高存储效率和数据一致性。
  3. 数据独立性: 数据的存储方式与应用程序分离,这意味着数据结构的变化不会影响到应用程序的正常运行。
  4. 共享性: 多个用户或应用程序可以同时访问数据库中的数据,支持协同工作和资源共享。
  5. 安全性: 数据库管理系统(DBMS)提供访问控制、加密等手段,保护数据免受未经授权的访问和修改。

🧬3.数据库的组成部分

  • 数据: 实际存储的信息。
  • 数据库管理系统(DBMS): 负责创建、维护和管理数据库的软件,如MySQL、Oracle、SQL Server等。(我们学习的主体)
  • 应用程序: 访问数据库并执行数据操作的前端软件。
  • 数据库管理员: 负责设计、监控和维护数据库的专业人员。

🔬4.数据库的历史(了解)

以下内容为拓展内容,不感兴趣可以直接跳过

数据库技术的发展历程是信息技术领域一个充满创新和变革的领域,它伴随着计算机科学的进步和数据管理需求的不断增长而演变。下面是一段详尽的数据库历史概述:

早期数据管理(1950s-1960s)

在数据库技术正式诞生之前,数据主要通过手工或简单的文件系统管理。20世纪50年代,随着计算机的商业化应用,数据处理开始自动化,但仍然是以文件形式存储,缺乏统一的管理标准和数据共享能力。

层次与网状模型(1960s)

1960年代见证了数据库技术的初步形成。IBM的IMS(Information Management System)是最早的商业数据库系统之一,它采用了层次模型,数据以树状结构组织,适合展现一对多关系。几乎同时,CODASYL(Conference on Data Systems Languages)委员会提出了网状模型,数据间的关系更为灵活,可以有多对多的关系,但两者都存在数据冗余和复杂性的问题。

关系模型的诞生(1970s)

1970年,埃德加·科德(Edgar F. Codd)在论文《大型共享数据库数据的关系模型》中首次提出了关系模型,这是数据库技术史上的一个里程碑。关系模型基于集合论和关系代数,将数据视为表的集合,强调数据的独立性、结构化查询语言(SQL)的使用,以及数据的一致性和完整性。随后,Oracle、IBM的DB2和Ingres等关系型数据库系统相继问世,标志着关系数据库时代的到来。

关系型数据库的黄金时期(1980s-1990s)

1980年代至1990年代,随着个人电脑和企业计算的普及,关系型数据库系统迅速发展,成为行业标准。SQL成为查询数据库的标准语言,数据库管理系统(DBMS)的性能和功能得到显著增强,支持了更多复杂的应用场景,如事务处理、数据仓库等。

面向对象数据库(1990s)

随着面向对象编程的兴起,面向对象数据库(OODBMS)试图将面向对象的特性与数据库技术结合,支持复杂对象的存储和继承关系,但未能广泛替代关系型数据库,主要因为性能和兼容性问题。

NoSQL与大数据时代(2000s至今)

进入21世纪,互联网和移动设备的爆炸性增长带来了数据量的激增,传统关系型数据库在处理大规模、高并发、非结构化数据时面临挑战。因此,一系列非关系型数据库(NoSQL)应运而生,如MongoDB、Cassandra、HBase等,它们放弃了严格的表结构,提供了更灵活的数据模型,支持水平扩展,能够更好地适应大数据和实时分析的场景。

新兴趋势(2010s-至今)

  • NewSQL:为了解决关系型数据库扩展性问题,NewSQL数据库如Google的Spanner、Amazon Aurora等出现,旨在结合关系数据库的ACID属性和NoSQL的可扩展性。
  • 云数据库:随着云计算的普及,云数据库服务如AWS RDS、Azure SQL Database、Google Cloud SQL等提供托管的数据库解决方案,降低了运维成本,提高了灵活性。
  • 多模态数据库:为了应对复杂的数据处理需求,一些数据库系统开始支持多种数据模型,如文档、图形、键值等,以满足不同类型的应用场景。
  • AI集成数据库:近年来,数据库与人工智能技术的融合成为趋势,通过机器学习算法优化查询性能、自动管理和调优数据库等。

数据库技术的发展是一个持续演进的过程,随着技术的不断进步和社会需求的不断变化,未来数据库领域预计将继续涌现更多创新技术和应用。

🔭5.数据库的作用

  • 存储和管理数据: 集中存储数据,减少数据混乱和丢失的风险。
  • 数据访问和检索: 快速、准确地查找所需数据。
  • 数据共享: 支持多用户同时访问,促进信息交流与合作。
  • 数据安全与保护: 通过访问控制、备份与恢复等机制保障数据安全。
  • 业务支持与决策辅助: 为企业提供运营数据支持,辅助决策制定。
  • 数据分析与挖掘: 作为大数据分析的基石,支持复杂的数据处理和洞察发现。

总之,数据库是现代信息社会的基础设施之一,它使得数据能够被有效地组织、保护和利用,是推动技术创新和业务增长的关键因素。

📡二.认识MySQL

        在当今这个数据驱动的时代,MySQL作为一款广泛使用的开源关系型数据库管理系统(RDBMS),在互联网应用、企业级系统以及大数据处理等多个领域扮演着至关重要的角色。本文将带领您深入了解MySQL的奥秘,从其起源、特点、核心优势,到应用场景及未来发展,全方位剖析这款数据库界的明星产品。

🍇1.起源与现状

        MySQL的故事始于1995年,由Michael Widenius和David Axmark在瑞典共同开发。起初,它是为了解决两位创始人所在公司内部的数据库需求而诞生的。随着时间的推移,MySQL凭借其开源、免费、高性能和易用性,迅速在全球范围内获得了广泛的认可和应用。2008年,MySQL被Sun Microsystems收购,随后Sun又被甲骨文(Oracle)公司收购,但MySQL的开源精神一直得以延续。

🍈2.MySQL的核心特点

  1. 开源免费:MySQL遵循GPL协议,为用户提供了零成本获取和使用的可能性,这也是其迅速普及的重要原因之一。
  2. 高性能:MySQL经过不断优化,能够在高并发环境下提供稳定的性能表现,支持大规模数据存储和快速查询。
  3. 跨平台性:支持Windows、Linux、macOS等多种操作系统,便于在不同环境下的部署和迁移。
  4. 丰富的数据类型与存储引擎:MySQL支持多种数据类型,满足不同场景的需求;同时,通过选择不同的存储引擎(如InnoDB、MyISAM),用户可以根据应用场景优化性能。
  5. 安全性:提供强大的安全性特性,包括SSL连接、访问控制、数据加密等,确保数据的安全传输和存储。
  6. 强大的社区支持:MySQL拥有庞大的用户和开发者社区,这意味着丰富的资源、教程、第三方工具以及及时的技术支持。

🍉3.应用场景

        MySQL几乎无处不在,从个人博客、中小企业网站到大型社交网络、电子商务平台、金融系统,甚至是大数据分析的基础设施,都能看到它的身影。其灵活性和可扩展性,使其成为Web应用开发的首选数据库。

🍊4.MySQL的未来展望

        随着云计算和大数据技术的快速发展,MySQL也在不断地进化以适应新时代的需求。MySQL 8.x版本引入了诸多新特性,比如原生JSON支持、窗口函数、改进的安全性等,进一步提升了其竞争力。同时,MySQL在云原生环境下的部署和管理也得到了加强,如与Kubernetes的集成,使得MySQL在云环境下的部署更加灵活和高效。

🍋5.结语

        MySQL作为一款久经考验的数据库系统,不仅在过去几十年里证明了自己的价值,而且在面对未来技术挑战时也展现出强大的适应性和创新能力。无论是对于初学者还是经验丰富的数据库管理员,深入学习和掌握MySQL都是一项值得投资的技能。随着技术的不断演进,MySQL无疑将继续在数据库领域发挥重要作用,为全球的数据管理和分析提供坚实的基础。

🍌三.基本操作

🍍1.环境搭建与配置

  • 版本选择:基于性能优化考虑,推荐使用MySQL 5.5或5.6版本。虽然目前可能有更新版本,但这些版本在稳定性与性能之间提供了良好的平衡。
  • 初始密码设置:安装MySQL后,首要任务是为root用户设置一个安全的初始密码,确保数据库的安全性。

🥭2.数据库操作

创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明
  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则
说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集: utf8 ,校验规则是:utf8_ general_ ci

 如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建

使用数据库 

use 数据库名;

显示数据库 

show databases;

删除数据库 

DROP DATABASE [IF EXISTS] db_name;

数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除 

🍎3.表的操作

需要操作数据库中的表时,需要先使用数据库

use db_test;

 查看表结构

desc 表名;

创建表

CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype
);
可以使用 comment 增加字段说明。
示例:
create table stu_test (id int,name varchar(20) comment '姓名',password varchar(50) comment '密码',age int,sex varchar(1),birthday timestamp,amout decimal(13,2),resume text
);

删除表

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name]……

实例:

-- 删除 stu_test 表
drop table stu_test;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test;

🍒四.常用数据类型

🍓1.基本数据类型

数据类型描述存储大小有符号范围无符号范围
对应 java 类型
TINYINT小整数1字节-128 ~ 1270 ~ 255
Byte
SMALLINT短整数2字节-32,768 ~ 32,7670 ~ 65,535
Short
MEDIUMINT中等整数3字节-8,388,608 ~ 8,388,6070 ~ 16,777,215-
INT或INTEGER整数4字节-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295
Integer
BIGINT大整数8字节-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,8070 ~ 18,446,744,073,709,551,615
Long
FLOAT单精度浮点数4字节带小数点的数值,精度约7位同有符号范围
Float
DOUBLE双精度浮点数8字节带小数点的数值,精度约15位同有符号范围
Double
DECIMAL定点数可变用户定义的精度和小数位数同用户定义
Big
Decimal
CHAR固定长度字符串1字节 * N最大255字节,不足时用空格填充-Char

数值类型可以指定为无符号(unsigned),表示不取负数。

尽量不使用 unsigned ,对于 int 类型可能存放不下的数据, int unsigned 同样可能存放不下,与其如此,还不如设计时,将int 类型提升为 bigint 类型。

🫐2.字符串类型

数据类型
大小
说明
对应 java 类型
VARCHAR (SIZE)
0-65,535 字节
可变长度字符串
String
TEXT
0-65,535 字节
长文本数据
String
MEDIUMTEXT
0-16 777 215 字节
中等长度文本数据
String
BLOB
0-65,535 字节
二进制形式的长文本数据byte[]

🥝3.日期类型

数据类型
大小说明对应java类型
DATATIME8字节范围从1000到9999年,不会进行时区的检索及转换
java.util.Date
java.sql.Timestamp
TIMESTAMP4字节范围从1970到2038年,自动检索当前时区并进行转换
java.util.Date
java.sql.Timestamp

🍅五.总结与反思

不为圣贤,便为禽兽;不问收获,但问耕耘。——曾国藩

代码举例

-- 创建数据库
create database if not exists bit32mall
default character set utf8 ;-- 选择数据库
use bit32mall;-- 创建数据库表
-- 商品
create table if not exists goods
(goods_id  int comment '商品编号',goods_name varchar(32) comment '商品名称',unitprice  int comment '单价,单位分',category  varchar(12) comment '商品分类',provider  varchar(64) comment '供应商名称'
);-- 客户
create table if not exists customer
(customer_id  int comment '客户编号',name varchar(32) comment '客户姓名',
address varchar(256) comment '客户地址',
email varchar(64) comment '电子邮箱',
sex bit comment '性别',
card_id varchar(18) comment '身份证'
);-- 购买
create table if not exists purchase
(
order_id int comment '订单号',
customer_id int comment '客户编号',
goods_id int comment '商品编号',
nums int comment '购买数量'
);

学习MySQL的基础操作过程中,我深入了解了数据库的核心概念和基本操作,包括表操作和基本数据类型。下面是我对所学内容的总结与反思:

基本操作

学习MySQL的基础操作,我首先了解了如何连接到MySQL数据库服务器,并掌握了使用命令行或图形化界面工具进行交互的方法。通过学习基本的SQL语句,我能够执行常见的数据库操作,如创建数据库、创建表、插入数据、更新数据和删除数据等。这些基本操作为我进一步深入学习数据库提供了坚实的基础。

表操作

表是数据库中存储数据的基本单位,学习MySQL时我学会了如何创建表、定义表的结构(列)、设置主键和外键等。此外,我还学习了如何使用ALTER TABLE语句对表进行修改,包括添加新列、删除列、修改列属性等。这些表操作使我能够灵活地设计和管理数据库结构,以适应不断变化的需求。

基本数据类型

        MySQL支持多种基本数据类型,包括整数、浮点数、日期时间、字符串等。学习MySQL基础操作时,我深入了解了这些数据类型的特点和用法。掌握了正确的数据类型选择对于数据库的性能和数据完整性至关重要。因此,我努力理解每种数据类型的适用场景,以便在实际应用中进行合理的选择。

        通过学习MySQL的基础操作,我对数据库的概念和原理有了更深入的理解,同时也提升了我的实际操作能力。我意识到数据库作为信息系统的核心,对于任何与数据相关的应用都至关重要。在未来的学习和工作中,我将继续深入学习数据库技术,并不断提升自己的数据库管理和优化能力,以应对日益复杂的数据管理需求。

        学习MySQL不仅仅是学习一门技术,更是培养了我对数据的敏感性和处理数据的能力。我相信这些所学将在我的职业生涯中发挥重要作用,并为我未来的发展奠定坚实的基础。


🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀

以上,就是本期的全部内容啦,若有错误疏忽希望各位大佬及时指出💐

  制作不易,希望能对各位提供微小的帮助,可否留下你免费的赞呢🌸

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

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

相关文章

【iOS】frame与bounds区别

文章目录 前言framebounds两者区别size的区别总结 前言 在学习响应者链的过程中用到了frame与bounds的混用,这两个属性经常出现在我们的开发中,特别撰写一篇博客分析区别 首先,我们来看一下iOS特有的坐标系,在iOS坐标系中以左上…

RTSP/Onvif安防监控系统EasyNVR级联视频上云系统EasyNVS报错“Login error”的原因排查与解决

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

灵卡科技HDMI音视频采集及H.264编码一体化采集卡—LCC260

推荐一款由灵卡科技倾力打造的高品质HDMI音视频采集卡——LCC260。以创新的技术,精湛的工艺和卓越的性能,为您提供全方位的音视频解决方案。 LCC260是一款集HDMI音视频采集与H.264编码于一身的全功能采集卡。它的输入端配备了最先进的HDMI 1.4a标准接口&…

AI游戏外挂为何违法?

尊敬的读者们,大家好!今天我想和大家探讨一个备受争议的话题——AI游戏外挂的合法性。近年来,随着人工智能技术的飞速发展,AI外挂逐渐成为游戏领域的一大毒瘤。那么,为什么AI游戏外挂会被视为违法行为呢?本…

zabbix监控mariadb

zabbix 服务端安装请参阅:红帽 9 zabbix 安装流程_红帽安装zabbix-CSDN博客 源码包安装mariadb请参阅:源码包安装mariadb_mariadb 11 源码编译安装-CSDN博客 在MariaDB中,你需要创建一个专门的用户,用于Zabbix进行监控。这个用户…

IDEA找不到database图标的解决方法

首先右边侧边栏和左边的侧边栏都看一下,确认没有数据库图标以后再参考下面方法。 第一步,打开设置,在插件里搜索database 第二步 安装好,点击确定 返回主页面,左边的侧边栏会出现database图标,点击号就可以…

Python---NumPy万字总结【此篇文章内容难度较大,线性代数模块】(3)

NumPy的应用(3) 向量 向量(vector)也叫矢量,是一个同时具有大小和方向,且满足平行四边形法则的几何对象。与向量相对的概念叫标量或数量,标量只有大小,绝大多数情况下没有方向。我们…

笔记-跨域方式实现原理

websocket Websocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。WebSocket和HTTP都是应用层协议,都基于 TCP 协议。但是 WebSocket 是一种双向通信协议,在建立连接之后&#xff…

vue3 中 使用 antd中的select 组件的带搜索框 展开后可对选项进行筛选搜索功能

鼠标进入以后下拉显示&#xff1a; 输入字符串以后&#xff1a; 可以看出对数据进行了筛选。 具体代码&#xff1a; 结构上&#xff1a;<a-selectv-model:value"formState.formFlow"show-searchallowClearplaceholder"输入选择流程":options"op…

OpenCV人脸识别,报错缺少haarcascade_frontalface_default.xml文件解决方案(随手记)

使用pip安装的opencv库可能会缺少进行人脸识别的haarcascade_frontalface_default.xml等文件。 可以通过github直接进行下载&#xff0c;再放到需要使用的python文件目录下 单击连接&#xff0c;github人脸识别库-link 找到对应需要的xml文件&#xff0c;这里我举例为haarcas…

[图解]EA从数据库逆向得到分析类模型-01

1 00:00:00,840 --> 00:00:02,400 今天&#xff0c;我们来说一下 2 00:00:02,670 --> 00:00:06,320 一个最近几天不止一个同学问的问题 3 00:00:06,490 --> 00:00:11,410 就是说&#xff0c;怎样把一个数据库 4 00:00:13,740 --> 00:00:16,720 转到分析类图 5 …

Docker 的 Ubuntu 操作系统镜像

Debian 和 Ubuntu 都是目前较为流行的 Debian 系列 的服务器操作系统&#xff0c;十分适合研发场景。 Debian 和 Ubuntu 属于同一系列的发行版。Debian 是由 Ian Murdock 在 1993 年创建的最初的发行版。Ubuntu 是 Mark Shuttleworth 在 2004 年基于 Debian 创建的发行版。 Li…

Android 按键消息流程源码分析

在Android系统中&#xff0c;键盘按键事件是由SystemServer服务来管理的&#xff1b;然后在以消息的形式分发给应用程序处理。产生键盘按键事件则是有Linux kernel的相关驱动来实现。键盘消息有别于其他类型的消息&#xff1b;需要从Linux kernel drivers产生由上层APP来处理。…

MWM触摸屏工控机维修TEM-EV0 EN00-Z312yy-xx

触摸屏维修是一个比较复杂的过程&#xff0c;并且其中会涉及到各个部件的问题&#xff0c;这对于操作人员来说&#xff0c;关键在于是否可以找到问题所在。维修过程中建议先检查各接线接口是否出现松动&#xff0c;然后检查串口及中断号是否有冲突&#xff0c;若有冲突&#xf…

Ubuntu20.04 设置路由器

1. 网络拓扑图 双网卡单Lan口拓扑图 多网卡多Lan口带网桥拓扑图 2. 查看网卡信息 ip a得出如下网卡信息列表&#xff0c;共四个网络信息&#xff0c;忽略第一个本地环回地址 一共存在三个网卡分别为enp1s0、enp2s0、wlo&#xff0c;以及其他详细信息&#xff0c;当前我们只需…

【Linux系统编程】第十八弹---进程状态(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、操作系统进程 1.1、进程背景 1.2、进程如何在CPU上运行的&#xff1f; 1.2、进程状态 2、Linux的进程状态 2.1、如何描…

U盘打不开提示格式化怎么办?(含数据恢复及U盘修复教程)

引言&#xff1a; 随着数字化时代的发展&#xff0c;U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而&#xff0c;有时我们可能会遇到U盘突然无法打开&#xff0c;并提示需要格式化的问题。这不仅会打乱我们的工作节奏&#xff0c;还可能会导致重要数据丢失。本文…

【SpringSecurity源码】过滤器链加载流程

theme: smartblue highlight: a11y-dark 一、前言及准备 1.1 SpringSecurity过滤器链简单介绍 在Spring Security中&#xff0c;过滤器链&#xff08;Filter Chain&#xff09;是由多个过滤器&#xff08;Filter&#xff09;组成的&#xff0c;这些过滤器按照一定的顺序对进…

基于SpringBoot+Vue的法律咨询系统

课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域的鸿沟&#xff0c;信息的传播速度极慢&#xff0c;信息处理的速…

Kafka应用Demo:按主题订阅消费消息

安装环境 Kafka安装可参考官方网站的指导(https://kafka.apache.org/quickstart), 按步骤解压压缩包&#xff0c;修改配置。然后再启动zookeeper和kafka-server即可。 需要注意的一点&#xff1a;如果是在VMware虚拟机上启动的kafka, 需要修改一下server.properties配置文件&am…