从零开始学MySQL(三)
经过上两节的洗礼,我们能够连接上服务器,并成功地进入与mysql交互的会话中了。那么现在就可以发起SQL语句,让服务器来执行它了!这听起来很酷吧?接下来,我们先从MySQL的体系以及组成方面谈起,在学习点语法方面的知识。
题外话:建议小伙伴们不要跳过这节。因为在学习语法前呢,明确MySQL的这些相关术语是大有裨益的,这将能起到自然过渡的作用(毕竟,从无到有总是一个循序渐进的过程)。
本文概览:
(一)MySQL的体系结构术语
(二)MySQL数据库的定位和基础知识
(一)MySQL的体系结构术语
① 当我们在使用MySQL时,会用到“至少”两个程序
这是因为,MySQL采用的是“客户端/服务器”体系结构(这里隐式指出,从客户端连接到服务器的首要条件是网络)。还记得我们前面使用什么命令来安装mysql的吗?在那时就已经埋下伏笔了:
sudo apt-get install -y mysql-server mysql-client
在这其中,有一个程序为MySQL服务器,另外一个程序为MySQL客户端。这里介绍一下它们的用途。
① MySQL服务器(mysql-server):我们通常称它为mysqld。mysqld运行在存放数据库文件的那台machine上;它主要负责监听网络上的客户端请求,根据这些请求去访问数据库文件里面的内容,然后再将获取的内容提供给客户端。 ② MySQL客户端(mysql-client):我们通常称它为mysql。mysql可以运行在服务器上,也可以是任意一台将连接参数设为该服务器IP的machine;它主要负责连接到服务器,并向服务器发起查询,以获取查询结果。
在这里需要明确一点,即mysql想要从数据库中拿到什么信息,需要让mysqld去和数据库沟通,而不是越俎代庖。其实从本质上讲,数据库其实是本地文件,而mysqld和mysql是程序,mysqld是负责从本地文件中读取或存入数据而已。
② 别有用途的其他客户端程序
犀利的小伙伴大都应该注意到了,前面用了“至少”一词。下面就简述这两个主要用于管理的客户端程序——mysqldump和mysqladmin。
① mysqldump:主要用来把表的内容导出到文件里。为什么要导出?备份需要或有意将查询结果另存于他处。 ② mysqladmin:主要用来检查数据库服务器的工作状态,以及执行一些数据库管理相关的任务,如通知服务器管关闭。
(二)MySQL数据库的定位和基础知识
在创建数据库和表之前,先了解一下有关数据库的一些术语十分必要。提及数据库,我们就要来确定一下MySQL的立场了。当前的数据库有几大分类,主要分为关系型数据库(RDBMS)和非关系型数据库(NoSQL)。
① 定位
MySQL被划分为RDBMS,字面中的含义即代表了它的用途。这里将它拆分为三部分,即RDBMS → R、DB、MS来解读一下。
① DB(DataBase):说白了,“数据库”等同于我们现实中的“仓库”,但它不是用来囤货的,而是用来 “屯数据屯信息” 的。 ② MS(Management System):什么是管理?无非就是对记录进行“检索、插入、修改、删除”。因此,管理系统是建立在mysql的一个上层应用。通过它,我们可以对多个数据库做到心中有数。 ③ R(Relational):一字道出MySQL数据库的性质。什么是关系?关系是通过将两个以上的表中的共同元素,将这些表 的信息紧密联系起来,形成一个更大的整体(表)。这样子就将散落在各处的数据规整为一个更大的集合,有点解决了“信息孤岛”的意味。虽然说在设计数据库时,这些“信息孤岛”是我们有意为之的,其目的是为了方便日后提高的一些操作性能。
② 基础知识
有人的地方就有江湖,有“库”的地方就有“表”。这里有一条潜在的关系链:数据库(database)>表(table)>列(column)。其中 > 符号表示包含之意。
① 数据库:存储分类数据的仓库。为什么说分类呢?因为数据库中的表都是基于某一个应用的。 ② 表:数据库里的数据集。什么是数据集,基于某个特定目的而搜寻的数据集合。 ③ 列:数据集中某方面单一信息。数据集(表)是先由一个或多个列构成的,只有存储了数据的时候才有行这一说法。每个行均包含了表中所有列的信息,因此又可称为一个“记录”。
从上面可了解到,数据库和表属于容器层面的,列属于细节层面的。但在使用MySQL的时候,我们更多的则是对记录进行处理,比如检索、修改等等。
到此,这一节就结束了。下节我们开始学习语法相关知识!再会。
从零开始学MySQL(三)的更多相关文章
- 从零开始学安全(三十五)●mysql 盲注手工自定义python脚本
import requests import string #mysql 手动注入 通用脚本 适用盲注 可以跟具自己的需求更改 def home(): url="url" list ...
- 从零开始学MySQL(二)
鉴于上节篇幅以安装为主,因此对于调用mysql所需要使用的“命令”只是略微提及.随之而来就会带给读者诸多不解了,因为你会思考,这串长长的字符到底有什么特殊的含义呢?聪明的你可能早就抱着好奇心去“摆渡” ...
- 从零开始学MySQL(四)
上节连接:https://www.cnblogs.com/RajXie/p/10880809.html 上节说到,在创建表的同时,需要给出列的定义.列的定义可展开如下: 列名 列的数据类型 列的一些其 ...
- 从零开始学MySQL(一)
如果您浏览过许多IT类的招聘职位,那么掌握数据库技能的重要性便不言自明了.因JAVA常常与MySQL所挂钩,因此兴起了写博客记载学习的念头,盼与君共勉.然,在进行MySQL语法的学习之前,我们无不面临 ...
- 从零开始学安全(三十三)●Ununtu16 LMAP 环境搭建
sudo apt-get update # 获取最新资源包 sudo apt-get upgrade # 本机软件全部更新 sudo apt-get dist-upgrade # 本机系统软件更新 安 ...
- 从零开始学安全(三十一)●kali 输入 msfconsole 启动报错
解决方法: 实际上是因为没安装就开启了msf,用下面三个命令就解决了 sudo apt-get updatesudo apt-get install metasploit-frameworkmsfco ...
- 从零开始学安全(三十)●使用sqlmap对网站一步步渗透
常规注入步骤第一步注入点-u "url" 判断是否是注入点 有就判断用户的权限第二步获取数据库 所有的 -u "url" --dbs第三步 查看应用程序所有数据 ...
- 从零开始学安全(三)●黑客常用的windows端口
端口可选1-65536 1-1024 预保留端口 留给windows系统服务的 下面是常见的端口对应的服务 1 TCP Port Service Multiplexer 传输控制协议端口服务多路开关选 ...
- 从零开始学JavaScript三(变量)
一.变量 ECMAscript变量是松散型变量,所谓松散型变量,就是变量名称可以保存任何类型的数据,每个变量仅仅是一个用于保存值的占位符. 定义变量时要使用var操作符 如: var message; ...
随机推荐
- MacPorts镜像
/opt/local/etc/macports/macports.conf: rsync_server pek.cn.rsync.macports.org rsync_dir macports/rel ...
- xgboost原理与实战
目录 xgboost原理 xgboost和gbdt的区别 xgboost安装 实战 xgboost原理 xgboost是一个提升模型,即训练多个分类器,然后将这些分类器串联起来,达到最终的预测效果.每 ...
- your current language level is ecmascript 5
https://stackoverflow.com/questions/32995066/how-can-i-configure-resharpers-language-level-for-ecmas ...
- 通过daemon.json配置docker 2375 API端口,配置私有http仓库
编辑daemon.json vi /etc/docker/daemon.json 配置如下内容即可 { "hosts":[ "tcp://0.0.0.0:2375&quo ...
- mesh之孔洞检测
mesh之孔洞检测 图1 检测孔洞点 图2 检测孔洞点 图3 检测孔洞点 图4 细节
- leetcode241 为运算表达式设计优先级
class Solution(object): def diffWaysToCompute(self, input): """ :type input: str :rty ...
- mxml 嵌入as代码出错,缺少 CDATA
如果<mx:Script> 中有大于小于符号,代码必须包含在<![CDATA[ 之中,否则会报错
- svn版本合并
假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发.测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时候,突然接到 ...
- eetCode刷题-递归篇
递归是算法学习中很基本也很常用的一种方法,但是对于初学者来说比较难以理解(PS:难点在于不断调用自身,产生多个返回值,理不清其返回值的具体顺序,以及最终的返回值到底是哪一个?).因此,本文将选择Lee ...
- Linux系统基本操作
学习目标: 通过本实验掌握Linux的系统安装.磁盘分区.文件管理.IP地址配置.SSH远程管理.WinSCP文件传输.chmod文件权限管理.tar及gzip/bzip2压缩工具的使用,以及关机 ...