Mysql 数据库开发及企业级应用

news2025/2/21 20:01:04

文章目录

  • 1、Mysql 数据库开发及企业级应用
      • 1.1、为什么要使用数据库
        • 1.1.1、数据库概念(Database)
        • 1.1.2、为什么需要数据库
      • 1.2、程序员为什么要学习数据库
      • 1.3、数据库的选择
        • 1.3.1、主流数据库简介
        • 1.3.2、使用 MySQL 的优势
        • 1.3.3、版本选择
      • 1.4、Windows 平台下安装与配置 MySQL
        • 1.4.1、安装配置MySQL
        • 1.4.2、启动 MySQL 服务
        • 1.4.3、控制台登陆 MySQL 命令
      • 1.5、C/C++访问 MySQL 数据库
        • 1.5.1、Visual Studio 2019 配置
  • 2、修改数据库密码

1、Mysql 数据库开发及企业级应用

1.1、为什么要使用数据库

​ 程序员 Jack 还是在在校学习期间, 就听高年级的大哥忠告, “ 小伙子, 搞编程, 想要成为最牛逼的程序员, 一定要学好 C/C++语言和数据结构及算法” , Jack 谨记了这句忠告, 因为这位高年级的哥们还没毕业就已经被 BAT 公司预定, 在学校那是风光无限, 得到了很多高年级美女学姐的青睐。

​ 经过一段时间的刻苦学习, Jack 终于把 C++ 和数据结构还有算法学得有点模样了, 不自觉就进入初级装逼模式,在同学面前那是指手画脚, 趾高气昂。 。 。 。
在这里插入图片描述

​ 这种状态一直持续到实习期间, Jack 进入一家小有名气的游戏开发公司实习, 被安排到一个棋牌游戏的项目组。 项目组的项目经理颇为认同新来的 Jack 同学( 因为面试时问到的 C++和数据结构相关的试题, 只有 Jack 力压群雄, 达到了项目经理的要求, 甚至有几年工作经验的程序员都搞不定的 A*算法, Jack 也是对答如流! ) , 并没有给他安排一些意义不大的杂活给他干, 而是编制为开发团队的正式一员, 享受正式员工的待遇! 此时的 Jack 意气风发, 代码撸的更加卖力了, 因此也很快融入了开发团队中。 。 。

​ 有一天, 项目组的小组长给 Jack 分配了一个新的任务, 让 Jack 实现用户登陆模块, 具体需求
如下:

  1. 游戏玩家访问游戏客户端, 通过客户端界面输入用户名和密码。
  2. 在游戏玩家点击”确认”后, 客户端连接至数据库服务器对用户名和密码进行确认,如果验证成功, 则 玩家可以进入大厅, 如果失败, 则不允许进入!
  3. 。 。 。
    啊! 数据库! 什么东东?

在这里插入图片描述

因为项目需要, Jack 马上紧张起来, 翻阅各种资料, 耗费了几个废寝忘食的日日夜夜, 才从以下几个方面搞清楚了 why do we need database?

1.1.1、数据库概念(Database)

就是按照数据结构来组织、 存储和管理数据, 建立在计算机存储设备上的仓库。 我们可以把数据库看成电子化的文件柜, 也就是存储电子文件的处所, 用户可以对文件中的数据进行新增、 查询、 更新、 删除等操作。

1.1.2、为什么需要数据库

一般情况下, 要保存用户的数据, 一个最简单的方法是把用户数据写入文件。 例如, 要保存用户的密码信息, 可以写入下面的文件中 txt 文件:

id,name,passwd

1,小明,123456

2,小红,654321

3,小军,888888

4,小丽,666666

保存用户购买的道具 prop.txt :

id,prop,price,num

1,金戒指,12,1 8979438401111

1,银戒指,10,1

2,房卡,10,10

3,鲜花,2,6

1,房卡,10,100

但是, 随着应用程序的功能越来越复杂, 数据量越来越大, 如何管理这些数据就成了大问题:

  • 读写文件并解析出数据需要大量重复代码;
  • 从成千上万的数据中快速查询出指定数据需要复杂的逻辑。
  • 数据缺乏安全感 。

​ 如果每个应用程序都各自写自己的读写数据的代码, 一方面效率低, 容易出错, 另一方面, 每个应用程序访问数据的接口都不相同, 数据难以复用。

​ 所以, 数据库作为一种专门管理数据的软件就出现了。 应用程序不需要自己管理数据, 而是通过数据库软件提供的接口来读写数据。 至于数据本身如何存储到文件, 那是数据库软件的事情, 应用程序自己并不关心:

这样一来, 编写应用程序的时候, 数据读写的功能就被大大地简化了。

