本节内容大纲
前一段时间 ,我们完成了 Java 集合与数据结构的学习 , 之后我们将进入 Mysql 数据库的课程中。
首先我们要学习的是数据库的知识,那么数据库 到底是什么呢?
同时我们在刚开始学习 数据库 的时候,也可能存在着一个困惑: 就是我们所学的数据结构 与 数据库有什么区别呢?
下面我们将继续解释这两个问题.
下面是从百度百科摘下来的定义:
数据库,从名字上就可以知道,这是一个存储着大量数据的仓库,在百度上也写为了 “ 电子化的文件柜 ”,非常的形象。
数据库不仅是一门学科,同时也是一类软件,具体是把大量的数据进行存储,在存储的过程中,往往大量依赖了数据结构这门学科。
那么我们所学的数据结构:
数据结构是一门学科,用来研究如何组织大量的数据.
我们学过的 顺序表、链表、栈、队列、二叉树、堆、哈希表、排序等数据结构的知识,主要是用来组织数据,为了更加高效的进行增删改查,主要把数据存储在’内存‘里面.
而数据库也是要对 数据库进行增删改查,主要把数据存储在’磁盘‘里面。
数据库软件中都有哪些典型代表呢?
Mysql 我们之后学习的重点主要是Mysql数据库的使用
SQLServer:微软搞得一个数据库. 我们在学校里学习的大概率是这种数据库
Oracle:数据库行业里最牛批的大佬~
SQLite: 轻量级的数据库,应用最广泛(安卓系统内置的数据库)
还有其他的 HBase Mongodb Redis…等其他的数据库软件
我们在之后的学习里主要是熟悉 Mysql 数据库的各种使用及练习
有同学就问了: 为什么 我们不用SQLServer 进行练习呢?
首先 公司中很少用到 SQLServer,实际上使用SQLServer 的企业不是没有,但是较为少一些,为什么公司不选择这种软件呢?是因为不好吗?其实不是,SQLServer 也是数据库中非常优秀、非常好的一个软件。
这是与前些年微软的一个营销策略是有关的,微软把 SQLServer 和 Windows Server 绑定在一起销售,就是说 我们要想使用 SQL Server就必须 使用Windows Server的系统,这就有一个问题了,我们企业中常用的系统是Linux,很多软件也是适用于Linux,企业不会为了使用这个数据库,而更换服务器系统。
又有同学问了,在之前我们介绍Oracle 的时候说他很厉害,问什么不讲它呢?
Oracle 的数据库确实厉害,可以说的上是业界第一,它称第二,没人敢称第一,但是存在一个问题,Oracle 这个数据库 是收费使用的,我们作为一个普通的学生,为了练习数据库去花钱肯定是不值当的,同时很多企业也不愿意花这个钱,
相比之下,Mysql 开源免费,很多企业使用的数据库为Mysql,但实际上还是有不少企业在使用 Oracle,比如银行这类组织,为了保证数据的安全性/可靠性,他们使用的是Oracle .
阿里,腾讯、大型互联网企业这样的公司使用Oracle吗?
以前是使用的,但是现在逐渐不使用了,到了 2021 年使用 Oracle 的团队会比较少了~ 主要还是 Oracle 的成本有点高~高不仅体现在 软件本身的费用, Oracle 发挥十成功力,还需要搭配IBM 小型机的使用。
补充:小型机是高于微机(家里的电脑)次于超算的 机器,费用也是不菲.
关于Mysql 都要学习哪些内容呢?
1.SQL 基本语句
2.JDBC 编程
3.数据库内部原理 —— 主要面向 面试题
我们有三种方式可以安装Mysql
最简单的方式就是 第一种,在官网下载 安装包 进行安装,一路next ,可能有一些东西需要选择,大家稍微耐心阅读一下描述,大概就知道怎么选择了(如果实在看不懂,没关系,可以选上试试,当前学习阶段,是可以大胆尝试的,不要害怕整错了~整错了也是好事,才会印象更加深刻,大不了,重装系统后又是一条好汉!)然后设置自己的密码,Finish完成安装.
注意:
有的同学反馈, 一路 next 大法有的时候装不上 mysql 服务器了. 如果出现这种情况的同学(安装之后在服务里找不到 mysql)就再次双击安装包, 手动添加一下 MySQL Server.
第二种比第一种要复杂一些,如果第一种方式安装出现一些问题,我们可以使用第二种方法.
对于刚接触 Mysql 的小白来说千万不要使用第三种方式进行安装,虽然网上有很多人通过这种方式安装,但是这种最麻烦,最容易出现问题.
注意: 第一种方式安装 Mysql 不需要配置环境变量 , 2021 年,大部分东西不需要我们手动配置环境变量.
安装完成后就可以启动 mysql 的客户端了.
在这里我们说一下 客户端 和 服务器的概念吧,这些都是网络编程的基本概念.
客户端: 主动发起请求的一方
服务器: 被动接受请求的一方
在电脑上我们安装了一个服务器----Mysql服务器,我们需要先把Mysql 服务器启动,然后我再启动一个Mysql 客户端,Mysql 客户端 通过 网络 与Mysql 服务器 进行通信,在客户端发送一个网络请求, 服务器就给客户端一个 网络响应. 这是较为简单的情况,也就是说 客户端和服务器在同一台主机上.
但我们知道两台主机也可以通过网络进行通信,网络通信其实可以跨主机.
下面就是 客户端 和服务器 不在一台主机上的情况.
我们看到这里知道,Mysql 有客户端也有服务器,但谁才是 数据库的主体呢? 其实是 服务器!! 而 客户端呢 只是用来与用户进行交互的界面而已~,所以本体的真正意思是,真正用来存储和管理信息的部分.
Mysql 的服务器 可以同时给很多的客户端提供服务.如下图:这也是我们在工作中最常见到的情况.
同时我们也应该牢记一点:
客户端能够工作的前提,是网络通畅,能够访问到 服务器
如果服务器没有启动,光有客户端,是没有什么用的呃
当然了,我们自己在学习Mysql 知识,就是符合第一种的情况,客户端和服务器都在一台主机上。但是我们得注意:服务器是不是已经启动了…
那我们怎么查看服务器是否启动呢?
好了,到这里我们已经让大家基本了解了一下 Mysql 的基本结构,下面我们来看 Mysql 中的一些详细的操作.
SQL 是一种编程语言
各种不同的数据库,都支持 Sql 这个语言.(不同的 数据库软件,支持的SQL的语法 可能细节上存在差别)
show databases;
如果我们 在输入这个命令是单词之间没有空格,我们看一下结果:
注意:
1.一定不能忘记加分号,分号说明这条语句结束
2. 每个单词之间记得空格
3. 这里展示所有的数据库,base后面 记得加s
4. ctrl + c 可以终止当前输入
5. mysql 中 不区分大小写
create database [数据库名];
我们来进行 这个 创建数据库的操作.
我们创建了一个 名叫 Java100 的数据库,输入命令创建成功,在成功后会有一条具体的提示.
Query OK,这是我们在创建了一个数据库,然后在服务器中查询成功.
1 row affected (0.01 sec)
这是mysql 中有一个专门的表,来记录新创建的数据库信息,建了一个新数据库相当于在这个表中插入了一条记录.反应时间: 0.01s
其实在我们敲下这个 sql 命令的时候。 服务器和客户端就发生了一次 数据的交互.在这里我们可以具体的表示一下.
我们可以看到在创建了 java100 这个数据库之后,我们再次查看数据库,此时java100 已经在列表当中.
好了,讲到这里,我们来具体看一下 创建数据库的语法规则
我们在这里先问一个问题:计算机中,字母是如何表示的?
计算机里只能存储和表示二进制的数字~~
我们可以使用—>ASCII码表~
计算机存储a b c这样的字符,本质上存储的是97 98 99这样的二进制的数据~
注意!! ASCII码表,千万不要背!!!学习编程.很多东西,能不背就不背~背就容易背错.
汉字也是需要在计算机中存储和表示的~~
用一张更大的表来表示数字和汉字之间的对应关系就行了~~
用哪个数字表示哪个汉字?没有一个统一的标准.
有好多套这样的表来表示汉字.每一套这样的表格, 称为是一种|“字符集” / “字符编码”
常用的汉字码表,主要有两套~~
1.GBK:在中国大陆主要使用(汉字数量比较少,有些繁体字就表示不了)
2.unicode ( utf-8 ) :表示的汉字种类很多,还能表示各种类型的语言文字,包括不限于,满文,蒙文,韩文,日文,藏文,阿拉伯文,西班牙文.
不一定非得使用create database这样的语句来进行指定字符集(每次都得指定,比较麻烦)
一劳永逸的办法,是直接修改mysql的配置文件,把字符集就固定设成utf-8就可以了[推荐做法]
数据库还有删除数据库,选中数据库等操作,我们会在下一节中集中介绍.
好了今天的知识就分享到这里,希望大家多多练习,熟练掌握,感谢大家的欣赏与关注!!
下一篇~ Mysql 数据库(二)—— 数据库基础 敬请期待~~
谢谢欣赏!