文章目录

  • 什么是数据库?
  • 数据库管理的数据,保存在哪里?
    • 电脑的组成 :冯诺依曼体系
    • 冯诺依曼体系 由五个部分组成
      • 冯诺依曼体系结构图
        • CPU
        • 存储器
          • 内存 和 外存的区别
        • 输出 和 输入设备
      • 总结
        • 小拓展
  • 什么是 MySQL?
  • 细谈MySQL
  • 数据库的简单操作
    • 知识铺垫
    • 下面我们就来进行一个简单的操作
      • 简单操作 :通过 SQL 来操作 “数据库”
      • 第一个简单操作 :显示出当前服务器 上 都有哪些数据库(哪些数据集合)
      • 第二个简单操作:创建数据库
      • 小拓展:
        • 访问速度
        • 创建一个具有 SQL 语句关键字的 数据库
        • 如果我们想要在输入一遍上次的 SQL 语句
      • 使用错误的命令 create database s 来创建数据库(错误实例)
      • 创建一个 数据库 java,但是服务器中已经有 java 这个名字的数据库了。会怎么样?(错误示例)
      • 其他创建数据库的SQL语句的补充
      • 第三个简单操作:选中数据库/使用数据库
        • 引申出游戏公司一个常见的面试题
      • 第四个简单操作 - 删除数据库 - 重要!
  • 最后 ,我们来了解一下,创建的库,一般在数据库安装目录里。我们来看一下位置。
  • 下一篇博客[数据表简单操作 与 “增删查改的开头部分- 增”](https://blog.csdn.net/DarkAndGrey/article/details/123279057)

什么是数据库?

数据库就是一个软件,或者说是一类软件。不要想太多就跟qq、微信一样,都是一个软件。至于为什么后面说是一类软件,因为数据库软件的品种有很多。我们的MySQL 就是其中之一。

这一类软件功能就是“管理数据”,实现数据库软件的内部,会广泛的使用各种数据结构。
注意 学了数据结构,不是说我们会刷几道题了,不是这样的。
数据结构,这门知识就是在讨论具体如何组织和管理数据。
管理的目的:为了进行“增删查改”。
说白了,数据库就是基于数据结构,所实现的一个非常具体软件。


数据库管理的数据,保存在哪里?

一般情况下,是保存在硬盘上。
说到硬盘,我们就不得不说一下电脑的组成,


电脑的组成 :冯诺依曼体系

说到冯诺依曼体系,就不得不提到一个人 现代计算机之父 就是 约翰.冯.诺依曼

冯诺依曼体系 由五个部分组成

1、输入设备,2、输出设备,3、外存储器,4、内存储器,5、运算器和控制器(两者组成的,也就是所谓的CPU)

冯诺依曼体系结构图


CPU

CPU 又称 中央处理器,计算机最核心的组件! 是计算机的大脑。
是目前人类科学技术的巅峰!能CPU的技术含量相提并论的,只有氢弹。


存储器

CPU 是用来运算数据,但是计算机除了运算,还能存储数据。
存储数据 就是借助 存储器这样的设备。
而存储器又分两个大类: 内存和外存。

外存的种类还有很多!比如:软盘,磁盘,光盘,硬盘,flash(U盘)。其中我们生活中见到的最多的是 硬盘 和 U 盘。


内存 和 外存的区别

1、内存的存储空间较小(电脑常见内存大小:8G,16G),外存的存储空间很大(512G,1T)
2、内存的访问速度块,外存的访问速度慢。(内存的访问速度大概比外存的访问速度,快 3 ~ 4个数量级,也就是几千倍 ~上万倍)
【这里的外存,特指的是机械硬盘,外存的访问速度受限于机械硬盘的物理结构,机械硬盘的存储速度,已经快10年没有发展了。懂电脑的朋友,知道还有一个SSD固态硬盘。访问速度很快,比机械硬盘快很多,最好的固态硬盘,快赶上最垃圾的内存了,唯一的缺点就是贵】
3、内存成本太高,外存的成本太低。
4、内存中数据,断电后消失,外存中的数据,断电后还在。


输出 和 输入设备

这两个设备 就是 我们用户 和 计算机之间进行一个交互的设备。
输入设备:键盘、鼠标、麦克风等等…
输出设备:显示器,音箱等等…


总结

当前世界上绝大部分的计算机,99%以上 都是上述的这五个部分所组成的。
而数据库管理的数据,就是保存在硬盘上。数据库就是一种“持久化存储”数据的方式
相比我们平常写代码,数据基本都是在内存中的实现和保存的。(当我们定义一个变量,其实就是在向操作系统进行申请内存)


小拓展

也有少部分数据库,是把数据存储在内存中的。比如 Redus,Tair等等…
但这些都不是目前主流的数据库。
我们平常用的最多还是 将数据存储在外存的数据库。


什么是 MySQL?

MySQL 就是 一个 具体的数据库软件之一,也是我这个数据库主题文章的中心点。
有的朋友可能学的或者用的不是MySQL,而是 SQLServer。它也是一个数据库软件。
以后在实际工作中,数据库用的最多的还是 MySQL。
不是说SQLServer 不好,而是它被自家公司微软的营销策略给坑了,最初的时候,要求必须是 windows 系统才能使用。
但是,大部分公司的服务器系统都是Linux系统。根本不支持SQLServer,于是,市场被其他的软件所抢占。导致它错过了发展起来的机会。虽然后面改回来了,但是并没有多大作用
另外,其实各个数据库之间,差别大师很大,微乎及微。会MySQL,那么操作其他的数据库,也不是问题。
至于还有的朋友可能说:我们学的是 Oracle。
Oracle 是数据库中,最顶尖的存在!
但其实在很多公司里,Oracle 几乎不会用到。原因就是贵!但是 MySQL 是免费的
有的人朋友可能会问:how much?一个月大概
除了不缺钱的那种,比如中国人民银行:它的数据特别重要,就需要用到 Oracle来管理数据。
而且,一旦数据出现了问题,随时可以找 Oracle的技术支持上门服务。还有 ! 如果是 Oracle 软件 的 问题,人家会做出相应的赔偿。
总得来说 我们的重点在于MySQl。【数据库三大巨头:Oracle、MySQL、SQLServer】


细谈MySQL

MySQL 这个数据库,是一个“客户端 - 服务器”结构的程序。(涉及到网络编程)
所谓的“客户端 - 服务器”结构:网络通信的时候,通信双方,分别起的名字。
我们通常将主动发起请求的一方称为“ 客户端”,被动接受请求的一方称为 “服务器”。
对于 MySQL ,你安装好了 MySQL,相当于 安装了 客户端 和 服务器。
客户端 和 服务器之间是通过“网络”来通信的。


举个例子
假设:我们现在要下馆子,我们(主动的)选择某一个餐馆(被动的)。此时的我们就是一个客户端(拥有主动权),而餐馆不知道到我们是否会选择它,什么时候来。一直处于被动的情况,简单来说被动的一方就是服务器。
当我们走进餐馆的时候,说先吃什么什么。我们一般都会加上一个句老板有这个菜吗?这就是一个请求,而老板呢,他就会说有,请稍等,然后他把菜端上来了,这盘菜就是 响应。
所以,客户端给服务器发送的数据,称为 “请求”。
服务器给客户端返回的数据,称为“响应”。

另外,需要注意的是:不是说 客户端 和 服务器 必须 安装一个 主机上。
我可是 2个主机,一个装 客户端,一个装服务器。

但是,最常见的情况:拿前面举的例子来说:这个餐馆不可能只招呼我一个人,其他人也会来着消费。
那么,我想表达的意思就是:一个服务器 与 多个 客户端 进行交互。

那么引出一个问题:MySQL 的 客户端 和 服务器 谁更重要呢?
很显然 服务器 更重要。服务器就是我们的数据库的本体(服务器在MySQL 当中的角色就是用来保存和管理数据的一端,而客户端是不持有数据的,它要想 获取/修改 数据,只能通过网络与服务器进行交互,依次来达到 获取/修改 数据的目的),一个客户端出了问题,只有服务器没问题,那么,其它的客户端的运行也就没有问题。只需要处理 出现问题的 客户端就行了。
可一旦 是 服务器出了问题,所有的客户端都要遭殃!!!


数据库的简单操作

知识铺垫

在进行简单操作之前,装了MySQL数据库的朋友,跟着我的来看 MySQL 的 服务器在哪。 (没装的朋友去官网下载,博主我的是5.7版本的,建议你们下载 5 这个大版本,最新 8 版本对新手不太友好。至于安装视频上b站 搜 很简单的)

为什么我要先说这个,是因为,接下来的操作,需要服务器处于工作状态。
说了这个,至少能确保你们的MySQL 是 正常工作的。

下面我们来看客户端的在哪里。

有的朋友会说:我可以修改 mysql的服务器 配置文件,跳过权限表登录。但是,这么做很麻烦。
你还不重装一下,设置一个简单到不行的密码来得舒服。反正我们的数据不值钱。。【穷 == 安全,除了我们的腰子】

此时,进行前面的一番操作,我们此时应该都会打开MySQL 了

此时,我们的客户端已经连上了服务器,接下来,我们进行的任何操作,本质上都是客户端给服务器发送了网络请求,服务器在做出具体的响应。


下面我们就来进行一个简单的操作

连接上之后,我们就可以通过这个数据库的客户端操作服务器了。
当前我们都是通过命令行的方式进行操作的。又称 SQL 语句。
SQL 语句 虽然是一个单独的编程语言,实际上这个东西并不难,只要多操作一下,熟练就好了。


简单操作 :通过 SQL 来操作 “数据库”

大家需要注意一点:数据库这个词,具有很多的含义。具体想知道操作的是什么"数据库",需要结合上下文。
我们这里的数据库 指的是 一个 MySQL服务器上,所管理的一个独立的数据集合。

了解这个概念后,我们就可以开始操作了。


第一个简单操作 :显示出当前服务器 上 都有哪些数据库(哪些数据集合)

显示数据集合命令: show databases;

有的朋友可能不一样,但这不是问题。只要显示这么一个表就行了。
当前的表的意思:当前MySQL 的 服务器上有哪些数据集合。
有些是我们自己创建的,有些是系统自带的。这张图就是系统自带的,我还没有自己创建数据库。
注意!服务器自带的数据库不能动!!!! 容易狗带。
另外,再说一点:命令行下输入的SQL语句,基本上都是以分号结尾,且不区分大小写。
SQL 语句 中的 单词 基本上都是使用空格来分割的。


第二个简单操作:创建数据库

创建数据库命令: create database 数据库名字;【注意这里database 是单数的,没有加s】
大家在敲的时候,一定要注意单词拼写!它不在 Java 在 idea 当中拼写 方法名 和 类名 会有提示的。在数据库中,输入错误的命令是不会执行命令,也没有提示你语句该怎么写。
给数据库起的名字,在不包含SQL语句中的 关键字的情况下,随便取名。
如果实在要使用关键字来作为名字,需要 用 反引号 `` 引起来。
【就是在 ESC 键下面,1 键的左边,tab键的上面,输入法调整为英文,按两下就是了 】
【SQL 语句的关键字,其实就命令语句的成员,比如 show ,database这些。。】
【注意!关于符号的规则,还是跟我们敲代码一样,必须是 英文符号】
小技巧:可以在输入法设置中,勾选下面图中选项,能让我们在敲中文的时候,符号还是英文的。(大部分输入法都有这个功能,可能名字不一样。自己多摸索)


我们来 show databases; 一下、

事实证明,我们的 java 数据库 就创建成功了。


小拓展:


访问速度

访问网络 : s(秒) ~ ms(毫秒)
访问磁盘:ms(毫秒) ~ us(微秒)
访问内存:us(微秒) - ns(纳秒)
操作CPU:ps(皮秒)
因为数据库要操作磁盘数据,所以它的时间与 访问磁盘的速度差不多。
所以 数据库往往是比较慢的一个环节,未来涉及到一下“系统优化”这样的场景。数据库很容易就会成为“性能瓶颈”【就是性能限制】。


时间进制: 1s == 1000ms
1ms == 1000us
1us == 1000ns
1ns == 1000 ps
不要短路了,见什么都是1024.。。。。


创建一个具有 SQL 语句关键字的 数据库

正确写法:用 `` 将数据库名字引起来。


如果我们想要在输入一遍上次的 SQL 语句

就是直接按 上下方向键,就可以翻找以前输入过的指令。


使用错误的命令 create database s 来创建数据库(错误实例)


创建一个 数据库 java,但是服务器中已经有 java 这个名字的数据库了。会怎么样?(错误示例)


其他创建数据库的SQL语句的补充

1、如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建.
命令:create database if not exists db_test2;

2、如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建.
命令:create database if not exists db_test character set utf8mb4;
MySQL的 utf8 编码 不是真正的 utf8,没有包含某些复杂的中文字符。MySQL真正的utf8 是使用 utf8mb4,建议大家都使用 utf8mb4.

什么是字符集?简单来说:相比大家都知道 在编程中,我们代码 所有的字符和符号,可用ASCII码来表示,也就是说用数字来表示。
而 utf8mb4 和 ASCII码差不多,只是 utf8mb4 能表示的数据更多。

常用的字符集版本:1、GBK ,2、utf - 8(utf - 8 是编程中用的最多的汉字编码方式)
【 utf8mb4 和 utf-8 差不多,utf8mb4 就是多了一些表情字符 比如 emoji】


第三个简单操作:选中数据库/使用数据库

在针对数据库进行进一步操作何倩,需要先选中数据库,再进行操作。

选中数据库命令:use 数据库名;

这个选中操作,就类似于:大家玩RTS 类游戏,比如:红警,星际争霸,魔兽争霸3,帝国时代。
玩家需要控制很多单位。那么怎么控制这些单位,需要先选中单位,再给予指令操作。

引申出游戏公司一个常见的面试题

让你说出 RTS、FPS、MOBA、RPG等等… 这些单词的含义。
RTS:即时战略类游戏:红警,星际争霸,魔兽争霸3,帝国时代。
FPS:第一人称射击类游戏:CS CF
MOBA:刀塔类游戏:LOL 、刀塔二
RPG:角色扮演类游戏
特殊:绝地求生 的 游戏类型:“吃鸡类游戏”
很多游戏公司就会问到这些。


第四个简单操作 - 删除数据库 - 重要!

删除数据库命令: drop database 数据库名;
将指定的数据库删除,但是这个操作非常危险!!!!!
一旦执行成功后,此时数据大概率是恢复不过来了。直接GG。
以后在公司里,切勿操作 drop database 命令。
名言:“从删库,到跑路。”


最后 ,我们来了解一下,创建的库,一般在数据库安装目录里。我们来看一下位置。


下一篇博客数据表简单操作 与 “增删查改的开头部分- 增”

MySQL的 初步认识 - 细节狂魔相关推荐

  1. MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔

    文章目录 前文知识点回顾   SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...

  2. 测开 - 进阶篇 - 细节狂魔

    文章目录 回顾上篇博文[测试 - 用例篇](https://blog.csdn.net/DarkAndGrey/article/details/125349067?spm=1001.2014.3001 ...

  3. MySQL架构初步了解

    MySQL架构初步了解 ​ 最近一段时间一直没有更新博客,虽然一直在学习新东西,但是没有精力和时间(借口)将学习到的东西整理成博客.见到朋友圈一位大佬一直在不间断的更新博客,还是挺佩服的,只有自己尝试 ...

  4. MySQL - 对数据表进行“增删查改”的基础操作 - 细节狂魔

    文章目录 前文知识点回顾 正文 :对数据表进行"增删查改"操作 新增操作 - insert 关键字 查找语句(基础操作) - select关键字 - 重点!!!!!!!! 1.最基 ...

  5. 前端三剑客之 HTML - JavaEE初阶 - 细节狂魔

    文章目录 前言 后端 && 前端的部分历史 - java 关于网站搭建 正文开始! HTML 怎么编写一个HTML的代码? 小拓展: 快速编写 HTML 代码的小技巧 浏览器的开发者工 ...

  6. 前端三剑客之 CSS - JavaEE初阶 - 细节狂魔

    文章目录 前言 CSS CSS 的引入方式 CSS 的代码风格 样式格式 样式大小写 选择器 选择器的分类 1.基础选择器 标签选择器 类选择器 id 选择器 通配符选择器 提示 复合选择器 后代选择 ...

  7. JavaEE进阶 - Spring事务和事务传播机制 - 细节狂魔

    文章目录 1.为什么需要事务?(回顾) 2.Spring 中事务的实现 MySQL 中的事务使用(回顾) 1.⼿动操作事务(编程式事务) 2. 声明式事务(利用注解自动开启和提交事务) @Transa ...

  8. 网络初识 - JavaEE初级 - 细节狂魔

    文章目录 前言 网络发展史 - 互联网是怎么来的? 局域网 / 广域网 IP地址 和 端口号 IP地址 端口号 认识协议 - 重点 协议分层 网络分层 网络设备所对应的分层 网络分层中的一组重要概念: ...

  9. 关于mysql的初步学习 (五)

    今天就是随意学习了下 关于mysql的一些基本函数的基本操作: 1. 这是最开始的表数据: 2.新增字段salary 想给他随机赋值 使用到的 rand()和round()进行组合实现: 其中关于随机 ...

  10. MySQL调优(四):MySQL索引优化实现细节

    查询优化 在编写快速的查询之前,需要清楚一点,真正重要的是响应时间,而且要知道在整个SQL语句的执行过程中每个步骤都花费了多长时间,要知道哪些步骤是拖垮执行效率的关键步骤,想要做到这点,必须要知道查询 ...

最新文章

  1. undefined reference to 'pthread_create'问题解决
  2. Leetcode1700. 无法吃午餐的学生数量[C++题解]:模拟题简单,用queue
  3. PP模块快速入门之功能简介
  4. linux shell 域名 ip,Shell脚本一种检查Linux中域名和IP地址所有权信息、检查多个域名的到期日期工具...
  5. java 中的 Scanner
  6. 【系统设计】架构设计说明书
  7. 2017.8.24 快速傅里叶 思考记录
  8. BiquadFilterNode
  9. [视频]Silverlight for Windows Phone 7基本开发过程以及Push Button控件的使用
  10. 函数用法r语言_R语言中的apply函数族
  11. 有关使用seajs和template模板的总结
  12. 浅析全息技术通信方案和产业现状
  13. java获取某年度有多少周_java获取一年共有多少周
  14. 税务信息化与计算机技术应用开发,税务信息化与计算机技术应用开发岗位辞职报告范文...
  15. IntelliJ Idea快捷键(排版清晰!!持续更新!!非常详细)
  16. 【鸿蒙OS开发入门】13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解
  17. 信息技术应用现状的趋势
  18. Single image dehazing (Fattal)
  19. Android applink 踩坑指南
  20. 1255B. Fridge Lockers Codeforce题解

热门文章

  1. VIM复制粘贴 的快捷键是什么
  2. 海尔计算机无法装win7系统,海尔Haier电脑预装win8换win7系统BIOS设置及安装教程
  3. 20210327-第一次java笔记
  4. 教我简单学计算机初步,零基础教你用电脑:常用简单操作介绍
  5. 学生成绩管理管理系统
  6. 信息安全工程师是什么?
  7. java xms xmn_java堆内存JVM属性调优总结(-Xms -Xmx -Xmn -Xss)
  8. python中output使用_如何在Python中使用subprocess.check_output()?
  9. uboot引导kernel - 4 -gd bd详解
  10. 『拓扑排序』「NOI2010」航空管制