1.2、程序员为什么要学习数据库

  • 几乎任何一个企业级应用, 都要用到数据库。
  • 无论开发、 测试、 运维还是架构师, 数据库都是加分神器!
  • 小的软件企业分工不明确, 全能型人才能得到更多的机会(就业和提升)。
  • 外包和自由程序员必备 。

在这里插入图片描述

1.3、数据库的选择

1.3.1、主流数据库简介

当今市面上的数据库产品众多, 每种数据库都有自己的优势和缺点, 或出于数据库的性能和易用性考虑, 或出于商用和开源考虑, 如何选择自己合适的数据库产品, 成为重中之重!

在这里插入图片描述

主要的数据库产品有如下几种:
Oracle - 作为一种商业性关系型数据库,在事务处理方面有自己独到的优势,功能比较强大,市场占有率也比较高。oracle 数据库是一种大型的关系型数据库,在使用上会收费。在部署上,可以根据自己的环境采用单节点或者集群部署。经常会使用于银行和金融机构,存储大量数据,可以对海量数据进行分析处理,在安全性上使用访问控制和多种数据备份机制,可靠性高。

Mysql - 作为一种开源的轻量级关系型数据库,在开源数据库中比较流行,由于小巧安装方便快捷,经常会用于互联网公司,维护也比较方便。因为开源,使用上比较灵活,mysql 还有许多第三方的存储引擎,可以根据自己的需要进行安装。在功能上mysql 可能没有 oracle 强大,但是对于资源的占用非常少,数据恢复快。在维护上,追求稳定的性能和易用性。

Redis - 作为一种缓存数据库,对于数据的读写特别快,redis 之所以快,是因为它数据放在内存中,但是内存比较贵,另一方面,内存也是有限制的,当内存不够时,就需要使用 redis 的分布式方案redis 作为一种非关系型数据库,可以适用于高并发场景,配合关系型数据库作为做高速缓存,也可以降低磁盘 IO,使用键值对存储,不适用于结构复杂的 sql 数据

另外 MongoDB, SQL Server 等数据库也是常用的数据库。

选择数据库时, 既要考虑成本, 还有考虑维护的稳定和便利性,结合自己的设备规模。 最重要的, 需要结合我们的业务, 如果高安全性, 海量数据, 能承担高昂的成本, 可以选择 oracle一般应用的快速查询, 高并发访问, 一般情况下都可以选择 mysql, 另外特殊情况特殊处理!

1.3.2、使用 MySQL 的优势

​ 如今很多主流网站都选择 MySQL 数据库来存储数据, 比如阿里巴巴的淘宝。 那么, MySQL 到底有什么优势, 吸引了这么多用户? 主要是基于以下几点原因:

  • 开源
    • 开源软件是互联网行业未来发展的趋势。 MySQL 是开放源代码的数据库, 这就使得任何人都可以获取 MySQL 的源代码, 并修正 MySQL 的缺陷, 并且任何人都能以任何目的来使用该数据库,这是一款自由使用的软件。 对于很多互联网公司来说, 选择使用 MySQL 是一个化被动为主动的过程, 无须再因为依赖封闭的数据库产品而受牵制。
  • 成本因素
    • MySQL 社区版是完全免费的, 企业版基于服务和支持收费。 相比之下, OracleDB2SQL
      Server 价格不菲, 再考虑到搭载的服务器和存储设备, 那么成本差距是巨大的。
  • 跨平台性
    • MySQL 不仅提供 Windows 系列的版本, 还提供 UNIXLinuxMac OS 等操作系统对应的版本。 因为很多网站都选择 UNIXLinux 作为网站的服务器, 所以 MySQL 具有跨平台的优势。
  • 容易使用
    • MySQL 是一个真正的多用户、 多线程 SQL 数据库服务器, 能够快速、 高效、 安全地处理大量的数据。 MySQLOracle 性能并没有太大的区别, 在低硬件环境下, MySQL 分布式的方案同样可以解决问题, 而且成本比较经济, 从产品质量、 成熟度、 性价比来讲, MySQL 都是非常不错的。另外,MySQL 的管理和维护非常简单, 初学者很容易上手, 学习成本较低。

1.3.3、版本选择

MySQL5.7 版本直接跳跃发布了 8.0 版本, 可见这是一个令人兴奋的里程碑版本。 MySQL 8.0版本在功能上做了显著的改进与增强, 不仅在速度上得到了改善, 还提供了一系列巨大的变化, 为用户带了更好的性能和更棒的体验。

三个字形容, 就是比以前的更棒 棒 棒!

1.4、Windows 平台下安装与配置 MySQL

1.4.1、安装配置MySQL

免费下载网址: https://dev.mysql.com/downloads/windows/installer/8.0.html
版本选择 : 社区版 8.0.12

在这里插入图片描述
在这里插入图片描述

