MySQLの予備的理解-詳細マニアック

記事ディレクトリ

データベースとは何ですか?

データベースは、ソフトウェアの一部、またはソフトウェアのクラスです。あまり考えないでください。QQやWeChatと同じように、これらはすべてソフトウェアです。なぜデータベースソフトウェアの種類が多いので、後でソフトウェアの一種と言われるのか。私たちのMySQLはその1つです。

この種のソフトウェア機能は「データ管理」であり、内部データベースソフトウェアを実装し、さまざまなデータ構造を幅広く利用しています。
データ構造を学習することは、いくつかの質問をブラッシングすることを意味するのではなく、そうではないことに注意してください。
データ構造、この知識は、データを整理および管理する方法について説明するためのものです。
管理の目的:「追加、削除、検索、変更」を行うため。
率直に言って、データベースはデータ構造に基づいて実装された非常に特殊なソフトウェアです。


データベースで管理されているデータはどこに保存されていますか?

通常、ハードディスクに保存されます。
ハードドライブに関しては、コンピューターの構成について話し合う必要があります。


コンピューターのコンポーネント:フォンノイマンシステム

フォンノイマンシステムに関して言えば、現代ます。
ここに画像の説明を挿入

フォンノイマンシステムは5つの部分で構成されています

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

フォンノイマンアーキテクチャ図

ここに画像の説明を挿入


CPU

中央処理装置としても知られるCPUは、コンピューターの最もコアなコンポーネントです。それはコンピューターの頭脳です。
それは人間の科学技術の頂点です!CPUの技術的内容を比較できるのは水素爆弾だけです。


メモリー

CPUはデータの操作に使用されますが、操作に加えて、コンピューターはデータを保存することもできます。
データの保存は、メモリなどのデバイスを使用して行われます。
メモリは、内部メモリと外部メモリの2つのカテゴリに分けられます。
ここに画像の説明を挿入ここに画像の説明を挿入
外部ストレージにはもっと多くの種類があります!例:フロッピーディスク、磁気ディスク、CD-ROM、ハードディスク、フラッシュ(Uディスク)。その中で、私たちの生活の中で最も一般的なものは、ハードディスクとUディスクです。


内部メモリと外部メモリの違い

1.メモリストレージスペースが小さく(一般的なコンピュータのメモリサイズ:8G、16G)、外部メモリストレージスペースが大きい(512G、1T)
。2.メモリアクセス速度がブロックで、外部メモリアクセス速度が遅い。(メモリのアクセス速度は、外部メモリのアクセス速度よりも約3〜4桁速く、つまり、数千倍から数万倍です)
[ここでの外部メモリとは、特にメカニカルハードディスクを指します。外部メモリのアクセス速度は制限されています機械式ハードディスクの物理的構造により、機械式ハードディスクのストレージ速度は10年近く開発されていません。コンピューターを理解している友人は、SSDソリッドステートドライブもあることを知っています。アクセス速度は非常に速く、機械式ハードディスクよりもはるかに高速です。最高のソリッドステートハードディスクは、ほとんどのガベージメモリに追いつくことです。唯一の欠点は、高価なことです。]
3.メモリのコストが高すぎる、および外部メモリのコストが低すぎます。
4.電源を切るとメモリー内のデータは消え、電源を切ると外部メモリーのデータは残ります。


出力および入力デバイス

これらの2つのデバイスは、ユーザーとコンピューターの間で相互作用するデバイスです。
入力デバイス:キーボード、マウス、マイクなど...
出力デバイス:モニター、スピーカーなど...


要約する

現在、世界のほとんどのコンピューターは、99%以上が上記の5つの部分で構成されています。
データベース管理データはハードディスクに保存されます。データベースは、データを「永続的に保存」する方法です。
通常の記述コードと比較すると、データは基本的に実装され、メモリに保存されます。(変数を定義するとき、実際にはオペレーティングシステムにメモリを要求しています)


小さな拡張

データをメモリに保存するデータベースも少数あります。Redus、Tairなど...
しかし、これらは現在の主流のデータベースではありません。
最も一般的に使用されるデータベースは、データを外部メモリに保存することです。


MySQLとは何ですか?

MySQLは特定のデータベースソフトウェアの1つであり、このデータベーストピックに関する私の記事の中心でもあります。
一部の友人は、MySQLではなくSQLServerを学習または使用する場合があります。データベースソフトウェアでもあります。
将来、最も使用されるデータベースはMySQLです。
SQLServerが良くないというわけではありませんが、自社のMicrosoftのマーケティング戦略に裏打ちされていたので、当初はWindowsシステムである必要がありました。
ただし、同社のサーバーシステムのほとんどはLinuxシステムです。SQLServerはまったくサポートされていないため、市場は他のソフトウェアに奪われています。開発の機会を逃してしまいました。後で変更されましたが、あまり効果はありませんでした。
また、実際には、さまざまなデータベース間の違いは非常に大きく、非常に小さいものです。MySQLを知っていれば、他のデータベースを操作することは問題ではありません。
言うかもしれない何人かの友人に関して:私達はOracleを学んでいます。
Oracleはデータベースのトップの存在です!
しかし実際、多くの企業では、Oracleはほとんど使用されていません。その理由はそれが高いからです!しかし、MySQLは無料です!
何人かの友人は尋ねるかもしれません:いくらですか?
中国人民銀行など、資金が不足していないものを除いて約1か月:そのデータは特に重要であり、データの管理にはOracleを使用する必要があります。
さらに、データに問題が発生すると、オラクルのオンサイトサービスに関するテクニカルサポートをいつでも見つけることができます。と!Oracleソフトウェアに問題がある場合は、対応する補償を行います。
一般的に、私たちの焦点はMySQlにあります。[データベースの3つの巨人: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:リアルタイム戦略ゲーム:Red Alert、StarCraft、Warcraft 3、AgeofEmpires。
FPS:一人称シューティングゲーム:CS CF
MOBA:Dotaゲーム:LOL、Dota 2
RPG:ロールプレイングゲーム
スペシャル:PUBGゲームタイプ:「鶏肉を食べるゲーム」
多くのゲーム会社がこれらを尋ねます。


4番目の簡単なアクション-データベースの削除-重要!

データベースの削除コマンド:データベースデータベース名を
削除します;指定されたデータベースを削除しますが、この操作は非常に危険です!
実行が成功すると、現時点ではデータを回復できない可能性が高くなります。ダイレクトGG。
今後、社内でdropdatabaseコマンドを操作しないでください。
有名なことわざ:「図書館の削除から逃げるまで」。
ここに画像の説明を挿入


最後に、作成されたライブラリを見てみましょう。これらは通常、データベースのインストールディレクトリにあります。場所を見てみましょう。

ここに画像の説明を挿入


次の記事ブログデータテーブルの簡単な操作と「追加、削除、変更の始まり-追加」

おすすめ

転載: blog.csdn.net/DarkAndGrey/article/details/123239850