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


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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

position:fixed无法固定到父盒子上面的解决方案

目录 问题如图所示: 下面是错误的代码: 解决方案1: 使用fixed固定定位固定到父元素: 解决方案2: 推荐使用的其他方案(粘性定位): 什么是粘性定位: 粘性定位的使用…

答辩PPT设计太耗时?aippt工具,AI一站式服务

这些网站我愿称之为制作答辩PPT的神! 很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路,一窍不通。但这并不是你们的错,对于平时没接触过相关方面,第一次搞答辩PPT的人来说,这是很正常的一件事。一个好的答辩PPT…

搞懂Docker(九)- 使用Docker Compose

获取示例程序 示例程序 或者 示例程序 获取示例程序程序结构如下├── getting-started-app/ │ ├── package.json │ ├── README.md │ ├── spec/ │ ├── src/ │ └── yarn.lock使用Docker Compose Docker Compose是一个帮助你定义和共享多容器应用程序的工具…

在线数据库设计工具drawDB

什么是 DrawDB ? DrawDB 是浏览器中强大且用户友好的数据库实体关系(DBER)编辑器。只需点击几下即可构建图表、导出 SQL 脚本、自定义编辑器等等,无需创建帐户。 软件特点: DrawDB 是完全免费的无需注册或登录。只需投…

19.接口自动化-Jekins学习

1.CI-持续集成 频繁的(一天多次)将代码集成到主干 目的:让产品快速迭代,保持高质量 好处: 快速发现错误,每次更新都集成到主干,可以快速发现错误,定位错误也容易防止分支大幅偏离主…

字符串取第一个空格之后的所有的值字符串取第一个空格之后的第二个元素的值,不要后面的值

当我们后端返回值可能存在某些特定的值或标识导致返回数据不固定且是空格分割时,我们想取出返回字符串中的某个值,就可以参考下面对这个字符串进行操作提取,当然,如果是别的符号分割开的把下面的空格替换即可 1、字符串取第一个空…

C语言笔记14

指针1 在C语言中给内存单元的编号起了个名字叫做指针,通俗来说就是地址。(内存单元编号地址指针) 1.指针变量与地址 int a10; int* p&a; * 说明了这里p的是指针变量;int*说明p是一个整形指针&…

SpringBoot 实现对提供的接口进行 AES (加密,解密)

业务来源: 最近工作中,领导要求给别的项目组的小伙伴提供几个接口,要求对接口的参数进行解密操作,然后对返回的数据进行加密操作。 这时我想到了AES AES 是对称加密算法,优点:加密速度快;缺点…

生产环境磁盘变更方案

datanode磁盘扩容(1人天) 扩容磁盘 1.1 扩容前检查、新盘初始化 确定block副本统计正常,无丢块,无under-replicated 块 后台执行命令检查 hdfs dfs fsck / 无异常可进行以下步骤进行磁盘扩容 新盘初始化 ##格式化新盘,命令示例: mkfs.xfs /dev/sdc##挂载新盘,命令示…

哔哩哔哩直播通用榜单系统

榜单系统的定位和业务价值 榜单遍布B站直播相关业务的各个角落,直播打赏、直播间互动、付费玩法、互动玩法、活动、主播PK、语聊房、人气主播排名、高价值用户排名、增值集卡、up主充电等等,在这众多的业务场景中,我们能看到各种各样的榜单。…

Allegro如何输出各层PCB视图的PDF文件

如何输出各层PCB视图的PDF文件 1、说明 用Allegro设计好PCB后,有时需要出各层的PDF文档出来进行汇报和展示,这时就需要将各层的平面视图全部以PDF的形式加载出来,具体方法如下。 2、PDF文件的输出方法(以四层板为例) …

网上跳蚤市场|基于SSM+vue的网上跳蚤市场系统的设计与实现(源码+数据库+文档)

网上跳蚤市场系统 目录 基于SSM+vue的网上跳蚤市场系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能 5.2.2会员功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

如何内网穿透,远程访问内网设备

文章目录 0.前言1.准备工作2.内网穿透原理3.配置公网服务器的frp5.配置访问内网主机6.配置win10的远程桌面访问(win11类似)7.参考资料 0.前言 最近想研究一些新东西,公司的机器不敢乱搞,公司测试的服务器安装软件太多&#xff0c…

SQL Server服务启动缓慢或崩溃问题分析

关键词:SQL Server故障解决、服务启动缓慢、服务崩溃、日志文件清理 阅读建议:如果您遇到的是SQL Server服务启动缓慢或无法响应的问题,可以重点阅读文章的第一部分;如果是服务崩溃或重启的问题,可以重点关注第二部分。…

React 第三十章 React 和 Vue 描述页面的区别

面试题:React 和 Vue 是如何描述 UI 界面的?有一些什么样的区别? 标准且浅显的回答: React 中使用的是 JSX,Vue 中使用的是模板来描述界面 前端领域经过长期的发展,目前有两种主流的描述 UI 的方案&#xf…

如何在 Linux 上检查 CPU 和硬盘温度

为了更好地监测您的Linux系统的硬件健康状况,如CPU与硬盘温度、风扇转速等关键指标,采用lm_sensors与hddtemp这两款强大工具是明智之选。以下是关于这些工具的详尽指南,包括它们的功能介绍、安装步骤以及如何配置lm_sensors,旨在为…

C++的相关知识集

1、C概述 1 两大编程思想 c语言在c语言的基础上添加了面向对象编程和泛型编程的支持。c继承了c语言高效,简洁,快速和可移植的传统。 2 起源 与c语言一样,c也是在贝尔实验室诞生的,Bjarne Stroustrup(本贾尼斯特劳斯特卢普)在2…

自动化工具 Ansible:playbooks 剧本编写

目录 前言 一、playbooks 剧本概述 1、playbooks 剧本概念 2、playbooks 剧本组成部分 3、playbooks 剧本特点与优势 二、ansible-playbook 命令 三、playbooks 剧本简单实例 1、编写 apache 的 yum 安装部署脚本 2、编写 nginx 的 yum 安装部署剧本 四、playbooks 定…

【云原生】Kubeadm搭建K8S

一、部署Kubernetes 实验环境 服务器主机名IP地址主要组件k8s集群master01 etcd01master01192.168.10.100kube-apiserver kube-controller-manager kube-schedular etcdk8s集群node01 etcd02node01192.168.10.101kubelet kube-proxy docker flannelk8s集群node02 etcd03nod…

【源码+文档+调试讲解】微信小程序家政项目小程序

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了微信小程序家政项目小程序的开发全过程。通过分析微信小程序家政项目小程序管理的不足,创建了一个计算机管理微信小程序家政项目小程序的方案。文章介…