1.4.2、启动 MySQL 服务

  • 图形化界面启动:
    • 右击“计算机” , 在快捷菜单中选择“管理” 命令, 如图所示, 打开“计算机管理” 对话
      框。 也可以执行“开始” |“控制面板” |“管理工具” |“服务” 来启动服务。

在这里插入图片描述

  • 命令行启动

    • 查看服务命令: net start
    • 关闭服务命令: net stop MySQL
    • 启动服务器命令: net start MySQL

在这里插入图片描述

1.4.3、控制台登陆 MySQL 命令

mysql -h 127.0.0.1 -uroot -p123456

(注:-h 以及后面的127.0.0.1是主机名字 ,-p后面的为 root 的密码,根据个人设置不同而不同) 。

在这里插入图片描述

1.5、C/C++访问 MySQL 数据库

1.5.1、Visual Studio 2019 配置

在这里插入图片描述

  • 第一步:打开 mysql 的安装目录,我这里安装目录如下:D:\mysql,确认lib 目录和 include 目录是否存在。
    在这里插入图片描述

  • 第二步:打开 VS2019,新建一个空工程,控制台应用程序即可,注意:解决方案平台选择 X64
    在这里插入图片描述

  • 第三步:右击工程名,打开属性页。

在这里插入图片描述

  • 第四步:打开 C/C++目录,将 mysql 安装文件中include文件的路径添加到这里。

在这里插入图片描述
在这里插入图片描述

  • 第五步:打开 链接器目录,在库目录中将 mysql 文件中的 lib 文件路径添加进来。

在这里插入图片描述

  • 第六步:在属性页的链接器中,点击“输入”,将 mysql 安装文件夹中lib目录下的libmysql.lib 文件加到“附加依赖项”中,注意,这里直接把 libmysql.lib 这个依赖名加进去即可,不要加路径。
    在这里插入图片描述

  • 第七步:把 mysql 安装目录里的 lib\libmysql.dll 复制到 c:\windows\system32 下 。
    在这里插入图片描述

  • 第八步:编译如下代码,启动 mysql, 将代码中连接数据库的用户名和密码改成自己的设定,顺利获取到
    student 表中的结果即表示连接成功!

在这里插入图片描述

2、修改数据库密码

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

C语言,通过多文件编辑定义字符指针,指向堆区空间,计算字符串长度

通过多文件编辑,定义字符指针,分别指向堆区空间,计算字符串长度 要求: 1、定义函数实现堆区空间申请 2、在主函数中实现输入字符串 3、定义函数实现字符串长度 函数原型:size_t my_strlen(const char *s) 4、定义函数释…

vue 下拉框显示从后端请求的数据

下拉框<!-- 给产品添加推广人员弹出框 --><el-dialog :title"titlePerson" :visible.sync"openAddPerson" width"1000px" append-to-body><el-select v-model"this.bindingProductPerson.recommendId" filterable plac…

分层解耦-IOCDI-IOC详解

目录 Bean的声明 注意 声明bean的时候&#xff0c;可以通过value属性指定bean的名字&#xff0c;如果没有指定&#xff0c;默认为类名首字母小写 使用以上四个注解都可以声明bean&#xff0c;但在SpringBoot集成Web开发中&#xff0c;声明控制器bean只能使用Controller或者R…

springboot时间管理系统

通过前面的功能分析可以将时间管理系统的功能分为管理员&#xff0c;用户两个部门&#xff0c;系统的主要功能包括首页&#xff0c;个人中心&#xff0c;系统公告管理&#xff0c;用户管理&#xff0c;时间分类管理&#xff0c;事件数据管理&#xff0c;目标数据管理&#xff0…

MySQL数据库第七课————数据的增删改查----------简单操作

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 目录 SQL增删改查 新增数据 删除数据 修改&#xff08;更新&#xff09;数据 查询数据 条件 ————————————————…

java ajax

1.ajax定义:异步刷新技术 2.ajax语法 3.ajax实战 在不需要点击刷新按钮时达到局部刷新显示&#xff0c;如下图所示 步骤一&#xff1a;创建工程/包/js 步骤二&#xff1a;数据库/表创建 步骤三&#xff1a;实体类 步骤四&#xff1a;UserDao package cn.kgc.dao;import cn…

linux_driver_day10

作业1 题目&#xff1a; 使用驱动代码实现如下要求 应用程序通过阻塞的io模型来读取number变量的值 number是内核驱动中的一个变量 number的值随着按键按下而改变&#xff08;按键中断&#xff09; 例如 numbero 按下按键 number1&#xff0c;再次按下按键 number0 在按下按…

pdf文件怎么删除密码?4个方法实用简单!

PDF文件作为一种常见的电子文档格式&#xff0c;广泛应用于各行各业。有时候&#xff0c;我们可能会遇到需要删除PDF文件密码的情况&#xff0c;无论是因为忘记密码、接收到加密的文件或是需要与他人共享文件等。为了帮助你轻松解决这一问题&#xff0c;本文将介绍四种简单实用…

【GitHub】腾讯这一款设计神器,开源了!PAG 动效组件

作为一个资深的互联网用户&#xff0c;我们经常会在各种产品上看到十分酷炫的动画效果。比如&#xff0c;短视频中有趣的虚拟场景、直播间粉丝打榜的 “火箭”、“轮船” 等等。 如今&#xff0c;优质的动效不仅可以使用户更容易地理解产品功能和操作方式&#xff0c;减少用户…

简单分享怎么做卖货小程序

微信卖货小程序是一种基于微信平台开发的小程序应用&#xff0c;它可以帮助用户在小程序中完成商品展示、下单购买、在线支付等操作。下面我们来介绍微信卖货小程序的好处和优点。 一、便捷快速 微信卖货小程序可以直接在微信App中使用&#xff0c;无需下载和安装&#xff0c;…

docker-compose安装gitlab

docker安装gitlab 1、创建docker-compose.yml文件 version: 3 services:gitlab:image: twang2218/gitlab-ce-zh:11.1.4restart: unless-stoppedhostname: gitlab.example.comenvironment:TZ: Asia/ShanghaiGITLAB_OMNIBUS_CONFIG: |external_url http://gitlab.example.comgi…

基于STM32LVGL8.2保姆级教程①软件资料准备

下载LVGL源码 LVGL资料包下载点击直达 点击master -》选择8.2分支,也就是倒数第二个 准备开发环境 这个软件玩STM32的有好吧 准备代码模板 需要准备一份能够成功点亮屏幕的keil工程 既然是保姆级教程 So我免费分享出来 私信或评论区获取 此屏幕驱动 就是图片里面的那块屏幕 具…

【安装】windows环境下的 JDK官网下载 安装配置 环境变量

目录 官网下载JDK8windows安装JDKJava环境配置JDK、JRE、JVMJava环境配置1.JAVA_HOME2.PATH3.CLASSPATH 测试环境变量运行命令行cmd查看jdk是否安装 官网下载JDK8 Oracle 甲骨文中国 | 云应用和云平台 选择产品/Java 下载JDK8 点击下载Java 选择Java archive 选择x64位安装包 …

读笛卡尔《方法论》有感

1.新书到手 今天又到手一本新书《谈谈方法》&#xff08;又称《方法论》&#xff09;&#xff0c;此书的作者是笛卡尔&#xff0c;本书介绍了笛卡尔是如何运用自己的理性在各门学科里寻求真理的方法。 勒内笛卡尔&#xff08;1596年3月31日-1650年2月11日&#xff09;&#xf…

MySQL每日一练:单表查询、连接查询

目录 1、创建两张表 student表&#xff1a; score表 &#xff1a; 2.为student表和score表增加记录 student表&#xff1a; score表&#xff1a; 3、按条件查找 1、创建两张表 student表&#xff1a; CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY…

dubbo核心知识

1、简介 Apache Dubbo (incubating) |ˈdʌbəʊ|是一款高性能、轻量级的开源Java RPC框架&#xff0c;它提供了三大核心能力&#xff1a;面向接口的远程方法调用&#xff0c;智能容错和负载均衡&#xff0c;以及服务自动注册和发现。 官网&#xff1a;http://dubbo.apache.or…

【导航驾驶引导(DG)模块功能】

什么是DG&#xff1f; 相信每个人都有迷路的经历&#xff0c;当你徘徊在十字路口时&#xff0c;你需要的可能是一张地图&#xff0c;当你在地图上找不到参照物的时候&#xff0c;你需要的是一个能告诉你正确道路的好心人&#xff0c;但对于一个Driver来说&#xff0c;在驾驶期间…

什么是超网,和子网有什么区别

将 IP 地址分组到子网和超网中是 IP 地址管理的一个基本方面。使网络管理员能够将其海量网络地址空间的不同 IP 组分解并聚合为可管理的实体&#xff0c;IP 子网划分和超网已成为有效网络地址空间管理的核心组件。 了解超网的细微差别以及超网和子网之间的主要区别对于设计和管…

离线安装Docker

查看可用的软件版本 关注回复&#xff1a;1001 可直接获取docker镜像 下载到指定文件夹 解压后复制到目标服务器之后进入文件夹安装 启动docker 测试docker是否安装成功

第二章:类与对象(下)

系列文章目录 文章目录 系列文章目录前言再谈构造函数构造函数体赋值初始化列表explicit 关键字隐式类型转换 static成员面试题 友元友元函数友元类 内部类匿名对象拷贝对象时的一些编译器优化再次理解类和对象总结 前言 类与对象是C非常重要的概念。 再谈构造函数 构造函数体…